2013-11-19 4 views
3

Я хочу проверить сертификат файла. Подпись формировалась с использованием sha1 и RSA. когда правой кнопкой мыши файл, выбрав свойства, цифровые подписи, подробности я вижу следующее:C# подтверждение сертификата файла

enter image description here

У меня есть код C++, который проверяет такую ​​подпись, используя WinVerifyTrust.

Однако я googled - я просто не мог найти способ C# сделать это. Я попытался экспортировать сертификат в файл, а затем взял из свойств файла Дайджест сообщения: enter image description here Создайте X509 Certificate и проверьте хэш - ничего не получилось.

Любая помощь будет оценена по достоинству.

РАЗЪЯСНЕНИЕ

Короче: Учитывая файл, как я могу проверить, что подписывается доверенным сертификатом?

+0

X509Certificate2.Verify() Se это: http://stackoverflow.com/questions/3613615/how-to-validate-x509-certificate – Oscar

+0

@Oscar - но как мне получить сертификат, с которым был подписан файл? Я хочу, чтобы весь процесс выполнялся программно .... – sara

+0

Возможный дубликат [Получить временную метку из Authenticode Подписанные файлы в .NET] (http://stackoverflow.com/questions/3281057/get-timestamp-from-authenticode-signed- files-in-net) –

ответ

1

Вы ищете: X509Certificate.CreateFromSignedFile

try 
    { 
    X509Certificate theSigner = X509Certificate.CreateFromSignedFile("c:\\r\\1.dll"); 
    Console.Write("certificate info :"+ theSigner.GetCertHashString()); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine("No digital signature "); 


    } 
+0

Проблема заключается в том, что этот подход дает один сертификат, а не все сертификаты, включенные в подпись Authenticode. –

+0

Разве нет способа их повторить? – paulm

Смежные вопросы