estrutura CERT_CHAIN_PARA (wincrypt.h)

A estrutura CERT_CHAIN_PARA estabelece os critérios de pesquisa e correspondência a serem usados na criação de uma cadeia de certificados.

Sintaxe

typedef struct _CERT_CHAIN_PARA {
  DWORD                   cbSize;
  CERT_USAGE_MATCH        RequestedUsage;
  CERT_USAGE_MATCH        RequestedIssuancePolicy;
  DWORD                   dwUrlRetrievalTimeout;
  BOOL                    fCheckRevocationFreshnessTime;
  DWORD                   dwRevocationFreshnessTime;
  LPFILETIME              pftCacheResync;
  PCCERT_STRONG_SIGN_PARA pStrongSignPara;
  DWORD                   dwStrongSignFlags;
} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;

Membros

cbSize

O tamanho, em bytes, dessa estrutura.

RequestedUsage

Estrutura que indica o tipo de correspondência necessária para localizar certificados do emissor para criar uma cadeia de certificados. A estrutura apontada indica se a lógica AND ou OR deve ser usada no processo de correspondência. A estrutura também inclui uma matriz de OIDs a serem correspondidas.

RequestedIssuancePolicy

Estrutura opcional que indica o tipo de correspondência de restrição de política de emissão que se aplica ao criar uma cadeia de certificados. A estrutura apontada indica se a lógica AND ou OR deve ser usada no processo de correspondência. A estrutura também inclui uma matriz de OIDs a serem correspondidas.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

dwUrlRetrievalTimeout

Tempo opcional, em milissegundos, antes da verificação de revogação atingir o tempo limite. Esse membro é opcional.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

fCheckRevocationFreshnessTime

Membro opcional. Quando esse sinalizador for TRUE, será feita uma tentativa de recuperar uma nova CRL se essa atualização for maior ou igual à hora atual do sistema menos o valor dwRevocationFreshnessTime . Se esse sinalizador não estiver definido, a próxima hora de atualização da CRL será usada.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

dwRevocationFreshnessTime

A hora atual, em segundos, menos o tempo de atualização da CRL de todos os elementos verificados.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

pftCacheResync

Membro opcional. Quando definido como um valor não NULL , as informações armazenadas em cache antes da hora especificada são consideradas não válidas e a ressincronização de cache é executada.

Windows Vista: O suporte para este membro começa.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

pStrongSignPara

Opcional. Especifique um ponteiro para uma estrutura CERT_STRONG_SIGN_PARA para habilitar a verificação de assinatura forte.

Windows 8 e Windows Server 2012: o suporte para este membro começa.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

dwStrongSignFlags

Sinalizadores opcionais que modificam o comportamento de recuperação de cadeia. Isso pode ser zero ou o valor a seguir.

Valor Significado
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
Se a cadeia for fortemente assinada, a chave pública no certificado final será verificada para verificar se ele atende aos requisitos mínimos de comprimento de chave pública para uma assinatura forte. Você pode especificar CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG para desabilitar a verificação padrão.
 

Windows 8 e Windows Server 2012: o suporte para essa propriedade começa.

Nota Esse membro só poderá ser usado se CERT_CHAIN_PARA_HAS_EXTRA_FIELDS for definido usando a diretiva #define antes de incluir Wincrypt.h. Se esse valor for definido, o aplicativo deverá zero todos os campos não utilizados.
 

Comentários

Os comentários a seguir se aplicam ao verificar se há assinaturas fortes.

  • Defina o membro pStrongSignPara como marcar para assinaturas fortes ao usar a função CertGetCertificateChain ou CertSelectCertificateChains.
  • Se um certificado sem uma assinatura forte for encontrado na cadeia, os erros CERT_TRUST_HAS_WEAK_SIGNATURE e CERT_TRUST_IS_NOT_SIGNATURE_VALID serão definidos no campo dwErrorStatus da estrutura CERT_TRUST_STATUS . O parâmetro ppChainContext da função CertGetCertificateChain e o parâmetro pprgpSelection da função CertSelectCertificateChains apontam para uma estrutura CERT_CHAIN_CONTEXT que, por sua vez, aponta para a estrutura CERT_TRUST_STATUS .
  • Se a cadeia for fortemente assinada, a chave pública no certificado final será verificada para determinar se ela atende aos requisitos mínimos de comprimento de chave pública para uma assinatura forte. Se a condição não for atendida, os erros CERT_TRUST_HAS_WEAK_SIGNATURE e CERT_TRUST_IS_NOT_SIGNATURE_VALID serão definidos no campo dwErrorStatus da estrutura CERT_TRUST_STATUS . Defina o valor CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG no membro dwStrongSignFlags para desabilitar esse marcar.
  • Se os sinalizadores CERT_STRONG_SIGN_ENABLE_CRL_CHECK ou CERT_STRONG_SIGN_ENABLE_OCSP_CHECK forem definidos na estrutura CERT_STRONG_SIGN_SERIALIZED_INFO referenciada pela estrutura CERT_STRONG_SIGN_PARA apontada pelo membro pStrongSignPara e uma resposta CRL ou OCSP for encontrada sem uma assinatura forte, a resposta CRL ou OCSP será tratada como offline. Ou seja, os erros CERT_TRUST_IS_OFFLINE_REVOCATION e CERT_TRUST_REVOCATION_STATUS_UNKNOWN são definidos no campo dwErrorStatus da estrutura CERT_TRUST_STATUS . Além disso, o membro dwRevocationResult da estrutura CERT_REVOCATION_INFO é definido como NTE_BAD_ALGID.

Requisitos

Requisito Valor
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_USAGE_MATCH