lilei_991023
lilei_991023
2019-02-19 17:12

win32下openssl 握手失败,新手入门,求助大神

5
  • c语言

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));
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换