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


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

Функция CryptGetMessageCertificates возвращает дескриптор открытого хранилища сертификатов , содержащего сертификаты и CRL сообщения. Эта функция вызывает CertOpenStore , используя тип поставщика CERT_STORE_PROV_PKCS7 в качестве параметра lpszStoreProvider .

Синтаксис

HCERTSTORE CryptGetMessageCertificates(
  [in] DWORD             dwMsgAndCertEncodingType,
  [in] HCRYPTPROV_LEGACY hCryptProv,
  [in] DWORD             dwFlags,
  [in] const BYTE        *pbSignedBlob,
  [in] DWORD             cbSignedBlob
);

Параметры

[in] dwMsgAndCertEncodingType

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

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

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

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] hCryptProv

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

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

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

[in] dwFlags

Флаги, передаваемые в CertOpenStore. Дополнительные сведения см. в разделе CertOpenStore.

[in] pbSignedBlob

Указатель на буферистику CRYPT_INTEGER_BLOB структуру, содержащую подписанное сообщение.

[in] cbSignedBlob

Размер подписанного сообщения в байтах.

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

Возвращает хранилище сертификатов , содержащее сертификаты и CRL сообщения. Для ошибки возвращается значение NULL .

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

Код возврата Описание
E_INVALIDARG
Недопустимые типы кодирования сообщений и сертификатов. В настоящее время поддерживаются только PKCS_7_ASN_ENCODING и X509_ASN_ENCODING.
 

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

Комментарии

Используйте GetLastError , чтобы определить причину ошибок.

Примеры

Пример использования этой функции см. в разделе Пример программы C: настройка и получение свойств хранилища сертификатов.

Требования

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

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

CryptVerifyMessageSignature

Упрощенные функции сообщений