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

Функция CryptVerifyCertificateSignature проверяет подпись сертификата, список отзыва сертификатов (CRL) или запрос сертификата с помощью открытого ключа в структуре CERT_PUBLIC_KEY_INFO . Функции не требуется доступ к закрытому ключу.

Синтаксис

BOOL CryptVerifyCertificateSignature(
  [in] HCRYPTPROV_LEGACY     hCryptProv,
  [in] DWORD                 dwCertEncodingType,
  [in] const BYTE            *pbEncoded,
  [in] DWORD                 cbEncoded,
  [in] PCERT_PUBLIC_KEY_INFO pPublicKey
);

Параметры

[in] hCryptProv

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

Windows Server 2003 и Windows XP: Дескриптор поставщика служб шифрования (CSP), используемый для проверки подписи. Тип данных этого параметра — HCRYPTPROV.

Значение NULL передается, если нет веской причины для передачи определенного поставщика шифрования. Передача значения NULL приводит к получению поставщика RSA или DSS по умолчанию.

[in] dwCertEncodingType

Тип кодирования сертификата, который использовался для шифрования субъекта. Идентификатор типа кодирования сообщения , содержащийся в высоком значении WORD этого значения, игнорируется этой функцией.

Этот параметр может иметь следующий определенный в данный момент тип кодирования сертификата.

Значение Значение
X509_ASN_ENCODING
1 (0x1)
Задает кодировку сертификата X.509 .

[in] pbEncoded

Указатель на закодированный большой двоичный объектCERT_SIGNED_CONTENT_INFO содержимого, для которого требуется проверить подпись.

[in] cbEncoded

Размер закодированного содержимого в pbEncoded в байтах.

[in] pPublicKey

Указатель на структуру CERT_PUBLIC_KEY_INFO , содержащую открытый ключ, используемый при проверке подписи.

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

Возвращает ненулевое значение при успешном выполнении или нулевое значение в противном случае.

Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Примечание Ошибки из вызываемых функций CryptCreateHash, CryptImportKey, CryptVerifySignature и CryptHashData могут распространяться на эту функцию.
 
В случае сбоя эта функция приведет к возврату следующих кодов ошибок из GetLastError.
Код возврата Описание
ERROR_FILE_NOT_FOUND
Недопустимый тип кодирования сертификата. В настоящее время поддерживается только X509_ASN_ENCODING .
NTE_BAD_ALGID
Идентификатор объекта (OID) алгоритма подписи не сопоставляет с известным или поддерживаемым хэш-алгоритмом.
NTE_BAD_SIGNATURE
Подпись недействительна.
 

Если функция завершается сбоем, GetLastError может вернуть ошибку кодирования и декодирования абстрактной синтаксической нотации 1 (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.

Комментарии

В настоящее время эта функция вызывает функцию CryptVerifyCertificateSignatureEx для выполнения проверки.

Требования

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

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

CryptVerifyCertificateSignatureEx