SSL_do_handshake获取错误的版本号错误

时间:2014-04-22 06:14:06

标签: c++ openssl

我在这之后做了一个程序员: Directly Read/Write Handshake data with Memory BIO

但是现在调用SSL_do_handshake函数会得到错误的错误版本号,你有什么想法吗?

以下是示例代码。

客户端,

SSL_set_bio(pssl, rbio, wbio);
SSL_set_connect_state(pssl); 

SSL_do_handshake(pssl); 
length = BIO_read(wbio, buffer, length);

服务器,

SSL_CTX_load_verify_locations(global_sslctx , "cacerts.pem" , NULL);
SSL_CTX_use_certificate_file( global_sslctx , "cert.pem"    , SSL_FILETYPE_PEM);
SSL_CTX_use_PrivateKey_file(  global_sslctx , "cert.pem"    , SSL_FILETYPE_PEM);
BIO_write(SSL_get_wbio(pssl) , pdata , length);

if (!SSL_is_init_finished(pssl)) {
    SSL_do_handshake(pssl);
    printf("%s" ,ERR_reason_error_string(ERR_get_error()));
}

我已经抛弃了客户端的momery数据,

16 03 01 00 de 01 00 00 da 03 01 9b dc 1e ef 4d f6 74 96 9b 8a 3f c0 3f de 37 4c 1b fa d7 d8 04 12 79 f9 bf 92 38 d8 59 c0 4f b4 00 00 68 c0 14 c0 0a c0 22 c0 21 00 39 00 38 00 88 00 87 c0 0f c0 05 00

0 个答案:

没有答案