将X509Certificate2证书转换为BouncyCastle X509Certificate

20
我有一个System.Security.Cryptography.X509Certificates.X509Certificate2对象,我需要将它转换成Org.BouncyCastle.X509.X509Certificate对象。请问有人能帮忙吗?
3个回答

28

使用 Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate 方法,该方法接受一个 System.Security.Cryptography.X509Certificates.X509Certificate 作为参数,并返回一个 Org.BouncyCastle.X509.X509Certificate 对象。


3
谢谢!非常完美。FromX509Certificate 方法同样接受一个 System.Security.Cryptography.X509Certificates.X509Certificate2 对象作为参数。需要说明的是,X509Certificate2 是 X509Certificate 的一个派生类(我加上这句话是为了像我一样的新手)。 - Sudhanshu Mishra

21

我已经有一段时间没有使用Bouncy Castle了。基本上,你可以获取X509Certificate2.RawData并将其传递给BC X509Certificate构造函数。

如果我没记错的话,BC有一个Org.BouncyCastle.Security.DotNetUtilities。这应该允许您导入证书。


谢谢Richard,我也想玩弹性城堡:P。但是没有文档让我的生活变得更加困难。你能分享一些经验或者一些链接,让我可以学习一点吗...另外,我能使用BC浏览本地密钥库吗? - habibalsaki
2
是的,BC .Net文档不够完善,但它拥有你想要的所有加密功能。我是通过阅读源代码,特别是单元测试来学习它的。祝你好运。 - Richard Schneider

8

以下是我使用的方法(BouncyCastle.Crypto版本1.8.1.0):

var cert = new Org.BouncyCastle.X509.X509CertificateParser()
    .ReadCertificate(x509Certificate2.GetRawCertData());

在其他回答中提到,Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(X509Certificate) 也可以使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接