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.

Valor Significado
CERT_CHAIN_CACHE_END_CERT
0x00000001
As informações no certificado final são armazenadas em cache. Por padrão, as informações em todos os certificados, exceto o certificado final, são armazenadas em cache à medida que uma cadeia é criada. Definir esse sinalizador estende o cache até o certificado final.
CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL
0x00000004
Use apenas URLs armazenadas em cache na criação de uma cadeia de certificados. A Internet e a intranet não são pesquisadas por objetos baseados em URL.
CERT_CHAIN_USE_LOCAL_MACHINE_STORE
0x00000008
Crie a cadeia usando o local do Registro LocalMachine em vez do local CurrentUser.
CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE
0x00000010
Habilite a atualização automática do cache à medida que uma cadeia está sendo criada.
CERT_CHAIN_ENABLE_SHARE_STORE
0x00000020
Permitir que os repositórios de certificados usados para criar a cadeia sejam compartilhados.
CERT_CHAIN_DISABLE_AIA
0x00002000
Desative explicitamente as recuperações do Acesso às Informações de Autoridade (AIA).

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
CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG
0x00000001
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

Confira também

CERT_TRUST_STATUS

CertCreateCertificateChainEngine