estrutura CERT_CHAIN_ENGINE_CONFIG (wincrypt.h)
A estrutura CERT_CHAIN_ENGINE_CONFIG define parâmetros para criar um mecanismo de cadeia de certificados não padrão. O mecanismo usado determina as maneiras pelas quais as cadeias de certificados são criadas.
Sintaxe
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;
Membros
cbSize
Tamanho dessa estrutura em bytes.
hRestrictedRoot
Esse parâmetro de configuração pode ser usado para restringir o repositório raiz. Se usado, ele pode ser o identificador de qualquer HCERTSTORE que contenha apenas um subconjunto adequado dos certificados no repositório raiz.
hRestrictedTrust
Armazene o identificador. Se usado, restringe os repositórios pesquisados para localizar CTLs.
hRestrictedOther
Armazene o identificador. Se usado, restringe os repositórios pesquisados para certificados e CRLs.
cAdditionalStore
Contagem de repositórios adicionais a serem pesquisados quanto a certificados e CRLs necessários para criar cadeias.
rghAdditionalStore
Um ponteiro para uma matriz de identificadores de repositório para quaisquer repositórios adicionais a serem pesquisados em cadeias de construção.
dwFlags
Os sinalizadores a seguir são definidos.
dwUrlRetrievalTimeout
Número de milissegundos antes de um tempo limite para recuperações de objeto de URL baseadas em rede. Pode ser definido como zero para usar o limite padrão.
MaximumCachedCertificates
Limite o número de certificados que podem ser armazenados em cache à medida que uma cadeia é criada. Pode ser definido como 0 para usar o limite padrão.
CycleDetectionModulus
Número de certificados adicionados à cadeia antes que um marcar seja feito para determinar se há um ciclo de certificados na cadeia. Um ciclo pode ser definido como tendo o mesmo certificado em dois locais diferentes em uma cadeia.
Quanto menor o número, mais frequentes serão feitas verificações. A verificação extra de ciclos de certificados reduzirá consideravelmente o processo. Esse parâmetro pode ser definido como zero para usar o limite padrão.
hExclusiveRoot
Identificador para um repositório de certificados que contém âncoras de confiança exclusivas. Se o membro hExclusiveRoot ou hExclusiveTrustedPeople apontar para um repositório válido, o modo de confiança exclusiva será usado para a construção da cadeia.
Windows 7 e Windows Server 2008 R2: O suporte para este membro começa.
hExclusiveTrustedPeople
Identificador para um repositório de certificados que contém certificados confiáveis de pares específicos do aplicativo. Se o membro hExclusiveRoot ou hExclusiveTrustedPeople apontar para um repositório válido, o modo de confiança exclusiva será usado para a construção da cadeia.
Windows 7 e Windows Server 2008 R2: O suporte para este membro começa.
dwExclusiveFlags
O sinalizador a seguir pode ser definido. O sinalizador se aplicará somente se hExclusiveRoot ou hExclusiveTrustedPeople ou ambos não forem NULL.
Windows 8 e Windows Server 2012: O suporte para este membro começa.
Valor | Significado |
---|---|
|
Indica que um certificado de AC intermediário não autoassinado no repositório hExclusiveRoot deve ser tratado como uma âncora de confiança durante a validação do certificado. Se um certificado for encadeado a essa AC, a criação da cadeia será encerrada e o certificado será considerado confiável. Nenhuma verificação de assinatura ou verificação de revogação é executada no certificado de autoridade de certificação.
Por padrão, se esse sinalizador não estiver definido, somente certificados autoassinados no repositório hExclusiveRoot serão tratados como âncoras de confiança. Consulte também o valor CERT_TRUST_IS_CA_TRUSTED na estrutura CERT_TRUST_STATUS . |
Comentários
O mecanismo de criação de cadeia usa quatro repositórios de certificados em cadeias de construção. Estes são hRoot, hWorld, hTrust e hOther. Os identificadores desses repositórios são estabelecidos usando informações nessa estrutura quando um mecanismo de cadeia é criado.
hRoot é o identificador de repositório de hRestrictedRoot ou, se hRestrictedRoot for NULL, o identificador para o Repositório do Sistema "Raiz".
HWorld é um repositório de certificados de coleção, incluindo repositórios irmãos hRoot, "CA", "My", "Trust" e quaisquer repositórios adicionais cujos identificadores estão na matriz apontada por rghAdditionalStore.
hTrust é o identificador de repositório de hRestrictedTrust ou, se hRestrictedTrust for NULL, hWorld.
hOther é hRestrictedOther mais hRoot ou, se hRestrictedTrust não for NULL, o repositório de coleção hWorld mais o identificador de repositório de hRestrictedTrust.
O modo de confiança exclusiva permite que os aplicativos especifiquem âncoras de confiança e certificados confiáveis para validação da cadeia de certificados. No modo de confiança exclusiva, o repositório raiz e o repositório de pessoas confiáveis no sistema são ignorados e as âncoras e certificados apontados pelos membros hExclusiveRoot e hExclusiveTrustedPeople são usados.
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | wincrypt.h |