[질문]openssl 라이브러리 BIO object와 ssl_read에 관한 질문
질문을 처음 올리게 됩니다.
Openssl을 통해서 tls를 구현하려 합니다.
openssl은 간단히 SSL_accept ,SSL_connect를 이용하면 간단히 서버와 클라이언트를 서로 인증할 수가 있습니다.
그런데 제가 필요로하는 것은 이렇게 한번에 처리하는 것이 아니라 BIO 오브젝트를 이용하여 인증시 서로 통신하는 데이타를 특별한 format으로 wrap해야 하는 일입니다.
BIO 오브젝트를 이용하여 인증 단계별로 데이타를 얻고자 하는 것입니다.
코드로 설명드린다면,
BIO *BIO_in ;
BIO *BIO_out;
BIO_in=BIO_new(BIO_s_mem());
BIO_out=BIO_new(BIO_s_mem());
SSL_set_bio(ssl,BIO_in,BIO_out);
이렇게 하여 handshake를 BIO를 통해서 수동적으로 수행하려 합니다.
TCP 소켓을 연다음 소켓으로 넘어오는 값을 BIO_write 한 SSL로 보내려고합니다.
그럼 질문 드리겠습니다.
1. BIO_read/write 데이타와 SSL_read/write는 무슨 관계가 있는 것입니까??
BIO_read/write를 하고 SSL_read로 하면 데이타는 어떻게 되는 것인지 개념적으로 잘잡히지가 않습니다.
2. 서버에 SSL_accept와 클라이언트 SSL_connect함수를 이용하지 않는데, 핸드쉐이킹을 단계적으로 하려면 클라이언트쪽에서 클라이언트 hello를 어떻게 처음시작해야 하는지가 감이 잡히지를 않는군요...
openssl 라이브러리를 사용해 보신 분께서는 아무말씀이라도 좋으니 답변 부탁드립니다.
댓글 달기