我在非Web应用程序中使用openssl将套接字转换为TLS(STARTTLS协议)。一切正常,但我也想知道在允许的协议中实际上协商了哪个版本的TLS。
有什么方法可以使用openssl API查找此信息?
注意:在openssl 1.1和更高版本中,信息可能由函数SSL_SESSION_get_protocol_version()返回,但是我还需要查找以前的openssl库版本的信息(代码在野外,仅对openssl进行重大更新)记录目的不是一种选择。)
答案 0 :(得分:1)
您可以使用SSL_get_version()
:
SSL_get_version()返回用于连接的协议的名称
ssl
。仅应在初始握手完成后调用它。在此之前,从此函数返回的结果可能不可靠。返回值
可以返回以下字符串:
SSLv2
该连接使用SSLv2协议。SSLv3
该连接使用SSLv3协议。TLSv1
该连接使用TLSv1.0协议。TLSv1.1
该连接使用TLSv1.1协议。TLSv1.2
该连接使用TLSv1.2协议。未知
这表明协议版本未知。