CERT_TRUST_STATUS structure (wincrypt.h)

La structure CERT_TRUST_STATUS contient des informations d’approbation sur un certificat dans une chaîne de certificats, des informations récapitulatives sur une chaîne de certificats simples ou des informations récapitulatives sur un tableau de chaînes simples.

Syntaxe

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

Membres

dwErrorStatus

dwErrorStatus est un masque de bits des codes d’erreur suivants définis pour les certificats et les chaînes.

Valeur Signification
CERT_TRUST_NO_ERROR
0x00000000
Aucune erreur n’a été trouvée pour ce certificat ou cette chaîne.
CERT_TRUST_IS_NOT_TIME_VALID
0x00000001
Ce certificat ou l’un des certificats de la chaîne de certificats n’est pas valide dans le temps.
CERT_TRUST_IS_REVOKED
0x00000004
L’approbation pour ce certificat ou l’un des certificats de la chaîne de certificats a été révoqué.
CERT_TRUST_IS_NOT_SIGNATURE_VALID
0x00000008
Le certificat ou l’un des certificats de la chaîne de certificats n’a pas de signature valide.
CERT_TRUST_IS_NOT_VALID_FOR_USAGE
0x00000010
Le certificat ou la chaîne de certificats n’est pas valide pour son utilisation proposée.
CERT_TRUST_IS_UNTRUSTED_ROOT
0x00000020
Le certificat ou la chaîne de certificats est basé sur une racine non approuvée.
CERT_TRUST_REVOCATION_STATUS_UNKNOWN
0x00000040
L'état de révocation du certificat ou de l'un des certificats de la chaîne est inconnu.
CERT_TRUST_IS_CYCLIC
0x00000080
L’un des certificats de la chaîne a été émis par une autorité de certification que le certificat d’origine avait certifié.
CERT_TRUST_INVALID_EXTENSION
0x00000100
L’un des certificats a une extension qui n’est pas valide.
CERT_TRUST_INVALID_POLICY_CONSTRAINTS
0x00000200
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de stratégie, et l’un des certificats émis a une extension de mappage de stratégie non autorisée ou n’a pas d’extension de stratégies d’émission requise.
CERT_TRUST_INVALID_BASIC_CONSTRAINTS
0x00000400
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de base, et soit le certificat ne peut pas être utilisé pour émettre d’autres certificats, soit la longueur du chemin de la chaîne a été dépassée.
CERT_TRUST_INVALID_NAME_CONSTRAINTS
0x00000800
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de nom qui n’est pas valide.
CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT
0x00001000
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de nom qui contient des champs non pris en charge. Les champs minimum et maximum ne sont pas pris en charge. Par conséquent, minimum doit toujours être zéro et maximum doit toujours être absent. Seul l’UPN est pris en charge pour un autre nom. Les autres choix de nom suivants ne sont pas pris en charge :
  • Adresse X400
  • Nom de la partie EDI
  • ID inscrit
CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
0x00002000
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de nom et une contrainte de nom est manquante pour l’un des choix de noms dans le certificat de fin.
CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
0x00004000
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de nom, et il n’existe pas de contrainte de nom autorisée pour l’un des choix de noms dans le certificat de fin.
CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT
0x00008000
Le certificat ou l’un des certificats de la chaîne de certificats a une extension de contraintes de nom, et l’un des choix de noms dans le certificat final est explicitement exclu.
CERT_TRUST_IS_OFFLINE_REVOCATION
0x01000000
La révocation status du certificat ou de l’un des certificats de la chaîne de certificats est hors connexion ou obsolète.
CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY
0x02000000
Le certificat de fin n’a pas de stratégies d’émission résultantes, et l’un des certificats d’autorité de certification émettrice a une extension de contraintes de stratégie qui l’exige.
CERT_TRUST_IS_EXPLICIT_DISTRUST
0x04000000
Le certificat est explicitement non approuvé.

Windows Vista et Windows Server 2008 : La prise en charge de cet indicateur commence.

CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
0x08000000
Le certificat ne prend pas en charge une extension critique.

Windows Vista et Windows Server 2008 : La prise en charge de cet indicateur commence.

CERT_TRUST_HAS_WEAK_SIGNATURE
0x00100000
Le certificat n’a pas été signé de force. Cela indique généralement que les algorithmes de hachage MD2 ou MD5 ont été utilisés pour créer un hachage du certificat.

