【发布时间】:2013-07-22 15:36:23
【问题描述】:
我有一个 X.509 证书和相关的 PrivateKey。 我正在尝试使用带有 CMSEnvelopedData 的 java BouncyCastle 加密 PDF 文档。
我可以加密它并返回成功加密的文件。我可以解密和一切。 但现在我想更改密钥对,但不是对称密钥,因此是加密文档。
我为什么要这样做?因为在某些情况下,应用程序可能会更改某些不对称算法,因此不必重新加密所有文档,只需重新加密对称密钥即可。
我知道我可以通过以下方式获取加密内容:
CMSEnvelopedData encryptedData = new CMSEnvelopedData(new FileInputStream("FILE"));
ContentInfo dataInfo= encryptedData .toASN1Structure();
在那之后,我不知道我必须做什么才能获得加密的对称密钥。之后,我想解密它,用另一个密钥对加密,然后用相同的加密数据、相同的对称密钥和新的密钥对创建另一个 CMS。
任何帮助将不胜感激。 谢谢。
【问题讨论】:
-
您可能会在 Bouncy Castle 开发邮件列表中获得更多成功,维护者会在该邮件列表中回答 BC 特定问题。模组,这似乎是一个有效的问题,有时使用 Crypto API 很难知道从哪里开始。
标签: java encryption cryptography bouncycastle