【发布时间】:2021-03-23 20:01:54
【问题描述】:
朋友们,
我们从证书颁发机构购买了 .pfx 和 .cer 证书的 3 类证书。并将 .cer(公钥)分享给我们的合作伙伴。
加密(Java)
我们的合作伙伴使用 Java bouncy castle openpgp 标准加密了消息(使用我们的公钥),并分享了如下加密消息, -----开始PGP消息----- 版本:x v2hQEMAzFXJ94q1Nm8AQf/Tld0/3dAvgFKPQVBS8bmbXChXeApeReo1ydNS+...... -----结束 PGP 消息-----
解密: (C#)
我们需要使用 .pfx 文件解密消息。
我浏览了以下文章, http://burnignorance.com/c-coding-tips/pgp-encryption-decryption-in-c/ 似乎正在生成新的 PGPKeyPair 并用于加密和解密。
但就我而言,我有 .pfx 文件 我们如何从 .pfx 文件中提取用于解密的 pgpprivate 密钥? 您能否分享一些关于我们如何做到这一点的想法。提前感谢您为此付出的所有时间。
2020 年 13 月 12 日
我已将 X509Certificate .pfx 导入如下存储并尝试转换 pgpprivate 密钥,
string certPath = @"C:\Users\test.pfx";
string certPass = "apples";
// Create a collection object and populate it using the PFX file
X509Certificate2Collection collection = new X509Certificate2Collection();
collection.Import(certPath, certPass, X509KeyStorageFlags.PersistKeySet);
X509Certificate2 certificate = collection[0];
AsymmetricAlgorithm x509PrivateKey = certificate.PrivateKey;
PgpPrivateKey pK = x509PrivateKey; //Here i am gettting the invalid conversion error.
我正在尝试使用 X.509 证书私钥作为 PGPrivatekey 进行解密。但是在将私钥分配给 pgpprivatekey 时,得到了无效的强制转换异常。
有什么办法可以做到吗?
问候, 斯大林
【问题讨论】:
-
谢谢。我已经将证书导入到 X509Certificate2 对象。但我不知道将 X.509 PrivateKey 转换为 PGPPrivatekey 对象以使用 PGP 解密算法。
-
您需要从 X509Certificate2 获得的私钥:docs.microsoft.com/en-us/dotnet/api/…
-
正如您所提到的,我尝试将 X.509 证书 (.pfx) 导入存储并获取私钥对象并尝试转换为可在 PGPdecrytion 过程中使用的 pgpprivatekey,类似于博客,burnignorance.com/c-coding-tips/pgp-encryption-decryption-in-c 但是在将私钥分配给 pgprivatekey 时收到无效的强制转换异常。你能分享你的想法吗。我还添加了有问题的代码
标签: c# encryption