Функция CertFindCRLInStore (wincrypt.h)
Функция CertFindCRLInStore находит первый или следующий контекст списка отзыва сертификатов (CRL) в хранилище сертификатов , который соответствует критерию поиска, установленному параметром dwFindType и связанным параметром pvFindPara . Эту функцию можно использовать в цикле для поиска всех контекстов списка отзыва сертификатов в хранилище сертификатов, соответствующих указанным критериям поиска.
Синтаксис
PCCRL_CONTEXT CertFindCRLInStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] DWORD dwFindFlags,
[in] DWORD dwFindType,
[in] const void *pvFindPara,
[in] PCCRL_CONTEXT pPrevCrlContext
);
Параметры
[in] hCertStore
Дескриптор хранилища сертификатов для поиска.
[in] dwCertEncodingType
Этот параметр в настоящее время не используется. Для него необходимо задать нулевое значение.
[in] dwFindFlags
Если параметру dwFindType присвоено значение CRL_FIND_ISSUED_BY, по умолчанию выполняется сопоставление только имени издателя. Следующие флаги можно использовать для дополнительной фильтрации.
Значение | Значение |
---|---|
|
Проверяет список отзыва сертификатов с расширением AKI. Если список отзыва сертификатов содержит AKI, возвращается только список отзыва сертификатов, AKI которого соответствует издателю.
Примечание Расширение AKI имеет значение идентификатора объекта (OID) szOID_AUTHORITY_KEY_IDENTIFIER2 и соответствующую структуру данных.
|
|
Используйте открытый ключ в сертификате издателя, чтобы проверить подпись в списке отзыва сертификатов. Возвращает только список отзыва сертификатов с допустимой подписью. |
|
Находит и возвращает разностный список отзыва сертификатов. |
|
Находит и возвращает базовый список отзыва сертификатов. |
|
После успешной проверки подпись проверяется на прочность. Этот флаг применяется только в том случае , если параметру dwFindType присвоено значение CRL_FIND_ISSUED_FOR. Также необходимо задать CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. В случае успешного выполнения в контексте списка отзыва сертификатов будут заданы следующие свойства строгой сигнатуры:
|
[in] dwFindType
Указывает тип выполняемого поиска. Значение dwFindType определяет тип данных, содержимое и использование параметра pvFindPara . В настоящее время определенные типы поиска и их требования pvFindPara приведены ниже.
Значение | Значение |
---|---|
|
Нет условий поиска. Возвращается следующий список отзыва сертификатов в хранилище. |
|
Выполняет поиск следующего списка отзыва сертификатов в магазине, соответствующего издателю в CERT_CONTEXT. |
|
Выполняет поиск следующего списка отзыва сертификатов, соответствующего CRL_CONTEXT , следующими способами:
|
|
Выполняет поиск следующего списка отзыва сертификатов в хранилище, соответствующего издателю сертификата субъекта в структуре CRL_FIND_ISSUED_FOR_PARA.
Если список отзыва сертификатов не найден, выполняет поиск следующего списка отзыва сертификатов в хранилище, соответствующего издателю в структуре CRL_FIND_ISSUED_FOR_PARA. Примечание При использовании кросс-сертификатов имя субъекта в сертификате издателя может не совпадать с именем издателя в сертификате субъекта и соответствующим списком отзыва сертификатов.
|
[in] pvFindPara
Этот параметр определяется значением dwFindType. Дополнительные сведения см. в таблице ранее в этом разделе.
[in] pPrevCrlContext
Указатель на последний CRL_CONTEXT , возвращенный этой функцией. Для получения первого списка отзыва сертификатов в магазине, удовлетворяющего условиям поиска, должен иметь значение NULL . Последовательные списки отзыва сертификатов, соответствующие условиям поиска, можно найти, задав pPrevCrlContext указатель PCCRL_CONTEXT , возвращенный предыдущим вызовом функции. Процесс поиска пропускает все списки отзыва сертификатов, которые не соответствуют условиям поиска или были ранее удалены из хранилища с помощью CertDeleteCRLFromStore. Эта функция освобождает CRL_CONTEXT , на которые ссылаются значения этого параметра, которые не имеют значения NULL.
Возвращаемое значение
Если функция выполняется успешно, функция возвращает указатель на контекст списка отзыва сертификатов только для чтения. Завершив использование возвращенного контекста списка отзыва сертификатов, освободите его, вызвав функцию CertFreeCRLContext , или неявно освободите ее, передав ее в качестве параметра pPrevCrlContext при последующем вызове функции CertFindCRLInStore .
Если функция завершается сбоем и список отзыва сертификатов, соответствующий условиям поиска, не найден, возвращаемое значение равно NULL. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError. Ниже приведены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Дескриптор в параметре hCertStore отличается от дескриптора в контексте списка отзыва сертификатов, на который указывает параметр pPrevCrlContext , или в параметре dwFindType указан недопустимый тип поиска. |
|
В магазине нет списков отзыва сертификатов, не было найдено списков отзыва сертификатов, соответствующих условиям поиска, или достигнут конец списка магазина. |
Комментарии
Возвращаемый указатель освобождается при передаче в качестве параметра pPrevCrlContext при последующем вызове функции. В противном случае указатель должен быть явно освобожден путем вызова CertFreeCRLContext. PPrevCrlContext, не имеющий значения NULL, всегда освобождается с помощью CertFindCRLInStore с помощью вызова CertFreeCRLContext, даже если в функции возникает ошибка.
Можно вызвать CertDuplicateCRLContext , чтобы создать дубликат возвращаемого контекста. Возвращаемый контекст списка отзыва сертификатов можно добавить в другое хранилище сертификатов с помощью CertAddCRLContextToStore, или ссылку на этот контекст списка отзыва сертификатов можно добавить в неколлекционное хранилище с помощью CertAddCRLLinkToStore.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |