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


структура CERT_CHAIN_POLICY_STATUS (wincrypt.h)

Структура CERT_CHAIN_POLICY_STATUS содержит сведения о состоянии цепочки сертификатов, возвращаемые функцией CertVerifyCertificateChainPolicy при проверке цепочек сертификатов.

Синтаксис

typedef struct _CERT_CHAIN_POLICY_STATUS {
  DWORD cbSize;
  DWORD dwError;
  LONG  lChainIndex;
  LONG  lElementIndex;
  void  *pvExtraPolicyStatus;
} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;

Члены

cbSize

Размер данной структуры (в байтах).

dwError

Значение типа , указывающее, что во время проверки произошла ошибка или недопустимое условие. Значения этого элемента относятся к типу политики, заданному значением параметра pszPolicyOID функции CertVerifyCertificateChainPolicy .

Ошибки базовой политики (CERT_CHAIN_POLICY_BASE)

Значение Значение
TRUST_E_CERT_SIGNATURE
0x80096004L
Невозможно проверить подпись сертификата.
CRYPT_E_REVOKED
0x80092010L
Сертификат или подпись были отозваны.
CERT_E_UNTRUSTEDROOT
0x800B0109L
Цепочка сертификации правильно обработана, но завершена в корневом сертификате, который не является доверенным поставщиком доверия.
CERT_E_UNTRUSTEDTESTROOT
0x800B010DL
Корневой сертификат является тестируемым сертификатом, а параметры политики запрещают тестовые сертификаты.
CERT_E_CHAINING
0x800B010AL
Цепочка сертификатов создана неправильно.
CERT_E_WRONG_USAGE
0x800B0110L
Сертификат не действителен для запрошенного применения.
CERT_E_EXPIRED
0x800B0101L
Срок действия обязательного сертификата не истек.
CERT_E_INVALID_NAME
0x800B0114L
Сертификат имеет недопустимое имя. Либо имя не включено в список разрешенных, либо оно явно исключается.
CERT_E_INVALID_POLICY
0x800B0113L
Сертификат имеет недопустимую политику.
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
Основные ограничения сертификата недопустимы или отсутствуют.
CERT_E_CRITICAL
0x800B0105L
Сертификат используется для целей, отличных от целей, указанных в его ЦС.
CERT_E_VALIDITYPERIODNESTING
0x800B0102L
Сроки действия цепочки сертификации неправильно вложены.
CRYPT_E_NO_REVOCATION_CHECK
0x80092012L
Функции отзыва не удалось проверка отзыва сертификата.
CRYPT_E_REVOCATION_OFFLINE
0x80092013L
Функция отзыва не смогла проверить отзыв, потому что сервер отзыва был отключен.
 

Ошибки политики основных ограничений (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS).

Значение Значение
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
Основные ограничения сертификата недопустимы или отсутствуют.
 

Ошибки политики Authenticode (CERT_CHAIN_POLICY_AUTHENTICODE и CERT_CHAIN_POLICY_AUTHENTICODE_TS).

Эти ошибки являются дополнением к ошибкам базовой политики.

Значение Значение
CERT_E_PURPOSE
0x800B0106L
Сертификат используется для целей, отличных от цели, указанной выдающий ЦС.
CERT_E_REVOKED
0x800B010CL
Сертификат был явно отозван издателем.
CERT_E_REVOCATION_FAILURE
0x800B010EL
Процесс отзыва не удалось продолжить, и сертификат не удалось проверить.
 

Ошибки политики SSL (CERT_CHAIN_POLICY_SSL).

Эти ошибки являются дополнением к ошибкам базовой политики.

Значение Значение
CERT_E_UNTRUSTEDROOT
0x800B0109L
Цепочка сертификации правильно обработана, но завершена в корневом сертификате, который не является доверенным поставщиком доверия.
CERT_E_CN_NO_MATCH
0x800B010FL
Имя cn сертификата не совпадает с переданным значением.
CERT_E_PURPOSE
0x800B0106L
Сертификат используется для целей, отличных от целей, указанных его ЦС.
CERT_E_ROLE
0x800B0103L
Сертификат, который можно использовать только в качестве конечной сущности, используется в качестве ЦС или наоборот.
 

Ошибки корневой политики Майкрософт (CERT_CHAIN_POLICY_MICROSOFT_ROOT).

Значение Значение
CERT_E_UNTRUSTEDROOT
0x800B0109L
Цепочка сертификации правильно обработана, но завершена в корневом сертификате, который не является доверенным поставщиком доверия.
 

Ошибки политики ev.

Значение Значение
CERT_E_CHAINING
0x800B010AL
Не удалось создать цепочку сертификатов для доверенного корневого центра.
CERT_E_WRONG_USAGE
0x800B0110L
Сертификат не действителен для запрошенного применения.

lChainIndex

Индекс, указывающий цепочку, в которой обнаружена ошибка или условие, которое не является допустимым. Дополнительные сведения см. в подразделе "Примечания".

lElementIndex

Индекс, указывающий элемент в цепочке, где обнаружена ошибка или условие, которое является недопустимым. Дополнительные сведения см. в подразделе "Примечания".

pvExtraPolicyStatus

Указатель на структуру. Тип структуры определяется значением параметра pszPolicyOID функции CertVerifyCertificateChainPolicy . В дополнение к ошибкам dwError здесь также можно вернуть дополнительное состояние OID политики, чтобы предоставить дополнительные сведения о состоянии цепочки. При необходимости этот указатель можно задать так, чтобы он указывал на структуру AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS .

Комментарии

Если для lChainIndex и lElementIndex задано значение –1, то недопустимая ошибка или условие применяется ко всему контексту цепочки. Если только lElementIndex имеет значение –1, ошибка или условие, которое является недопустимым, применяется к цепочке, индексированной lChainIndex. В противном случае недопустимая ошибка или условие применяются к элементу сертификата pChainContext-rgpChain>[lChainIndex]->rgpElement[lElementIndex].

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть wincrypt.h