我有一个 X.509 证书和相关的 PrivateKey。我正在尝试使用带有 CMSEnvelopedData 的 java BouncyCastle 加密 PDF 文档。
我可以加密它并返回成功加密的文件。我可以解密和一切。但现在我想更改密钥对,但不是对称密钥,因此是加密文档。
我为什么要这样做?因为在某些情况下,应用程序可能会更改某些不对称算法,并且不必重新加密所有文档,只需重新加密对称密钥即可。
我知道我可以通过以下方式获取加密内容:
CMSEnvelopedData encryptedData = new CMSEnvelopedData(new FileInputStream("FILE"));
ContentInfo dataInfo= encryptedData .toASN1Structure();
在那之后,我不知道我必须做什么才能获得加密的对称密钥。之后,我想解密它,用另一个密钥对加密,然后使用相同的加密数据、相同的对称密钥和新的密钥对创建另一个 CMS。
任何帮助将不胜感激。谢谢。