访问由EVP_Seal / EVP_Open函数生成的对称密钥?

时间:2016-10-30 21:46:24

标签: encryption openssl cryptography

我正在尝试使用OpenSSL加密API在客户端和服务器之间建立双向加密方案。

我为服务器生成了一个RSA公钥/私钥对。我想使用EVP_Seal/Open函数生成用于会话加密的对称密钥。客户端使用公钥加密对称密钥,并使用EVP_Seal将其发送到服务器。然后,服务器使用EVP_Open来解密消息...但是,我现在如何加密消息以将发回到客户端?

我实际上无法访问未加密的对称密钥,因此我无法调用EVP_EncryptInit之类的内容。如何加密信息以发送回客户端?我的印象是我正在生成具有这些功能的双向对称密钥,但我无法弄清楚如何使用它。

我考虑发送第二个对称密钥,我只是自己生成(使用,比方说,RAND_bytes)作为服务器然后可以解密的“消息”,但似乎我应该能够使用对称已生成的密钥而不是新密钥。

我还考虑使用EVP_Seal加密对称密钥输出作为我的实际对称密钥,并将 作为服务器用于加密的消息传递,但这似乎也很奇怪和不正确。

0 个答案:

没有答案