Средство подписи файлов (Signcode.exe)
Обновлен: Ноябрь 2007
Программа подписи файлов подписывает переносимый исполняемый файл (PE) (файл .dll или .exe) цифровой подписью Authenticode. Имеется возможность подписи как сборки, так и отдельного файла, содержащегося в многофайловой сборке. При распространении сборки необходимо подписывать именно ее, а не отдельные файлы. При запуске Signcode.exe без указания параметров будет активирован мастер, цель которого — помощь в создании подписи.
Программа подписи файлов поставляется только с пакетами разработчика .NET Framework SDK версий 1.0 и 1.1. В более поздних версиях вместо него используется Программа подписывания Sign Tool (SignTool.exe).
signcode [options] filename | assemblyname
Параметры
Аргумент |
Описание |
---|---|
имя файла |
Имя PE-файла, который нужно подписать. |
имя сборки |
Имя сборки, которую нужно подписать. Данный файл должен содержать манифест сборки. |
Параметр |
Описание |
---|---|
-$ полномочия |
Задает удостоверяющий центр сертификата. Этот параметр должен принимать значение individual или commercial. По умолчанию в Signcode.exe используется максимальный уровень разрешений сертификата. |
-a алгоритм |
Задает алгоритм хеширования подписи, который должен принимать значение md5 (по умолчанию) или sha1. |
-c файл |
Задает файл, содержащий закодированный сертификат издателя программного обеспечения. |
-cn имя |
Задает общее имя сертификата. |
-i информация |
Определяет место получения подробных сведений о содержании (обычно URL-адрес). |
-j dllName |
Задает имя DLL, возвращающей массив проверенных атрибутов, требуемых для подписи файлов. Путем повтора параметра -j можно указать несколько DLL. |
-jp параметр |
Задает параметр, который должен передаваться в указанную перед ним DLL. Например: -j dll1 -jp dll1Param. Для одной DLL программа позволяет задавать только один параметр. |
-k имя ключа |
Задает имя контейнера ключей. |
-ky тип ключа |
Задает тип ключа, который должен быть signature, exchange, или целым(например, 4). |
-n имя |
Задает текстовое имя, представляющее содержимое подписываемого файла. |
-p поставщик |
Задает имя системного поставщика служб шифрования. |
-r размещение |
Задает расположение хранилища сертификатов в реестре, которое должно принимать значение currentuser (по умолчанию) или localmachine. |
-s хранилище |
Задает хранилище сертификатов, содержащее сертификат подписи. По умолчанию имеет значение my store. |
-sha1 thumbprint |
Задает параметр thumbprint, который является sha1-хэшем сертификата подписи, включенного в хранилище сертификатов. |
-sp политика |
Устанавливает политику хранилища сертификатов, которая должна принимать значение spcStore (по умолчанию) или chain. Если указано значение chain, то в подпись добавляются все имеющиеся в цепочке проверки сертификаты, включая автономно подписанные. Если указывается значение spcStore, то в добавляемую к подписи цепочку сертификатов не включаются доверенные и автономно подписанные сертификаты . |
-spc файл |
Задает файл SPC, содержащий сертификаты издателя программного обеспечения. |
-t URL |
Указывает, что файл должен получить штамп времени с помощью соответствующего сервера, располагающегося по заданному http-адресу. |
-tr число |
Задает максимальное число попыток установки штампов времени перед их успешным завершением. По умолчанию используется значение 1. |
-tw число |
Задает задержку (в секундах) между попытками установки штампов времени. По умолчанию используется значение 0. |
-v pvkFile |
Задает имя файла c закрытым ключом (.pvk). |
-x |
Задает для файла отметку времени, при этом подпись файла не производится. |
-y type |
Задает тип используемого поставщик служб шифрования. Поставщик служб шифрования содержит реализации криптографических стандартов и алгоритмов. Список типов поставщиков по умолчанию см. в разделе "Microsoft Cryptographic Service Providers" продукта Platform SDK. |
-? |
Отображает синтаксис команды и параметры программы. |
Заметки
Для создания подписи с помощью файла сертификата издателя программного обеспечения (SPC) необходимо задать параметры -spc и -v, если закрытый ключ располагается в PVK-файле. Если закрытый ключ располагается в контейнере ключей реестра, то необходимо задать параметры -spc и -k. Если необходимо подписать файл с помощью файла SPC, указанный файл следует создать с помощью программы создания сертификатов (Certificate Creation tool) и программы проверки сертификата издателя программного обеспечения (Software Publisher Certificate Test tool).
Примеры
В следующей команде выполняется подпись XYZ.exe с помощью сертификата издателя программного обеспечения XYZ.spc и закрытого ключа, располагающегося в контейнере ключей XYZ реестра.
signcode /spc XYZ.spc /k XYZ XYZ.exe
Следующая команда подписывает сборку myAssembly с использованием сертификата myCertificate.spc и закрытого ключа myKey.pvk.
signcode /spc myCertificate.spc /v myKey.pvk myAssembly
См. также
Основные понятия
Ссылки
Средство создания сертификатов (Makecert.exe)
Средство проверки сертификата издателя программного обеспечения (Cert2spc.exe)