2009-03-27 19 views
8

Bir exe dosyasındaki bir Authenticode imzasını kontrol etmek için .NET 3.0 C# uygulamasında CAPICOM kullanıyorum. Sertifikanın Güvenilir Yayıncı olarak listelendiğinden emin olmalıyım. Sertifika zaten güvenilir değilse, signedCode.Verify(true)'u kullanarak bir iletişim kutusu görüntülenir, böylece kullanıcı bunu yapıp yapmamayı seçebilir. Ancak, güvenilir bir yayımcıdan olmasa bile, signedCode.Verify(false) imzayı doğrulamaktadır - muhtemelen bu yalnızca sertifikanın geçerli olduğunu kontrol etmektir.CAPICOM - SignedCode, UI olmadan bir Güvenilir Publisher'dan olduğunu doğrulayın

Bir dosyadaki imzanın, kullanıcı arabirimi olmadan geçerli ve güvenilir bir sertifikadan olup olmadığını nasıl kontrol edebilirim?

cevap

0

Ne muhtemelen yapmak gerekir P/Invoke ile mscoree.dll StrongNameSignatureVerificationEx işlevi yoluyla maruz kullanmaktır:

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

Birincisi, StrongNameSignatureVerificationEx montaj imza doğrulama ve değil Authenticode imzasını doğrulama içindir. Yani, bu, orijinal posterin sorusu bağlamıyla alakalı değildir.

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

fikri imzalayanın sertifikası ve almak için ise: İlk soruyu Dair

elle aşağıdaki kodu kullanarak imzalayan sertifika doğru herhangi GUI olmadan güvenilir bir köke zincirleme olup olmadığını kontrol edebilirsiniz CAPICom'a doğru bir güven zincirinin olup olmadığını kontrol etmesini söyleyin.

Umarım bu yardımcı olacaktır. Alkış,

Mounir IDRASSI, IDRIX, http://www.idrix.fr

0

here gösterildiği gibi WinVerifyTrust kullanabilirsiniz. Windows XP/Vista/2008/7'de güzel çalışır. İptal listesini de kontrol etmek isterseniz,