【发布时间】:2011-04-18 14:58:01
【问题描述】:
我使用以下方法创建了一个 RSA 密钥:
RSA_generate_key(2048, RSA_F4, NULL, NULL);
现在我想将公钥导出到另一方 B。现在,我刚刚存储了整个 RSA* 结构并通过网络发送,B 能够使用它来使用 RSA_public_encrypt( )。
但我认为在这种情况下,我实际上导出了整个公钥/私钥对,而不仅仅是公钥。我只想导出 RSA 密钥的公共部分。我如何使用 OpenSSL API 来做到这一点?
谢谢
【问题讨论】:
-
实际上,看起来只是 memcpy'ing RSA* 结构在通过网络发送时不起作用。我什至尝试调用 RSAPublicKey_dup(),然后将其返回的 RSA* 发送给 B。但无论哪种情况,当 B 尝试使用此公钥加密时,它都会给我一个访问冲突(可能是因为 BIGNUM* 指针包含在RSA* 结构都指向 B) 上内存中的无效位置。总结一下我的问题:如何简单地将 RSA 公钥导出到另一方,这样我就可以开始做一些有趣的事情,比如密钥交换?
标签: encryption cryptography openssl rsa public-key-encryption