Функция CryptSIPGetSignedDataMsg (mssip.h)

Функция CryptSIPGetSignedDataMsg извлекает из файла сигнатуру Authenticode .

Синтаксис

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

Параметры

[in] pSubjectInfo

Указатель на структуру SIP_SUBJECTINFO , содержащую сведения о теме сообщения.

[out] pdwEncodingType

Тип кодирования подписи Authenticode.

Этот параметр может быть сочетанием одного или нескольких из следующих значений.

Значение Значение
PKCS_7_ASN_ENCODING
65536 (0x10000)
Задает кодировку сообщений PKCS #7 .
X509_ASN_ENCODING
1 (0x1)
Задает кодировку сертификата X.509 .

[in] dwIndex

Этот параметр зарезервирован и должен иметь нулевое значение.

[in, out] pcbSignedDataMsg

Длина (в байтах) буфера, на который указывает параметр pbSignedDataMsg .

[out] pbSignedDataMsg

Указатель на буфер для получения возвращенной сигнатуры Authenticode.

Чтобы определить необходимый размер буфера, задайте для параметра pbSignedDataMsgзначение NULL и вызовите функцию CryptSIPGetSignedDataMsg . Эта функция поместит требуемый размер буфера в байтах в значение, на которое указывает pcbSignedDataMsg. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

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

Если функция выполняется успешно, функция возвращает значение TRUE.

Если функция завершается сбоем, она возвращает значение FALSE. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.

Код возврата Описание
CRYPT_E_NO_MATCH
Не удалось найти сигнатуру, указанную индексом.
ERROR_BAD_FORMAT
Указанные данные или формат файла пакета интерфейса субъекта (SIP) недопустимы.
ERROR_INVALID_PARAMETER
Структура [SIP_SUBJECTINFO](/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) является пустым указателем.
ERROR_INSUFFICIENT_BUFFER
Размер буфера сообщений был недостаточным для хранения полученных данных. Параметр pcbSignedDataMsg был задан для указания требуемого размера буфера.
TRUST_E_SUBJECT_FORM_UNKNOWN
Указанный тип субъекта недопустим.

Комментарии

К темам относятся, помимо прочего, переносимые исполняемые образы (.exe), образы кабинетов (.cab), неструктурированные файлы и файлы каталога. Каждый тип субъекта использует свое подмножество своих данных для вычисления хэша и требует разных процедур хранения и извлечения. Таким образом, каждый тип субъекта имеет уникальную спецификацию SIP.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header mssip.h
Библиотека Crypt32.lib
DLL Crypt32.dll

См. также раздел

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg