Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用阻塞套接字在openssl中重新协商SSL_Openssl - Fatal编程技术网

使用阻塞套接字在openssl中重新协商SSL

使用阻塞套接字在openssl中重新协商SSL,openssl,Openssl,这是关于客户端-服务器通信中的openssl重新协商问题。openssl版本为1.0.1c 客户端和服务器使用阻塞套接字建立SSL连接,通信正常。客户端发送数据,服务器接收并发送回客户端 当服务器想要进行重新协商时,在将SSL状态设置为SSL ST_ACCEPT之后,使用SSL_Renogatiate、SSL_do_握手来完成 客户端的一般行为是在控制台上等待使用SSL_write读取数据以将其发送到服务器。在此期间,如果服务器重新协商,客户端通过调用SSL_write从控制台发送任何数据,则重

这是关于客户端-服务器通信中的openssl重新协商问题。openssl版本为1.0.1c

客户端和服务器使用阻塞套接字建立SSL连接,通信正常。客户端发送数据,服务器接收并发送回客户端

当服务器想要进行重新协商时,在将SSL状态设置为SSL ST_ACCEPT之后,使用SSL_Renogatiate、SSL_do_握手来完成

客户端的一般行为是在控制台上等待使用SSL_write读取数据以将其发送到服务器。在此期间,如果服务器重新协商,客户端通过调用SSL_write从控制台发送任何数据,则重新握手失败

在服务器端打印以下行,从第二次SSL_do_握手返回-1

3086063264:错误:140940F5:SSL例程:SSL3_读取字节:意外记录:s3_pkt.c:1404:

当客户端使用SSL_read进行读取时,将在客户端打印以下行,SSL_read将数据发送到服务器后返回-1

3086079648:错误:140943F2:SSL例程:SSL3_读取_字节:sslv3警报意外消息:s3_pkt.c:1251:SSL警报编号10 3086079648:错误:140940E5:SSL例程:SSL3_读取_字节:SSL握手失败:s3_pkt.c:1151:

在openssl.org中,为阻止套接字提供了以下内容

如果基础BIO处于阻塞状态,则SSL_write()只会在写入操作完成或发生错误后返回,除非发生重新协商,在这种情况下,可能会发生SSL_错误\u WANT\u READ

SSL_write在接收SSL重新协商时在客户端的具体行为。在这种情况下,重新握手如何才能成功

问候,,
如果底层SSL通道需要读或写操作进行重新协商,则Pradeep

SSL_write
将在阻塞上下文中返回。您可以通过使用
SSL\u set\u mode
SSL\u mode\u AUTO\u RETRY
来允许SSL自动重新协商。此标志可以在每个连接上设置,也可以在
CTX
上设置


()

SSL\u write
将在阻塞上下文中返回,如果底层SSL通道需要读或写操作以进行重新协商。您可以通过使用
SSL\u set\u mode
SSL\u mode\u AUTO\u RETRY
来允许SSL自动重新协商。此标志可以在每个连接上设置,也可以在
CTX
上设置

()