2009-03-27 7 views
8

.NET 3.0 C# 응용 프로그램에서 CAPICOM을 사용하여 exe 파일의 Authenticode 서명을 확인합니다. 인증서가 신뢰할 수있는 게시자로 표시되는지 확인해야합니다. signedCode.Verify(true)을 사용하면 인증서가 아직 신뢰되지 않은 경우 대화 상자가 표시되므로 사용자가 인증서를 신뢰할 것인지 여부를 선택할 수 있습니다. 그러나 signedCode.Verify(false)은 신뢰할 수있는 게시자가 아닌 경우에도 서명을 확인합니다. 이는 인증서가 유효한지 확인하는 것일뿐입니다.CAPICOM - UI가없는 신뢰할 수있는 게시자의 SignedCode 확인

파일의 서명이 UI없이 유효하고 신뢰할 수있는 인증서인지 확인하려면 어떻게해야합니까?

답변

0

은 당신이 아마 할 필요가있을 것이다하는 P/호출로 mscoree.dll이 StrongNameSignatureVerificationEx 기능을 통해 노출 사용하는 것입니다

[DllImport("mscoree.dll", CharSet=CharSet.Unicode)] 
static extern bool StrongNameSignatureVerificationEx(string wszFilePath, bool fForceVerification, ref bool pfWasVerified); 
2

첫째, StrongNameSignatureVerificationEx 어셈블리 서명 확인하지 Authenticode 서명 확인을위한 것입니다. 따라서 원래 포스터의 질문과 관련이 없습니다.

ICertificateStatus certStatus = signedCode.Signer.Certificate.IsValid(); 

아이디어는 서명자의 인증서를 검색하는 것입니다 : 초기 질문에 관한

수동으로 다음 코드를 사용하여 서명자 인증서가 정확하게 어떤 GUI없이 신뢰할 수있는 루트에 체인으로 연결된 것을 확인할 수 있습니다 CAPICom에 올바른 트러스트 체인이 있는지 확인하라고 지시합니다.

도움이되기를 바랍니다. 건배,

무 니르 IDRASSI, IDRIX, http://www.idrix.fr

0

here을 같이 당신은 WinVerifyTrust에서 사용할 수 있습니다. 그것은 아름답게 Windows XP/Vista/2008/7에서 작동합니다. 해지 목록도 확인하려는 경우

RevocationChecks = WinTrustDataRevocationChecks.WholeChain;