2009-02-23 3 views
5

디스크에 저장 한 두 개의 인증서가 있습니다. 하나는 .pfx 파일로 내 보낸 개인 키가있는 인증서이고, 다른 하나는 인증서 체인을 포함하여 PKCS # 7 파일 ("certchain.p7b")로 저장 한 인증서입니다. 지금C#에서 파일/스트림에서 Pkcs # 7 인증서 체인을 읽는 방법?

var cert = new X509Certificate2(myPfxFileStream); 

와 .pfx 파일로드 할 수 있습니다 C#에서

그러나 7 인증서에 실패 PKCS 번호와 같은 일을 시도, (myPfxFileStream 독서에 대한 .PFX 파일에 연 FileStream입니다) a CryptoGraphicException "색인 인덱스가 잘못되었습니다"는 "잘못된 인덱스 값"으로 변환됩니다.

필자는 PKCS # 7을 약간 파싱해야한다고 가정합니다 (단 하나의 인증서가 아닌 체인이 포함되어 있습니다).

는 :

답변

7

당신은 System.Security.Cryptography.Pkcs 네임 스페이스의 SignedCms 클래스를 사용하는 것이 좋습니다 (아, 그런데 현재 나는 그 certficiates에는 암호가 없음).

이 블로그 항목은 어떻게 클래스를 사용하는 방법을 보여줍니다 : 당신은 기본적으로 Decode 메소드를 호출

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

의 PKCS 파일을 나타내는 바이트를 전달합니다.

+0

바로 자리에 있습니다. 고맙습니다! – froh42