6

ディスクに保存した 2 つの証明書があります。1 つは、.pfx ファイルとしてエクスポートした秘密鍵を含む証明書で、もう 1 つは、証明書チェーンを含めて PKCS#7 ファイル ("certchain.p7b") として保存した証明書です。

C# では、.pfx ファイルを次のようにロードできるようになりました。

  var cert = new X509Certificate2(myPfxFileStream); 

(myPfxFileStream はFileStream読み取り用に .pfx ファイルに開かれています)、しかし、PKCs#7 証明書で同じことを試みると、CryptoGraphicException「無効なインデックス値」に変換される「Der Indexwert ist ungültig」で失敗します。

PKCS#7 を別の方法で解析する必要があると思います (単一の証明書ではなく、チェーンが含まれています!)。

(ちなみに、現在、これらの証明書にはパスワードがありません)

4

1 に答える 1

9

名前空間でSignedCmsクラスを使用する必要があります。System.Security.Cryptography.Pkcs

このブログ エントリでは、クラスの使用方法について説明します。

リンク更新 2021: https://docs.microsoft.com/en-us/archive/blogs/shawnfa/enveloped-pkcs-7-signatures

元のリンク: http://blogs.msdn.com/shawnfa/archive/2006/02/27/539990.aspx

基本的に、Decodeメソッドを呼び出して、PKCS ファイルを表すバイトを渡します。

于 2009-02-23T19:49:21.903 に答える