структура CRYPT_VERIFY_MESSAGE_PARA (wincrypt.h)

Структура CRYPT_VERIFY_MESSAGE_PARA содержит сведения, необходимые для проверки подписанных сообщений.

Синтаксис

typedef struct _CRYPT_VERIFY_MESSAGE_PARA {
  DWORD                            cbSize;
  DWORD                            dwMsgAndCertEncodingType;
  HCRYPTPROV_LEGACY                hCryptProv;
  PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate;
  void                             *pvGetArg;
  PCCERT_STRONG_SIGN_PARA          pStrongSignPara;
} CRYPT_VERIFY_MESSAGE_PARA, *PCRYPT_VERIFY_MESSAGE_PARA;

Члены

cbSize

Размер этой структуры в байтах.

dwMsgAndCertEncodingType

Тип используемой кодировки. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

В настоящее время определены следующие типы кодирования:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

hCryptProv

Этот элемент не используется и должен иметь значение NULL.

Windows Server 2003 и Windows XP: Дескриптор поставщика служб шифрования , используемый для проверки подписанного сообщения. Поставщик служб CSP, определенный этим дескриптором, используется для хэширования и проверки подписи. Если нет веской причины для использования определенного поставщика шифрования, установите значение 0, чтобы использовать поставщик RSA или DSS по умолчанию.

Тип данных этого элемента — HCRYPTPROV.

pfnGetSignerCertificate

Указатель на функцию обратного вызова, используемую для получения контекста сертификата подписывателя. Если значение NULL, используется обратный вызов по умолчанию. Обратный вызов по умолчанию пытается получить контекст сертификата подписывателя из хранилища сертификатов сообщения.

Вместо функции обратного вызова, определенной приложением, которая получает сертификат подписывателя, можно использовать вместо функции обратного вызова по умолчанию. Он передает идентификатор сертификата подписывателя (его издателя и серийный номер) и дескриптор в хранилище сертификатов криптографического подписанного сообщения.

Сигнатура и аргументы функций обратного вызова см. в разделе CryptGetSignerCertificateCallback .

pvGetArg

Аргумент для передачи функции обратного вызова. Как правило, он получает и проверяет сертификат подписывателя сообщения.

pStrongSignPara

Необязательный указатель на структуру CERT_STRONG_SIGN_PARA , содержащую параметры, используемые для строгого подписывания. Если этот элемент задан и функция успешно проверяет сигнатуру, функция будет проверка для строгой сигнатуры. Если сигнатура не является строгой, операция завершится ошибкой и присвойте для параметра GetLastErrorзначение NTE_BAD_ALGID.

Примечание Член pStrongSignPara можно использовать только в том случае, если CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS определяется с помощью директивы #define перед включением Wincrypt.h. Если определен CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS , необходимо обнулить все неиспользуемые поля.
 
Windows 8 и Windows Server 2012: начинается поддержка этого члена.

Комментарии

Эта структура передается в следующие функции:

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть wincrypt.h

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

CERT_CONTEXT

CERT_INFO

CryptDecryptAndVerifyMessageSignature

CryptVerifyDetachedMessageSignature

CryptVerifyMessageSignature