Как программно проверить, что сборка подписана определенным сертификатом?

Мой сценарий таков: у нас есть одна программа (exe), которая запускает другие программы, если они находятся в определенной папке. Я хочу убедиться, что это запускает только программы, подписанные нашим корпоративным сертификатом (утвержденным Verisign и т. д.). По сути, тогда он будет запускать только программы с тем же сертификатом, что и он сам. Я не хочу отправлять сам сертификат.

Я был поиск в сети и системном пространстве имен и убежище ' Я нашел наглядный пример, который считывает данные сертификата из файла, а также проверяет их и может сравнивать с другим файлом. Ближайшее, что я нашел, - это Signtool, и наличие этой проверки в отдельном exe - это как бы меньше смысла. Я знаю, что метод строгого именования не поможет, потому что файл с цифровой подписью отличается, как это было полезно объяснено здесь (http://blog.codingoutloud.com/2010/03/13/three-ways-to-tell-whether-an-assembly- dl-is-strong-named /) Также некоторые другие примеры в SO, показывающие шифрование и проверку необработанных данных, но не сборку, где они каким-то образом упакованы вместе.

Есть идеи или предложения?

19
задан Aaron 16 February 2011 в 06:02
поделиться