如何在C ++中获取OpenSSL握手生成的对称密钥?

时间:2016-09-02 18:27:37

标签: c++ ssl networking openssl aes

我在C ++中使用OpenSSL在客户端和服务器之间创建SSL连接,如下所示(客户端):

SSL *clientssl = SSL_new(ssl_client_ctx);
SSL_set_fd(clientssl, clientsocketfd);
SSL_connect(clientssl);

现在,我可以使用TLS数据包在主机之间进行通信。

但是,我还想发送和接收包含从客户端到服务器的小型AES加密部分的纯UDP数据包。我们的想法是使用SSL对称密钥作为AES密钥。

是否有类似的功能:

void SSL_get_symmetric_key(SSL *ssl, char *buffer);

我可以在客户端和服务器端使用吗?

当然,我可以自己生成AES密钥并在握手后发送,但使用现有密钥似乎更容易。

0 个答案:

没有答案