問題の詳細について完全に説明することはできませんが、ここでうまくいく解決策があります。まず第一に、さまざまなPGP実装は、使用中のキーを生成するためにどのプログラムが使用されたかに非常に敏感であるように思われます。
失敗したシナリオ:
- PGP Desktopでキーを作成する(RSA v4、2048 / 2048)
- BouncyCastleで暗号化(DH / DSS、Elgamal)
- BouncyCastleにサインインします(RSAキーを使用)
- PGPDesktopでの復号化と署名検証の成功。
- 復号化は成功しましたが、McAfeeBusinessServerで署名の検証が失敗しました。
McAfee Business Serverがキーの検証に成功するには、BouncyCastleソースコードのコードを使用してBouncyCastleにキーを作成します。(Org.BouncyCastle.Bcpg.OpenPgp.Examples.RsaKeyRingGenerator)特定のキーが必要な場合は、このコードを変更できます。プロパティ。
もう1つの方法は、McAfeeBusinessServerを使用してキーを生成することです。そのためには、ソフトウェアにアクセスする必要があります。試用版でテストを行いました。(ちなみに、立ち上がって走るのは首の痛みでした)
更新:すべてのテストをE-Business Server 8.5.3(試用版)で実行しました。Bountyで暗号化してサインインし、E-BusinessServerで復号化して検証できるようになりました。サードパーティが署名の検証を拒否したE-BusinessServer7.0を使用していることが判明しました。すべてを機能させるには、V3署名を作成する必要がありました。
から変更しました:
PgpSignatureGenerator pgpSignatureGenerator = new PgpSignatureGenerator(m_encryptionKeys.SecretKey.PublicKey.Algorithm, HashAlgorithmTag.Sha1);
に
PgpV3SignatureGenerator pgpV3SignatureGenerator = new PgpV3SignatureGenerator(m_encryptionKeys.SecretKey.PublicKey.Algorithm, HashAlgorithmTag.Sha1);