如何从C#中的文件/流中读取Pkcs#7证书链?

时间:2009-02-23 19:42:42

标签: c# x509certificate2 pkcs#7

我有两张保存到磁盘的证书。一个是带有私钥的证书,我将其作为.pfx文件导出,另一个是我保存的证书,包括其证书链作为PKCS#7文件(“certchain.p7b”)。

在C#中,我现在可以使用

加载.pfx文件
  var cert = new X509Certificate2(myPfxFileStream); 

(myPfxFileStream是对{.pfx文件打开的FileStream用于阅读),但是在CryptoGraphicException“Der Indexwertistungültig”中尝试使用PKC#7证书时失败,这转换为“索引值无效”。

我假设我必须以不同的方式解析PKCS#7(它包含一个链,而不是一个证书!),但是如何?

(哦,顺便说一下:目前我没有关于那些证书的密码)

1 个答案:

答案 0 :(得分:8)

您需要使用SignedCms命名空间中的System.Security.Cryptography.Pkcs类。

此博客条目将向您展示如何使用该课程:

http://blogs.msdn.com/shawnfa/archive/2006/02/27/539990.aspx

你基本上会调用Decode方法,传递代表PKCS文件的字节。