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

Функция CertFindSubjectInCTL пытается найти указанного субъекта в списке доверия сертификатов (CTL). Субъект можно определить по всему контексту сертификата или по любому уникальному идентификатору субъекта сертификата, например хэшу SHA1 издателя сертификата и серийному номеру.

Синтаксис

PCTL_ENTRY CertFindSubjectInCTL(
  [in] DWORD         dwEncodingType,
  [in] DWORD         dwSubjectType,
  [in] void          *pvSubject,
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwFlags
);

Параметры

[in] dwEncodingType

Указывает используемый тип кодирования. В настоящее время используются только X509_ASN_ENCODING и PKCS_7_ASN_ENCODING; однако в будущем могут быть добавлены дополнительные типы кодирования. Для любого текущего типа кодирования используйте:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] dwSubjectType

Указывает тип субъекта для поиска в CTL. Может иметь значение NULL для поиска по умолчанию.

Значение Значение
CTL_CERT_SUBJECT_TYPE
Тип данных pvSubject: указатель на CERT_CONTEXT структуру.

SubjectAlgorithm CTL проверяется, чтобы определить представление личности субъекта. Изначально в качестве значений для SubjectAlgorithm поддерживаются только хэши SHA1 и MD5. Соответствующее хэш-свойство получается из структуры CERT_CONTEXT .

CTL_ANY_SUBJECT_TYPE
Тип данных pvSubject: указатель на структуру CTL_ANY_SUBJECT_INFO.

Элемент SubjectAlgorithm этой структуры должен соответствовать типу алгоритма CTL, а член SubjectIdentifier должен соответствовать одной из записей CTL.

 

Хэш сертификата или элемент SubjectIdentifier структуры CTL_ANY_SUBJECT_INFO используется в качестве ключа при поиске записей субъекта. Выполняется сравнение двоичной памяти между ключом и SubjectIdentifier записи.

Если параметру dwSubjectType присвоено любое предыдущее значение, dwEncodingType не используется.

[in] pvSubject

Указатель, используемый в сочетании с параметром dwSubjectType .

[in] pCtlContext

Указатель на искомую структуру CTL_CONTEXT .

[in] dwFlags

Зарезервировано для будущего использования и должно быть равно нулю.

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

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

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

Код возврата Описание
CRYPT_E_NOT_FOUND
Тема не найдена в CTL.
E_INVALIDARG
Параметр dwSubjectType не был CTL_CERT_SUBJECT_TYPE или CTL_ANY_SUBJECT_TYPE.
NTE_BAD_ALGID
Член CTL SubjectAlgorithm не сопоставляется ни с SHA1, ни с MD5.

Комментарии

Хэш сертификата или элемент SubjectIdentifier структуры CTL_ANY_SUBJECT_INFO используется в качестве ключа при поиске записей субъекта. Выполняется сравнение двоичной памяти между ключом и SubjectIdentifier записи.

Требования

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

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

CERT_CONTEXT

CTL_ANY_SUBJECT_INFO

CTL_CONTEXT

CertFindCTLInStore

Функции обслуживания сертификатов и хранилища сертификатов