gpt4 book ai didi

c++ - OpenSSL ssl_accept() 错误 5

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:04 37 4
gpt4 key购买 nike

我已经搜索过 Stack Overflow 和互联网,但我无法找到为什么 ssl_accept() 不断返回的答案:

[DEBUG] SSL_accept() : Failed with return 0
[DEBUG] SSL_get_error() returned : 5
[DEBUG] Error string : error:00000005:lib(0):func(0):DH lib
[DEBUG] WSAGetLastError() returned : 0
[DEBUG] GetLastError() returned : 0
[DEBUG] ERR_get_error() returned : 0

编辑:出于兴趣 ssl_accept() 返回 0,定义为(根据缺乏和无用的 OpenSSL 文档):“TLS/SSL 握手未成功,但已根据 TLS/SSL 协议(protocol)的规范控制和关闭。使用返回值 ret 调用 SSL_get_error() 以查找原因。”

下面是服务器端的代码片段,我可能找错树了,这个问题是由客户端代码引起的吗?

    client = accept( server, (sockaddr*) &clientsockaddrin, &len );

SSL* ssl = SSL_new( ctx );

SSL_set_fd( ssl, client );

std::cout << "+--------------------------------------------------+"
<< std::endl;

int r = SSL_accept( ssl );

if ( r != 1 )
{
int err_SSL_get_error = SSL_get_error( ssl, r);
int err_GetLastError = GetLastError();
int err_WSAGetLastError = WSAGetLastError();
int err_ERR_get_error = ERR_get_error();

std::cout << "[DEBUG] SSL_accept() : Failed with return "
<< r << std::endl;
std::cout << "[DEBUG] SSL_get_error() returned : "
<< err_SSL_get_error << std::endl;
std::cout << "[DEBUG] Error string : "
<< ERR_error_string( err_SSL_get_error, NULL )
<< std::endl;
std::cout << "[DEBUG] WSAGetLastError() returned : "
<< err_WSAGetLastError << std::endl;
std::cout << "[DEBUG] GetLastError() returned : "
<< err_GetLastError << std::endl;
std::cout << "[DEBUG] ERR_get_error() returned : "
<< err_ERR_get_error << std::endl;
std::cout << "+--------------------------------------------------+"
<< std::endl;
break;
}

感谢您的帮助,因为这让我发疯:(

最佳答案

[DEBUG] Error string : error:00000005:lib(0):func(0):DH lib

错误发生在 Diffie-Hellman key 交换期间,例如对等方尝试生成连接 key 的位置。这可能有多种原因,例如服务器端给出的无效 DH 参数。使用您当前的代码,很难看出错误的实际位置,但我猜是在设置 ctx 的某个地方,所以也许应该显示代码的相关部分。

关于c++ - OpenSSL ssl_accept() 错误 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23479376/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com