estrutura CERT_TRUST_STATUS (wincrypt.h)

A estrutura CERT_TRUST_STATUS contém informações de confiança sobre um certificado em uma cadeia de certificados, informações de confiança resumida sobre uma cadeia simples de certificados ou informações resumidas sobre uma matriz de cadeias simples.

Sintaxe

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

Membros

dwErrorStatus

dwErrorStatus é uma máscara de bits dos seguintes códigos de erro definidos para certificados e cadeias.

Valor Significado
CERT_TRUST_NO_ERROR
0x00000000
Nenhum erro encontrado para esse certificado ou cadeia.
CERT_TRUST_IS_NOT_TIME_VALID
0x00000001
Esse certificado ou um dos certificados na cadeia de certificados não é válido por tempo.
CERT_TRUST_IS_REVOKED
0x00000004
A confiança para esse certificado ou um dos certificados na cadeia de certificados foi revogada.
CERT_TRUST_IS_NOT_SIGNATURE_VALID
0x00000008
O certificado ou um dos certificados na cadeia de certificados não tem uma assinatura válida.
CERT_TRUST_IS_NOT_VALID_FOR_USAGE
0x00000010
O certificado ou cadeia de certificados não é válido para seu uso proposto.
CERT_TRUST_IS_UNTRUSTED_ROOT
0x00000020
O certificado ou cadeia de certificados é baseado em uma raiz não confiável.
CERT_TRUST_REVOCATION_STATUS_UNKNOWN
0x00000040
O status de revogação do certificado ou um dos certificados na cadeia de certificados é desconhecido.
CERT_TRUST_IS_CYCLIC
0x00000080
Um dos certificados na cadeia foi emitido por uma autoridade de certificação que o certificado original havia certificado.
CERT_TRUST_INVALID_EXTENSION
0x00000100
Um dos certificados tem uma extensão que não é válida.
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de política e um dos certificados emitidos tem uma extensão de mapeamento de política não permitida ou não tem uma extensão de políticas de emissão necessária.
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições básicas e o certificado não pode ser usado para emitir outros certificados ou o comprimento do caminho da cadeia foi excedido.
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de nome que não é válida.
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de nome que contém campos sem suporte. Não há suporte para os campos mínimo e máximo. Portanto, o mínimo sempre deve ser zero e o máximo sempre deve estar ausente. Há suporte apenas para UPN para outro nome. Não há suporte para as seguintes opções de nome alternativo:
  • Endereço X400
  • Nome da Parte EDI
  • ID registrada
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de nome e uma restrição de nome está ausente para uma das opções de nome no certificado final.
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de nome e não há uma restrição de nome permitida para uma das opções de nome no certificado final.
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
O certificado ou um dos certificados na cadeia de certificados tem uma extensão de restrições de nome e uma das opções de nome no certificado final é explicitamente excluída.
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
A revogação status do certificado ou um dos certificados na cadeia de certificados está offline ou obsoleto.
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
O certificado final não tem nenhuma política de emissão resultante e um dos certificados de autoridade de certificação emissora tem uma extensão de restrições de política que o exige.
CERT_TRUST_IS_EXPLICIT_DISTRUST
0x04000000
O certificado é explicitamente desconfiado.

Windows Vista e Windows Server 2008: O suporte para esse sinalizador começa.

CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
0x08000000
O certificado não dá suporte a uma extensão crítica.

Windows Vista e Windows Server 2008: O suporte para esse sinalizador começa.

CERT_TRUST_HAS_WEAK_SIGNATURE
0x00100000
O certificado não foi fortemente assinado. Normalmente, isso indica que os algoritmos de hash MD2 ou MD5 foram usados para criar um hash do certificado.

Windows 8 e Windows Server 2012: o suporte para esse sinalizador começa.

 

Os códigos a seguir são definidos apenas para cadeias.

Valor Significado
CERT_TRUST_IS_PARTIAL_CHAIN
0x00010000
A cadeia de certificados não está completa.
CERT_TRUST_CTL_IS_NOT_TIME_VALID
0x00020000
Uma CTL ( lista de certificados confiáveis ) usada para criar essa cadeia não era válida por tempo.
CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID
0x00040000
Uma CTL usada para criar essa cadeia não tinha uma assinatura válida.
CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE
0x00080000
Uma CTL usada para criar essa cadeia não é válida para esse uso.

dwInfoStatus

As informações a seguir status códigos são definidos.

Valor Significado
CERT_TRUST_HAS_EXACT_MATCH_ISSUER
0x00000001
Um certificado do emissor de correspondência exata foi encontrado para este certificado. Esse código status se aplica somente a certificados.
CERT_TRUST_HAS_KEY_MATCH_ISSUER
0x00000002
Um certificado do emissor de correspondência de chave foi encontrado para este certificado. Esse código status se aplica somente a certificados.
CERT_TRUST_HAS_NAME_MATCH_ISSUER
0x00000004
Um certificado do emissor de correspondência de nome foi encontrado para este certificado. Esse código status se aplica somente a certificados.
CERT_TRUST_IS_SELF_SIGNED
0x00000008
Esse certificado é autoassinado. Esse código status se aplica somente a certificados.
CERT_TRUST_HAS_PREFERRED_ISSUER
0x00000100
O certificado ou cadeia tem um emissor preferencial. Esse código status se aplica a certificados e cadeias.
CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY
0x00000400
Existe uma política de cadeia de emissão. Esse código status se aplica a certificados e cadeias.
CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
0x00000400
Uma restrição de nome válida para todos os namespaces, incluindo UPN. Esse código status se aplica a certificados e cadeias.
CERT_TRUST_IS_PEER_TRUSTED
0x00000800
Esse certificado é confiável para pares. Esse código status se aplica somente a certificados.

Windows Vista e Windows Server 2008: O suporte para esse sinalizador começa.

CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED
0x00001000
A validade da CRL ( lista de certificados revogados ) desse certificado foi estendida. Esse código status se aplica somente a certificados.

Windows Vista e Windows Server 2008: O suporte para esse sinalizador começa.

CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE
0x00002000
O certificado foi encontrado em um repositório apontado pelo membro hExclusiveRoot ou hExclusiveTrustedPeople da estrutura CERT_CHAIN_ENGINE_CONFIG .

Windows 7 e Windows Server 2008 R2: O suporte para esse sinalizador começa.

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
A cadeia de certificados criada é uma cadeia complexa. Esse código status se aplica somente a cadeias.
CERT_TRUST_IS_CA_TRUSTED
0x00004000
Um certificado de AC intermediário não autoassinado foi encontrado no repositório apontado pelo membro hExclusiveRoot da estrutura CERT_CHAIN_ENGINE_CONFIG . O certificado de autoridade de certificação é tratado como uma âncora de confiança para a cadeia de certificados. Esse sinalizador só será definido se o valor CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG for definido no membro dwExclusiveFlags da estrutura CERT_CHAIN_ENGINE_CONFIG .

Se esse sinalizador estiver definido, o CERT_TRUST_IS_SELF_SIGNED e os sinalizadoresdwErrorStatus CERT_TRUST_IS_PARTIAL_CHAIN não serão definidos.

Windows 8 e Windows Server 2012: o suporte para esse sinalizador começa.

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_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN