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

Структура CERT_TRUST_STATUS содержит сведения о доверии сертификату в цепочке сертификатов, сводную информацию о доверии о простой цепочке сертификатов или сводную информацию о массиве простых цепочек.

Синтаксис

typedef struct _CERT_TRUST_STATUS {
  DWORD dwErrorStatus;
  DWORD dwInfoStatus;
} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS;

Члены

dwErrorStatus

dwErrorStatus — это битовая маска следующих кодов ошибок, определенных для сертификатов и цепочек.

Значение Значение
CERT_TRUST_NO_ERROR
0x00000000
Ошибка не найдена для этого сертификата или цепочки.
CERT_TRUST_IS_NOT_TIME_VALID
0x00000001
Этот сертификат или один из сертификатов в цепочке сертификатов является недопустимым по времени.
CERT_TRUST_IS_REVOKED
0x00000004
Доверие для этого сертификата или одного из сертификатов в цепочке сертификатов было отозвано.
CERT_TRUST_IS_NOT_SIGNATURE_VALID
0x00000008
Сертификат или один из сертификатов в цепочке сертификатов не имеют допустимой подписи.
CERT_TRUST_IS_NOT_VALID_FOR_USAGE
0x00000010
Сертификат или цепочка сертификатов недопустимы для предлагаемого использования.
CERT_TRUST_IS_UNTRUSTED_ROOT
0x00000020
Сертификат или цепочка сертификатов основана на ненадежном корневом каталоге.
CERT_TRUST_REVOCATION_STATUS_UNKNOWN
0x00000040
Состояние отзыва сертификата или одного из сертификатов в цепочке сертификатов неизвестно.
CERT_TRUST_IS_CYCLIC
0x00000080
Один из сертификатов в цепочке был выдан центром сертификации , который сертифицировал исходный сертификат.
CERT_TRUST_INVALID_EXTENSION
0x00000100
Один из сертификатов имеет недопустимое расширение.
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение ограничений политики, а один из выданных сертификатов имеет запрещенное расширение сопоставления политик или не имеет обязательного расширения политик выдачи.
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение базовых ограничений. Либо сертификат не может использоваться для выдачи других сертификатов, либо превышена длина пути цепочки.
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
Сертификат или один из сертификатов в цепочке сертификатов имеет недопустимое расширение ограничений имен.
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение ограничений имен, которое содержит неподдерживаемые поля. Минимальное и максимальное поля не поддерживаются. Таким образом, минимум всегда должен быть равен нулю, а максимум всегда должен отсутствовать. Для другого имени поддерживается только имя участника-пользователя. Следующие варианты альтернативных имен не поддерживаются:
  • Адрес X400
  • Имя участника EDI
  • Зарегистрированный идентификатор
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение ограничений имен, и ограничение имени отсутствует для одного из вариантов имени в конечном сертификате.
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение ограничений имен и не имеет допустимого ограничения имени для одного из вариантов имени в конечном сертификате.
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
Сертификат или один из сертификатов в цепочке сертификатов имеет расширение ограничений имен, и один из вариантов имени в конечном сертификате явно исключается.
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
Состояние отзыва сертификата или одного из сертификатов в цепочке сертификатов находится в автономном режиме или устарело.
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
Конечный сертификат не имеет результирующих политик выдачи, а один из сертификатов выдающего центра сертификации имеет расширение ограничений политики, требующее этого.
CERT_TRUST_IS_EXPLICIT_DISTRUST
0x04000000
Сертификат явно не является доверенным.

Windows Vista и Windows Server 2008: Начинается поддержка этого флага.

CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
0x08000000
Сертификат не поддерживает критическое расширение.

Windows Vista и Windows Server 2008: Начинается поддержка этого флага.

CERT_TRUST_HAS_WEAK_SIGNATURE
0x00100000
Сертификат не был подписан строго. Обычно это означает, что алгоритмы хэширования MD2 или MD5 использовались для создания хэша сертификата.

Windows 8 и Windows Server 2012: начинается поддержка этого флага.

 

Следующие коды определяются только для цепочек.

Значение Значение
CERT_TRUST_IS_PARTIAL_CHAIN
0x00010000
Цепочка сертификатов не полная.
CERT_TRUST_CTL_IS_NOT_TIME_VALID
0x00020000
Список доверия сертификатов (CTL), используемый для создания этой цепочки, не является допустимым по времени.
CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID
0x00040000
CTL, используемый для создания этой цепочки, не имеет допустимой подписи.
CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE
0x00080000
CTL, используемый для создания этой цепочки, недопустим для этого использования.

dwInfoStatus

Определены следующие коды состояния сведений.

Значение Значение
CERT_TRUST_HAS_EXACT_MATCH_ISSUER
0x00000001
Для этого сертификата найден сертификат издателя точного соответствия. Этот код состояния применяется только к сертификатам.
CERT_TRUST_HAS_KEY_MATCH_ISSUER
0x00000002
Для этого сертификата найден сертификат издателя соответствия ключа. Этот код состояния применяется только к сертификатам.
CERT_TRUST_HAS_NAME_MATCH_ISSUER
0x00000004
Для этого сертификата найден сертификат издателя соответствия имени. Этот код состояния применяется только к сертификатам.
CERT_TRUST_IS_SELF_SIGNED
0x00000008
Этот сертификат является самозаверяющий. Этот код состояния применяется только к сертификатам.
CERT_TRUST_HAS_PREFERRED_ISSUER
0x00000100
Сертификат или цепочка имеет предпочтительного издателя. Этот код состояния применяется к сертификатам и цепочкам.
CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY
0x00000400
Существует политика цепочки выдач. Этот код состояния применяется к сертификатам и цепочкам.
CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
0x00000400
Допустимые ограничения имен для всех пространств имен, включая имя участника-пользователя. Этот код состояния применяется к сертификатам и цепочкам.
CERT_TRUST_IS_PEER_TRUSTED
0x00000800
Этот сертификат является доверенным одноранговым. Этот код состояния применяется только к сертификатам.

Windows Vista и Windows Server 2008: Начнется поддержка этого флага.

CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED
0x00001000
Срок действия списка отзыва сертификатов (CRL) этого сертификата продлен. Этот код состояния применяется только к сертификатам.

Windows Vista и Windows Server 2008: Начнется поддержка этого флага.

CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE
0x00002000
Сертификат найден в хранилище, на который указывает элемент hExclusiveRoot или hExclusiveTrustedPeople структуры CERT_CHAIN_ENGINE_CONFIG .

Windows 7 и Windows Server 2008 R2: Начнется поддержка этого флага.

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
Созданная цепочка сертификатов представляет собой сложную цепочку. Этот код состояния применяется только к цепочкам.
CERT_TRUST_IS_CA_TRUSTED
0x00004000
В хранилище, на который указывает элемент hExclusiveRootструктуры CERT_CHAIN_ENGINE_CONFIG , обнаружен не самозаверяющий промежуточный сертификат ЦС. Сертификат ЦС рассматривается как привязка доверия для цепочки сертификатов. Этот флаг будет установлен, только если значение CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG задано в элементе dwExclusiveFlags структуры CERT_CHAIN_ENGINE_CONFIG .

Если этот флаг установлен, флаги CERT_TRUST_IS_SELF_SIGNED и CERT_TRUST_IS_PARTIAL_CHAINdwErrorStatus не будут установлены.

Windows 8 и Windows Server 2012: начинается поддержка этого флага.

Требования

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

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

CERT_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN