2009-03-27 17 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のない署名の検証のためです。したがって、これは元のポスターの質問のコンテキストには関係ありません。最初の質問に関しては

、手動で署名者証明書が正しく次のコードを使用して、任意のGUIなしで信頼されたルートにチェーンされていることを確認することができます。

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

アイデアは、署名者の証明書を取得することであるとしますCAPIComに正しい信頼チェーンがあるかどうかを確認するように指示します。

こちらがお役に立てば幸いです。 乾杯、

ムニールIDRASSI、IDRIX、http://www.idrix.fr

0

hereを示すようにあなたがWinVerifyTrustを使用することができます。それは美しいWindows XP/Vista/2008/7で動作します。失効リストも確認したい場合は、

RevocationChecks = WinTrustDataRevocationChecks.WholeChain;