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


Функция CryptMsgGetAndVerifySigner (wincrypt.h)

Функция CryptMsgGetAndVerifySigner проверяет сигнатуру криптографического сообщения.

Синтаксис

BOOL CryptMsgGetAndVerifySigner(
  [in]                HCRYPTMSG      hCryptMsg,
  [in]                DWORD          cSignerStore,
  [in, optional]      HCERTSTORE     *rghSignerStore,
  [in]                DWORD          dwFlags,
  [out, optional]     PCCERT_CONTEXT *ppSigner,
  [in, out, optional] DWORD          *pdwSignerIndex
);

Параметры

[in] hCryptMsg

Дескриптор криптографического сообщения.

[in] cSignerStore

Количество хранилищ в массиве rghSignerStore .

[in, optional] rghSignerStore

Массив дескрипторов хранилища сертификатов, которые можно найти для сертификата подписывателя.

[in] dwFlags

Указывает на конкретное использование функции.

Значение Значение
CMSG_TRUSTED_SIGNER_FLAG
Хранилища в rghSignerStore считаются доверенными и являются единственными хранилищами, в которых выполняется поиск сертификата, соответствующего издателю и серийному номеру подписывающего. В противном случае в дополнение к хранилищу сертификатов сообщения можно предоставить хранилища подписывателя. Если сертификат подписывателя найден, его открытый ключ используется для проверки подписи сообщения.
CMSG_SIGNER_ONLY_FLAG
Верните подписывателя без проверки подписи.
CMSG_USE_SIGNER_INDEX_FLAG
Возвращается только подписыватель, указанный параметром *pdwSignerIndex . В противном случае выполните итерацию по всем подписывателям, пока не будет проверена подпись или не будет больше подписывающего.

[out, optional] ppSigner

Если подпись проверена, ppSigner обновляется для указания на контекст сертификата подписывателя. Завершив использование сертификата, освободите контекст, вызвав функцию CertFreeCertificateContext . Этот параметр может иметь значение NULL , если приложению не требуется сертификат подписывающий.

[in, out, optional] pdwSignerIndex

Если подпись проверена, pdwSigner обновляется для указания на индекс подписывающего в массиве подписывателей. Этот параметр может иметь значение NULL , если приложению не нужен индекс подписывающий.

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

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

Если функция завершается сбоем, возвращаемое значение равно нулю (FALSE). Чтобы получить дополнительные сведения об ошибке, вызовите Метод GetLastError.

Требования

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

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

CERT_CONTEXT

CTL_CONTEXT

CryptMsgControl

CryptMsgOpenToDecode

Функции проверки с помощью списков CCL