Поделиться через


Метод SignedCode.Sign

[Метод Sign доступен для использования в операционных системах, указанных в разделе Требования. Вместо этого используйте службы вызова платформы (PInvoke) для вызова функций API Win32 SignerSignEx, SignerTimeStampEx и WinVerifyTrust для подписи содержимого с помощью цифровой подписи Authenticode. Дополнительные сведения о PInvoke см. в руководстве по вызову платформы. .NET и CryptoAPI через P/Invoke. Часть 1 и .NET и CryptoAPI через P/Invoke: часть 2 подразделов расширения шифрования .NET с помощью CAPICOM и P/Invoke также могут быть полезны.]

Метод Sign создает цифровую подпись Authenticode и подписывает исполняемый файл, указанный в свойстве SignedCode.FileName .

Синтаксис

SignedCode.Sign( _
  [ ByVal Signer ] _
)

Параметры

Подписыватель [in, необязательный]

Объект Signer , имеющий доступ к закрытому ключу сертификата, используемого для подписи кода. Значение по умолчанию — Null.

Возвращаемое значение

Этот метод не возвращает значение.

Комментарии

Перед вызовом метода Sign файл, содержащий код, должен быть указан в свойстве FileName .

Если исполняемый файл уже подписан, этот метод перезаписывает существующую сигнатуру.

Следующие результаты относятся к значению параметра Signer :

  • Если параметр Signer не равен NULL, этот метод использует закрытый ключ, на который указывает связанный сертификат, для шифрования подписи. Если закрытый ключ, на который указывает сертификат, недоступен, метод завершается ошибкой.
  • Если параметр Signer имеет значение NULL и в хранилище CURRENT_USER MY имеется только один сертификат, имеющий доступ к закрытому ключу с возможностью подписи кода, этот сертификат используется для создания подписи.
  • Если параметр Signer имеет значение NULL, свойство Settings.EnablePromptForCertificateUI имеет значение true, а в хранилище CURRENT_USER MY имеется несколько сертификатов с доступным закрытым ключом с возможностью подписывания кода, появится диалоговое окно, позволяющее пользователю выбрать используемый сертификат.
  • Если параметр Signer имеет значение NULL , а свойство Settings.EnablePromptForCertificateUI имеет значение false, метод завершается ошибкой.
  • Если параметр Signer имеет значение NULL и в хранилище CURRENT_USER MY нет сертификатов с доступным закрытым ключом с возможностью подписывания кода, метод завершается ошибкой.

Этот метод использует алгоритм хэширования SHA-1.

Требования

Требование Значение
Распространяемые компоненты
CAPICOM 2.0 или более поздней версии в Windows Server 2003 и Windows XP
DLL
Capicom.dll