[英]PGP Encryption with BouncyCastle C# causes invalid key warning on signature verification
我們需要PGP加密文件,然后通過FTP將其發送給第三方。 這些文件使用第三方的DH / DSS公鑰加密,並使用我們的私鑰簽名。
第三方擁有我們的公鑰和自己的私鑰。 加密/解密有效,但是第三方在嘗試驗證我們的簽名時會收到警告。
當我們嘗試使用PGP Desktop解密和驗證類似加密的文件時,文件將進行驗證而不會發出警告。
第三方正在使用“ McAfee E-Business Server”
確切的警告是:警告:簽名錯誤,與文件內容不符! 用戶“用戶名”的錯誤簽名
該代碼有點涉及,但我將其發布在了自己的Blog上 。 如果合適的話,我可以在這里發布而不是鏈接。
任何有關如何解決此問題的見解都將受到贊賞。
雖然我無法對問題的細節進行詳盡的解釋,但這是一種有效的解決方案。 首先,似乎不同的PGP實現對使用哪個程序生成正在使用的密鑰非常敏感。
失敗的情況:
為了使McAfee Business Server成功地驗證密鑰,請使用BouncyCastle源代碼中的代碼在BouncyCastle中創建密鑰。屬性。
另一種選擇是使用McAfee Business Server生成密鑰。 為此,您需要訪問該軟件。 我使用試用版進行了測試。 (順便說一句,脖子起來起來很痛,無法奔跑)
更新:我在E-Business Server 8.5.3(試用版)上進行了所有測試。 我到達了可以加密和登錄Bounty並在E-Business Server中解密和驗證的地步。 事實證明,第三方使用的E-Business Server 7.0拒絕驗證簽名。 為了使一切正常,我們需要創建V3簽名。
我們從:
PgpSignatureGenerator pgpSignatureGenerator = new PgpSignatureGenerator(m_encryptionKeys.SecretKey.PublicKey.Algorithm, HashAlgorithmTag.Sha1);
至
PgpV3SignatureGenerator pgpV3SignatureGenerator = new PgpV3SignatureGenerator(m_encryptionKeys.SecretKey.PublicKey.Algorithm, HashAlgorithmTag.Sha1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.