我需要一些关于这个lib的帮助。获取以下示例代码BouncyCastle,我不明白这是如何工作的。 我的代码:http://pastebin.com/RieDfUd9 字典:chain [0],是发送者证书。 conv,是接收者证书。
我的问题是,我需要使用我发送电子邮件的公钥人员使用smime加密电子邮件。在我的测试环境中,我可以访问这两个证书。但在生产环境中,我只能访问我的证书(谁发送)链[0],以及接收者的公钥。我需要加密电子邮件,以便我可以使用谁正在阅读的公钥(以及用于加密消息的公钥)打开。
我已经尝试了几种方法,但在解密时总是遇到问题。
答案 0 :(得分:0)
你做不到。您必须存储证书而不是公钥。
当邮件客户端收到电子邮件时,它必须知道使用哪个私钥来解密它 - 否则它将无法解密。
邮件客户端如何知道要使用哪个私钥?因为收件人信息也在加密邮件中。
您无法使用任何随机公钥加密数据加密密钥,并希望接收方知道可以使用哪个密钥对其进行解密。
这就是BouncyCastle API获取证书而不是密钥的原因。
您可以在此处详细了解SMIME加密的详细信息: https://security.stackexchange.com/questions/45222/smime-email-decryption-key-with-openssl
此链接详细介绍了如何为多个收件人执行解密过程: SMIME decryption for multiple recipients