【发布时间】:2016-12-31 17:25:46
【问题描述】:
我们使用Boost asio 进行了一些 SSL 通信。连接和通信工作正常,但现在我们想显示实际的TLS 版本和连接使用的密码。
我们用于SSL 连接的Boost asio 对象定义如下:
typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket> ssl_socket;
boost::shared_ptr<ssl_socket> m_psslsocket;
boost::asio::ssl::context* m_pcontext;
看起来 Boost asio 并没有真正的接口来在设置密码后查询连接。
我可以通过调用这个来获得 OpenSSL SSL_CTX* 指针:
SSL_CTX* ctx = pContext->impl();
或调用 OpenSSL SSL*:
m_psslsocket->native_handle()
但从 OpenSSL 文档中,我无法弄清楚如何从中获取使用的密码和 TLS 版本。
【问题讨论】:
-
密码在
SSL*上可用,而不是SSL_CTX*。见SSL_CIPHER_get_name和朋友们。 -
是的,这似乎可行,谢谢。现在我只需要找出使用的 TLS/SSL 版本。
标签: c++ boost openssl boost-asio