X.509 証明書と関連する PrivateKey があります。CMSEnvelopedData を使用して Java BouncyCastle で PDF ドキュメントを暗号化しようとしています。
暗号化でき、正常に暗号化されたファイルが返されます。私はすべてを解読できます。しかし、今は鍵ペアを変更したいのですが、対称鍵は変更したくないので、暗号化された文書は変更したくありません。
なぜ私はこれをしているのですか?アプリケーションが一部の非対称アルゴリズムを変更する可能性があり、すべてのドキュメントを再暗号化する必要はなく、対称キーのみを再暗号化する必要があるためです。
次の方法で暗号化されたコンテンツを取得できることを知っています。
CMSEnvelopedData encryptedData = new CMSEnvelopedData(new FileInputStream("FILE"));
ContentInfo dataInfo= encryptedData .toASN1Structure();
その後、暗号化された対称キーを取得するために何をしなければならないか正確にはわかりません。その後、暗号化を解除し、別のキー ペアで暗号化してから、同じ対称キーと新しいキー ペアを使用して、同じ暗号化データで別の CMS を作成します。
どんな助けでも大歓迎です。ありがとう。