структура CERT_CHAIN_ENGINE_CONFIG (wincrypt.h)
Структура CERT_CHAIN_ENGINE_CONFIG задает параметры для создания подсистемы цепочки сертификатов, отличной от стандартной. Используемый механизм определяет способы построения цепочек сертификатов.
Синтаксис
typedef struct _CERT_CHAIN_ENGINE_CONFIG {
DWORD cbSize;
HCERTSTORE hRestrictedRoot;
HCERTSTORE hRestrictedTrust;
HCERTSTORE hRestrictedOther;
DWORD cAdditionalStore;
HCERTSTORE *rghAdditionalStore;
DWORD dwFlags;
DWORD dwUrlRetrievalTimeout;
DWORD MaximumCachedCertificates;
DWORD CycleDetectionModulus;
HCERTSTORE hExclusiveRoot;
HCERTSTORE hExclusiveTrustedPeople;
DWORD dwExclusiveFlags;
} CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG;
Члены
cbSize
Размер этой структуры в байтах.
hRestrictedRoot
Этот параметр конфигурации можно использовать для ограничения корневого хранилища. При использовании он может быть дескриптором любого хранилища HCERTSTORE, содержащего только соответствующее подмножество сертификатов в корневом хранилище.
hRestrictedTrust
Дескриптор хранилища. Если используется, ограничивает магазины, в которые выполняется поиск списков CCL.
hRestrictedOther
Дескриптор хранилища. При использовании ограничивает хранилища , в которые выполняется поиск сертификатов и списков отзыва сертификатов.
cAdditionalStore
Количество дополнительных хранилищ для поиска сертификатов и списков отзыва сертификатов, необходимых для создания цепочек.
rghAdditionalStore
Указатель на массив дескрипторов магазинов для поиска дополнительных хранилищ в цепочках зданий.
dwFlags
Определены следующие флаги.
dwUrlRetrievalTimeout
Количество миллисекундах до истечения времени ожидания для получения объекта URL-адреса на основе сети. Можно задать нулевое значение, чтобы использовать ограничение по умолчанию.
MaximumCachedCertificates
Создается ограничение на количество сертификатов, которые можно кэшировать в виде цепочки. Для использования ограничения по умолчанию можно задать значение 0.
CycleDetectionModulus
Количество сертификатов, добавленных в цепочку до проверка, чтобы определить, существует ли цикл сертификатов в цепочке. Цикл может быть определен как имеющий один и тот же сертификат в двух разных местах в цепочке.
Чем меньше число, тем чаще будут выполняться проверки. Дополнительная проверка циклов сертификатов значительно замедлит процесс. Для этого параметра можно задать нулевое значение, чтобы использовать ограничение по умолчанию.
hExclusiveRoot
Обработка в хранилище сертификатов, которое содержит монопольные привязки доверия. Если элемент hExclusiveRoot или hExclusiveTrustedPeople указывает на допустимое хранилище, для построения цепочки используется монопольный режим доверия.
Windows 7 и Windows Server 2008 R2: Поддержка этого члена начинается.
hExclusiveTrustedPeople
Обработка в хранилище сертификатов, которое содержит доверенные сертификаты для конкретного однорангового узла приложения. Если элемент hExclusiveRoot или hExclusiveTrustedPeople указывает на допустимое хранилище, для построения цепочки используется монопольный режим доверия.
Windows 7 и Windows Server 2008 R2: Поддержка этого члена начинается.
dwExclusiveFlags
Можно задать следующий флаг. Флаг применяется только в том случае, если значение hExclusiveRoot или hExclusiveTrustedPeople не равно NULL.
Windows 8 и Windows Server 2012: Поддержка этого члена начинается.
Значение | Значение |
---|---|
|
Указывает, что несамозаверяющий промежуточный сертификат ЦС в хранилище hExclusiveRoot следует рассматривать как привязку доверия во время проверки сертификата. Если сертификат связан с этим ЦС, создание цепочки завершается и сертификат считается доверенным. Проверка подписи или проверка отзыва сертификата ЦС не выполняется.
По умолчанию, если этот флаг не установлен, только самозаверяющие сертификаты в хранилище hExclusiveRoot рассматриваются как привязки доверия. См. также значение CERT_TRUST_IS_CA_TRUSTED в структуре CERT_TRUST_STATUS . |
Комментарии
Подсистема создания цепочки использует четыре хранилища сертификатов в цепочках зданий. Это hRoot, hWorld, hTrust и hOther. Дескрипторы этих хранилищ устанавливаются с помощью сведений в этой структуре при создании цепной подсистемы.
hRoot — это дескриптор хранилища из hRestrictedRoot или, если hRestrictedRoot имеет значение NULL, дескриптор для системного хранилища "Root".
hWorld — это хранилище сертификатов коллекции, включая одноуровневые хранилища hRoot, "CA", "My", "Trust" и любые дополнительные хранилища, дескрипторы которых находятся в массиве, на который указывает rghAdditionalStore.
hTrust — это дескриптор хранилища из hRestrictedTrust или, если hRestrictedTrust имеет значение NULL, hWorld.
hOther имеет значение hRestrictedOt и hRoot или, если hRestrictedTrust не равно NULL, хранилище коллекции hWorld плюс дескриптор хранилища из hRestrictedTrust.
Режим монопольного доверия позволяет приложениям указывать привязки доверия и одноранговые доверенные сертификаты для проверки цепочки сертификатов. В режиме монопольного доверия корневое хранилище и хранилище доверенных пользователей в системе игнорируются, а вместо них используются привязки и сертификаты, на которые указывают члены hExclusiveRoot и hExclusiveTrustedPeople .
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | wincrypt.h |