openssl握手失败是什么原因
爬坑新手,求助!
参照网上的例子,用c写的客户端和服务器端,在同一台机器上跑。
正常的TCP socket过程都通过了,在此基础上,通过下面流程进行SSL握手
客户端流程
//客户端
ssl = SSL_new(ctx);
SSL_set_fd(ssl, sd);
SSL_connect(ssl);//失败返回-1
服务器端流程
//服务器端
ssl = SSL_new(ctx);
SSL_set_fd(ssl, sd);
SSL_accept(ssl);//失败返回-1
SSL_connect(ssl)失败打印的错误信息是
13088:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl\record\rec_layer_s3.c:1385:SSL alert number 40
SSL_accept(ssl)失败打印的错误信息是
10576:error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher:ssl\statem\statem_srvr.c:1422:
大神们知道是为什么吗
因为在win32下,使用下面函数产生随机数,是因为这样使用不对吗?
int seed_int[100]; /*存放随机序列*/
srand((unsigned)time(NULL));
for (int i = 0; i < 100;i++)
seed_int[i] = rand();
RAND_seed(seed_int, sizeof(seed_int));