Как прочитать информацию о цифровой подписи из подписанной сборки .Net?

Я пишу приложение с информацией о сборке, которое будет использоваться в процессе сборки программного обеспечения, и пытаюсь прочитать информацию о цифровой подписи из подписанной сборки .Net.

Я хочу сделать в своем коде C # то, что может сделать проводник Windows, щелкнув правой кнопкой мыши подписанную сборку и выбрав «Цифровые подписи». вкладку, а затем нажмите кнопку Подробнее. например

Windows 7 Explorer can do by right-clicking file properties

Digital signature details

Кто-нибудь понял, как это сделать программно в C #? В настоящее время я используюБиблиотека Моно Сесил получить остальную информацию от сборки. Ваша помощь будет оценена по достоинству.

 VinceJS15 мая 2012 г., 08:48
Это сделало свое дело, X509Certificate.CreateFromSignedFile (exe) работает как шарм. Однако это вызывает исключение, довольно пустое, как показано в разделе «Как прочитать открытый ключ из подписанного C # exe». ссылка на сайт.
 shambulator11 мая 2012 г., 15:18
Possibly related вопросы.
 Eugene Mayevski 'Allied Bits11 мая 2012 г., 15:15
Что вы показываетеAuthenticode подпись, применимая ко всем файлам PE. Там также существуетstrongnaming.NET-специфичный формат подписи. Сильное имя выполняется с помощью пары ключей, а не сертификата, следовательно, вы не можете извлечь любую полезную информацию из сборки с сильным именем. Делать поиск дляAuthenticode на StackOverflow даст вам много полезной информации.
 Hans Passant15 мая 2012 г., 02:44
возможный дубликатHow do I read the public key from a signed C# exe

Ответы на вопрос(1)

Проект Mono предоставляет исходный код для обоихsigncode а такжеchktrust что вы можете повторно использовать внутри собственного приложения (с открытым исходным кодом, MIT X11 по лицензии).

Оба используютMono.Security.dll сборка (которая работает под Windows, а не только Linux и OSX) и включает в себя довольнополная поддержка Authenticode.

Ваш ответ на вопрос