CryptQueryObject function (wincrypt.h)
Синтаксис
BOOL CryptQueryObject(
[in] DWORD dwObjectType,
[in] const void *pvObject,
[in] DWORD dwExpectedContentTypeFlags,
[in] DWORD dwExpectedFormatTypeFlags,
[in] DWORD dwFlags,
[out] DWORD *pdwMsgAndCertEncodingType,
[out] DWORD *pdwContentType,
[out] DWORD *pdwFormatType,
[out] HCERTSTORE *phCertStore,
[out] HCRYPTMSG *phMsg,
[out] const void **ppvContext
);
Параметры
[in] dwObjectType
Указывает тип запрашиваемого объекта. Это должно быть одно из следующих значений.
Значение | Значение |
---|---|
|
Объект хранится в структуре в памяти. |
|
Объект хранится в файле . |
[in] pvObject
Указатель на запрашиваемый объект. Тип указателя данных зависит от содержимого параметра dwObjectType .
Значение dwObjectType | Значение |
---|---|
|
Этот параметр является указателем на CERT_BLOB или аналогичную структуру, содержащую объект для запроса. |
|
Этот параметр является указателем на строку Юникода, завершающуюся null, которая содержит путь и имя файла для запроса. |
[in] dwExpectedContentTypeFlags
Указывает ожидаемый тип контента. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Содержимое может быть любого типа. Это не включает флаг CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD .
Если этот флаг указан, эта функция будет пытаться получить сведения об объекте, пробуя различные типы контента, пока не будет найден соответствующий тип контента или типы контента не будут исчерпаны. Очевидно, что это неэффективно, поэтому этот флаг следует использовать только в том случае, если тип контента неизвестен. |
|
Содержимое представляет собой один сертификат. |
|
Содержимое представляет собой абстрактную синтаксическую нотацию 1 (ASN.1), закодированную X509_CERT_PAIR (закодированную пару сертификатов, которая содержит перекрестные сертификаты типа "вперед", "обратный" или "вперед" и "обратный"). |
|
Содержимое является одним списком отзыва сертификатов. |
|
Содержимое является одним CTL. |
|
Содержимое является пакетом PFX (PKCS No 12), но оно не будет загружено этой функцией. Для загрузки в хранилище можно использовать функцию PFXImportCertStore . |
|
Содержимое является пакетом PFX (PKCS 12) и будет загружено этой функцией в соответствии с условиями, указанными в примечании ниже.
Примечание
Если пакет PFX содержит внедренный пароль, который не является пустой строкой или значением NULL и пароль не был защищен для субъекта Active Directory (AD), включающего вызывающего пользователя, эта функция не сможет расшифровать пакет PFX. Однако пакет можно расшифровать, если пароль, используемый при создании пакета PFX, был зашифрован в субъекте AD и пользователь в составе этого субъекта имеет разрешение на расшифровку пароля. Дополнительные сведения см. в разделе параметр pvPara и флаг PKCS12_PROTECT_TO_DOMAIN_SIDS функции PFXExportCertStoreEx . Вы можете защитить пароли PFX для субъекта AD, начиная с Windows 8 и Windows Server 2012. |
|
Содержимое — сообщение с подписью PKCS #7. |
|
Содержимое представляет собой внедренное сообщение с подписью PKCS #7. |
|
Содержимое представляет собой сообщение без знака PKCS 7. |
|
Содержимое — сообщение PKCS No 10. |
|
Содержимое представляет собой сериализованный один сертификат. |
|
Содержимое представляет собой сериализованный один список отзыва сертификатов. |
|
Содержимое сериализуется в одном CTL. |
|
Содержимое является сериализованным хранилищем. |
[in] dwExpectedFormatTypeFlags
Указывает ожидаемый формат возвращаемого типа. Это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
Содержимое может быть возвращено в любом формате. |
|
Содержимое должно возвращаться в шестнадцатеричном формате ASCII с префиксом "{ASN}". |
|
Содержимое должно возвращаться в формате Base64. |
|
Содержимое должно быть возвращено в двоичном формате. |
[in] dwFlags
Этот параметр зарезервирован для использования в будущем и должен иметь нулевое значение.
[out] pdwMsgAndCertEncodingType
Указатель на значение DWORD , которое получает тип кодировки, используемой в сообщении. Если эти сведения не требуются, задайте для этого параметра значение NULL.
Этот параметр может получить сочетание одного или нескольких из следующих значений.
Значение | Значение |
---|---|
|
Задает кодировку сообщений PKCS 7. |
|
Задает кодировку сертификата X.509. |
[out] pdwContentType
Указатель на значение DWORD , которое получает фактический тип содержимого. Если эти сведения не требуются, задайте для этого параметра значение NULL. Возвращаемый тип контента может быть одним из следующих значений.
Значение | Значение |
---|---|
|
Содержимое представляет собой один сертификат. |
|
Содержимое представляет собой X509_CERT_pair в кодировке ASN.1. |
|
Содержимое представляет собой один список отзыва сертификатов. |
|
Содержимое представляет собой один CTL. |
|
Содержимое представляет собой пакет PFX (PKCS #12). Эта функция только проверяет, является ли объект пакетом PKCS #12. Пакет PKCS 12 не загружается в хранилище сертификатов. |
|
Содержимое представляет собой пакет PFX (PKCS 12), который был загружен в хранилище сертификатов.
Windows Server 2003 и Windows XP: Это значение не поддерживается. |
|
Содержимое представляет собой сообщение с подписью PKCS #7. |
|
Содержимое представляет собой внедренное сообщение с подписью PKCS #7. |
|
Содержимое представляет собой сообщение без знака PKCS 7. |
|
Содержимое представляет собой сообщение PKCS #10. |
|
Содержимое представляет собой сериализованный отдельный сертификат. |
|
Содержимое представляет собой сериализованный один список отзыва сертификатов. |
|
Содержимое представляет собой сериализованный один CTL. |
|
Содержимое является сериализованным хранилищем. |
[out] pdwFormatType
Указатель на значение DWORD , которое получает фактический тип формата содержимого. Если эти сведения не требуются, задайте для этого параметра значение NULL. Возвращаемый тип формата может иметь одно из следующих значений.
Значение | Значение |
---|---|
|
Содержимое находится в шестнадцатеричном формате ASCII с префиксом "{ASN}". |
|
Содержимое имеет формат в кодировке Base64. |
|
Содержимое имеет двоичный формат. |
[out] phCertStore
Указатель на значение HCERTSTORE , которое получает дескриптор хранилища сертификатов, включающее все сертификаты, списки отзыва сертификатов и списки сертификатов в объекте .
Этот параметр получает дескриптор хранилища сертификатов, только если параметр dwContentType получает одно из следующих значений. Этот параметр получает значение NULL для всех остальных типов контента.
CERT_QUERY_CONTENT_CERT
CERT_QUERY_CONTENT_CRL
CERT_QUERY_CONTENT_CTL
CERT_QUERY_CONTENT_PFX_AND_LOAD
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_SERIALIZED_CERT
CERT_QUERY_CONTENT_SERIALIZED_CRL
CERT_QUERY_CONTENT_SERIALIZED_CTL
CERT_QUERY_CONTENT_SERIALIZED_STORE
Завершив использование дескриптора, освободите его, передав дескриптор в функцию CertCloseStore .
Если эти сведения не требуются, задайте для этого параметра значение NULL.
[out] phMsg
Указатель на значение HCRYPTMSG , которое получает дескриптор открытого сообщения.
Этот параметр получает дескриптор сообщения, только если параметр dwContentType получает одно из следующих значений. Этот параметр получает значение NULL для всех остальных типов контента.
CERT_QUERY_CONTENT_PKCS7_SIGNED
CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
CERT_QUERY_CONTENT_PKCS7_UNSIGNED
Завершив использование дескриптора, освободите его, передав дескриптор в функцию CryptMsgClose .
Если эти сведения не требуются, задайте для этого параметра значение NULL.
[out] ppvContext
Указатель на указатель, получающий дополнительные сведения об объекте.
Формат этих данных зависит от значения, полученного параметром dwContentType . В следующей таблице перечислены форматы данных для указанного значения dwContentType .
Значение dwContentType | Значение |
---|---|
|
Этот параметр получает указатель на структуру CERT_CONTEXT . Завершив использование структуры, освободите ее, передав этот указатель на функцию CertFreeCertificateContext . |
|
Этот параметр получает указатель на структуру CRL_CONTEXT . Завершив использование структуры, освободите ее, передав этот указатель на функцию CertFreeCRLContext . |
|
Этот параметр получает указатель на структуру CTL_CONTEXT . Завершив использование структуры, освободите ее, передав указатель на функцию CertFreeCTLContext . |
|
Этот параметр получает указатель на структуру CERT_CONTEXT . Завершив использование структуры, освободите ее, передав этот указатель на функцию CertFreeCertificateContext . |
|
Этот параметр получает указатель на структуру CRL_CONTEXT . Завершив использование структуры, освободите ее, передав этот указатель на функцию CertFreeCRLContext . |
|
Этот параметр получает указатель на структуру CTL_CONTEXT . Завершив использование структуры, освободите ее, передав указатель на функцию CertFreeCTLContext . |
Если эти сведения не требуются, задайте для этого параметра значение NULL.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает ненулевое значение.
Если функция завершается сбоем, она возвращает ноль. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |