我们使用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;
Run Code Online (Sandbox Code Playgroud)
看起来 Boost asio 实际上并没有一个接口来在设置后查询密码连接。
我可以通过调用以下命令来获取 OpenSSL SSL_CTX* 指针:
SSL_CTX* ctx = pContext->impl();
Run Code Online (Sandbox Code Playgroud)
或者通过调用 OpenSSL SSL*:
m_psslsocket->native_handle()
Run Code Online (Sandbox Code Playgroud)
但从 OpenSSL 文档中我无法弄清楚如何从中获取使用的密码和 TLS 版本。