我正在使用openssl与远程服务器建立TLS连接。
以下是代码片段:
if ((ret = SSL_connect(c->ssl)) <= 0) {
ret = SSL_get_error(c->ssl, ret);
if((err = ERR_get_error())) {
SSL_load_error_strings();
ERR_load_crypto_strings();
CRERROR(LOGSSLUTILS, "SSL connect err code:[%lu](%s)\n", err, ERR_error_string(err, NULL));
CRERROR(LOGSSLUTILS, "Error is %s \n",ERR_reason_error_string(err));
}
}
由于某些未知原因,ssl_connect 失败了,我想使用 ERR_error_string 来查找失败的原因,输出如下:
SSL connect err code:[336077172] (error:14082174:lib(20):func(130):reason(372))
Error: cmrSSLlInit:174 Error is (null)
正如您所见,我只能获取错误代码,但无法获取可读的错误字符串。
那么我该如何获取可读的错误字符串?