Windows 8 et Windows Server 2012 : la prise en charge de cet indicateur commence.

 

Les codes suivants sont définis uniquement pour les chaînes.

Valeur Signification
CERT_TRUST_IS_PARTIAL_CHAIN
0x00010000
La chaîne de certificats n'est pas complète.
CERT_TRUST_CTL_IS_NOT_TIME_VALID
0x00020000
Une liste de certificats d’approbation (CTL) utilisée pour créer cette chaîne n’était pas valide.
CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID
0x00040000
Une CTL utilisée pour créer cette chaîne n’avait pas de signature valide.
CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE
0x00080000
Une CTL utilisée pour créer cette chaîne n’est pas valide pour cette utilisation.

dwInfoStatus

Les informations suivantes status codes sont définis.

Valeur Signification
CERT_TRUST_HAS_EXACT_MATCH_ISSUER
0x00000001
Un certificat d’émetteur de correspondance exacte a été trouvé pour ce certificat. Ce code status s’applique uniquement aux certificats.
CERT_TRUST_HAS_KEY_MATCH_ISSUER
0x00000002
Un certificat d’émetteur de correspondance de clé a été trouvé pour ce certificat. Ce code status s’applique uniquement aux certificats.
CERT_TRUST_HAS_NAME_MATCH_ISSUER
0x00000004
Un certificat d’émetteur de correspondance de nom a été trouvé pour ce certificat. Ce code status s’applique uniquement aux certificats.
CERT_TRUST_IS_SELF_SIGNED
0x00000008
Ce certificat est auto-signé. Ce code status s’applique uniquement aux certificats.
CERT_TRUST_HAS_PREFERRED_ISSUER
0x00000100
Le certificat ou la chaîne a un émetteur préféré. Ce code status s’applique aux certificats et aux chaînes.
CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY
0x00000400
Une stratégie de chaîne d’émission existe. Ce code status s’applique aux certificats et aux chaînes.
CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
0x00000400
Contraintes de nom valides pour tous les espaces de noms, y compris UPN. Ce code status s’applique aux certificats et aux chaînes.
CERT_TRUST_IS_PEER_TRUSTED
0x00000800
Ce certificat est approuvé par l’homologue. Ce code status s’applique uniquement aux certificats.

Windows Vista et Windows Server 2008 : La prise en charge de cet indicateur commence.

CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED
0x00001000
La validité de la liste de révocation de certificats (CRL) de ce certificat a été étendue. Ce code status s’applique uniquement aux certificats.

Windows Vista et Windows Server 2008 : La prise en charge de cet indicateur commence.

CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE
0x00002000
Le certificat a été trouvé dans un magasin désigné par le membre hExclusiveRoot ou hExclusiveTrustedPeople de la structure CERT_CHAIN_ENGINE_CONFIG .

Windows 7 et Windows Server 2008 R2 : La prise en charge de cet indicateur commence.

CERT_TRUST_IS_COMPLEX_CHAIN
0x00010000
La chaîne de certificats créée est une chaîne complexe. Ce code status s’applique uniquement aux chaînes.
CERT_TRUST_IS_CA_TRUSTED
0x00004000
Un certificat d’autorité de certification intermédiaire non auto-signé a été trouvé dans le magasin désigné par le membre hExclusiveRoot de la structure CERT_CHAIN_ENGINE_CONFIG . Le certificat d’autorité de certification est traité comme une ancre d’approbation pour la chaîne de certificats. Cet indicateur est défini uniquement si la valeur CERT_CHAIN_EXCLUSIVE_ENABLE_CA_FLAG est définie dans le membre dwExclusiveFlags de la structure CERT_CHAIN_ENGINE_CONFIG .

Si cet indicateur est défini, les indicateurs CERT_TRUST_IS_SELF_SIGNED et CERT_TRUST_IS_PARTIAL_CHAINdwErrorStatus ne sont pas définis.

Windows 8 et Windows Server 2012 : la prise en charge de cet indicateur commence.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête wincrypt.h

Voir aussi

CERT_CHAIN_CONTEXT

CERT_CHAIN_ENGINE_CONFIG

CERT_SIMPLE_CHAIN