Функция SignerSignEx2
Функция SignerSignEx2 подписывает указанный файл и метки времени, позволяя использовать несколько вложенных подписей.
Примечание
У этой функции нет связанного файла заголовка или библиотеки импорта. Чтобы вызвать эту функцию, необходимо создать определяемый пользователем файл заголовка и использовать функции LoadLibrary и GetProcAddress для динамического связывания с Mssign32.dll.
Синтаксис
HRESULT WINAPI SignerSignEx2(
_In_ DWORD dwFlags,
_In_ SIGNER_SUBJECT_INFO *pSubjectInfo,
_In_ SIGNER_CERT *pSignerCert,
_In_ SIGNER_SIGNATURE_INFO *pSignatureInfo,
_In_opt_ SIGNER_PROVIDER_INFO *pProviderInfo,
_In_opt_ DWORD dwTimestampFlags,
_In_opt_ PCSTR pszTimestampAlgorithmOid,
_In_opt_ PCWSTR pwszHttpTimeStamp,
_In_opt_ PCRYPT_ATTRIBUTES psRequest,
_In_opt_ PVOID pSipData,
_Out_ SIGNER_CONTEXT **ppSignerContext,
_In_opt_ PCERT_STRONG_SIGN_PARA pCryptoPolicy,
_Reserved_ PVOID pReserved
);
Параметры
-
dwFlags [in]
-
Изменяет поведение этой функции.
Если подписанный файл является переносимым исполняемым файлом (PE), это может быть ноль или сочетание одного или нескольких из следующих значений.
Значение Значение - SPC_EXC_PE_PAGE_HASHES_FLAG
- 0x10
Исключите хэши страниц при создании косвенных данных SIP для PE-файла. Этот флаг имеет приоритет над флагом SPC_INC_PE_PAGE_HASHES_FLAG .
Если ни SPC_EXC_PE_PAGE_HASHES_FLAG , ни флаг SPC_INC_PE_PAGE_HASHES_FLAG не указан, для этого параметра используется значение, заданное с помощью функции WintrustSetDefaultIncludePEPageHashes . Этот параметр по умолчанию исключает хэши страниц при создании косвенных данных SIP для pe-файлов.
Это значение определяется в файле заголовка Mssip.h.
Windows Server 2003 и Windows XP: Это значение не поддерживается.- SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
- 0x20
Это значение не поддерживается. - SPC_INC_PE_DEBUG_INFO_FLAG
- 0x40
Это значение не поддерживается. - SPC_INC_PE_RESOURCES_FLAG
- 0x80
Это значение не поддерживается. - SPC_INC_PE_PAGE_HASHES_FLAG
- 0x100
Включите хэши страниц при создании косвенных данных SIP для PE-файла.
Windows Server 2003 и Windows XP: Это значение не поддерживается.
Это значение определяется в файле заголовка Mssip.h.- SIG_APPEND
- 0x1000
Подпись будет вложена. Если этот флаг установлен до добавления любой подписи, созданная подпись будет добавлена в качестве внешней подписи. Если этот флаг не задан, созданная подпись заменяет внешнюю подпись, удаляя все внутренние подписи. -
pSubjectInfo [in]
-
Указатель на структуру SIGNER_SUBJECT_INFO , указывающую предмет для знака.
-
pSignerCert [in]
-
Указатель на структуру SIGNER_CERT , указывающую сертификат, используемый для создания цифровой подписи.
-
pSignatureInfo [in]
-
Указатель на структуру SIGNER_SIGNATURE_INFO , содержащую сведения о цифровой подписи.
-
pProviderInfo [in, необязательный]
-
Указатель на структуру SIGNER_PROVIDER_INFO , которая указывает поставщик служб шифрования (CSP) и сведения о закрытом ключе, используемые для создания цифровой подписи.
Если значение этого параметра равно NULL, параметр pSignerCert должен указывать сертификат, связанный с CSP.
-
dwTimestampFlags [in, необязательный]
-
Флаги, которые будут передаваться в SignerTimeStampEx3 , если параметр pwszHttpTimeStamp не равен NULL. Это может быть одно из следующих значений.
Значение Значение - SIGNER_TIMESTAMP_AUTHENTICODE
Значение по умолчанию. Указывает метку времени Authenticode. - SIGNER_TIMESTAMP_RFC3161
Указывает метку времени RFC 3161. Этот параметр игнорируется, если параметр pwszHttpTimeStamp имеет значение NULL.
-
pszTimestampAlgorithmOid [in, необязательный]
-
Идентификатор объекта алгоритма, используемого для создания метки времени RFC 3161. Этот параметр игнорируется для меток времени Authenticode.
-
pwszHttpTimeStamp [in, optional]
-
URL-адрес сервера меток времени.
-
psRequest [in, необязательный]
-
Указатель на массив CRYPT_ATTRIBUTE структур, добавляемых в запрос подписи. Этот параметр игнорируется, если параметр pwszHttpTimeStamp не содержит допустимого значения или имеет значение NULL.
-
pSipData [в, необязательно]
-
32-разрядное значение, которое передается в качестве дополнительных данных в функции SIP. Формат и содержимое определяется поставщиком SIP.
-
ppSignerContext [out]
-
Адрес указателя на структуру SIGNER_CONTEXT , содержащую подписанный большой двоичный объект. Завершив использование структуры SIGNER_CONTEXT , освободите структуру SIGNER_CONTEXT , вызвав функцию SignerFreeSignerContext .
-
pCryptoPolicy [in, необязательный]
-
При наличии указатель на структуру CERT_STRONG_SIGN_PARA, содержащую параметры, используемые для проверка для строгих сигнатур. Если сертификат или его цепочка не передаются, файл не изменяется никаким образом. Если url-адрес передается для указания центра метки времени (TSA), эта политика также применяется к метке времени.
-
Сохранились
-
Зарезервировано. Это значение должно иметь значение NULL.
Возвращаемое значение
Если функция завершается успешно, функция возвращает S_OK.
Если функция завершается сбоем, она возвращает значение HRESULT , указывающее на ошибку. Возможные коды ошибок, возвращаемые этой функцией, включают, помимо прочего, следующие. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.
Код возврата | Описание |
---|---|
|
Если для параметра dwTimestampFlags задано значение SIGNER_TIMESTAMP_AUTHENTICODE, параметру dwFlags нельзя задать значение SIG_APPEND. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 8 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2012 [только классические приложения] |
DLL |
|
См. также раздел