structure CERT_CHAIN_PARA (wincrypt.h)

La structure CERT_CHAIN_PARA établit les critères de recherche et de correspondance à utiliser pour créer une chaîne de certificats.

Syntaxe

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;

Membres

cbSize

Taille, en octets, de cette structure.

RequestedUsage

Structure indiquant le type de correspondance nécessaire pour trouver des certificats d’émetteur pour la création d’une chaîne de certificats. La structure pointée vers indique si la logique AND ou OR doit être utilisée dans le processus de correspondance. La structure comprend également un tableau d’OID à mettre en correspondance.

RequestedIssuancePolicy

Structure facultative qui indique le type de correspondance de contrainte de stratégie d’émission qui s’applique lors de la génération d’une chaîne de certificats. La structure pointée vers indique si la logique AND ou OR doit être utilisée dans le processus de correspondance. La structure comprend également un tableau d’OID à mettre en correspondance.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

dwUrlRetrievalTimeout

Durée facultative, en millisecondes, avant expiration du délai de vérification de la révocation. Ce membre est facultatif.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

fCheckRevocationFreshnessTime

Membre facultatif. Lorsque cet indicateur a la valeur TRUE, une tentative de récupération d’une nouvelle liste de révocation de certificats est effectuée si cette mise à jour est supérieure ou égale à l’heure système actuelle moins la valeur dwRevocationFreshnessTime . Si cet indicateur n’est pas défini, l’heure de mise à jour suivante de la liste de révocation de certificats est utilisée.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

dwRevocationFreshnessTime

Heure actuelle, en secondes, moins l’heure de mise à jour de la liste de révocation de certificats de tous les éléments vérifiés.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

pftCacheResync

Membre facultatif. En cas de définition sur une valeur non NULL , les informations mises en cache avant l’heure spécifiée sont considérées comme non valides et la resynchronisation du cache est effectuée.

Windows Vista : La prise en charge de ce membre commence.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

pStrongSignPara

facultatif. Spécifiez un pointeur vers une structure CERT_STRONG_SIGN_PARA pour activer la vérification forte des signatures.

Windows 8 et Windows Server 2012 : la prise en charge de ce membre commence.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

dwStrongSignFlags

Indicateurs facultatifs qui modifient le comportement de récupération de chaîne. Il peut s’agir de zéro ou de la valeur suivante.

Valeur Signification
CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG
0x00000001
Si la chaîne est fortement signée, la clé publique dans le certificat final est vérifiée pour vérifier si elle répond aux exigences minimales de longueur de clé publique pour une signature forte. Vous pouvez spécifier CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG pour désactiver la vérification par défaut.
 

Windows 8 et Windows Server 2012 : la prise en charge de cette propriété commence.

Note Ce membre ne peut être utilisé que si CERT_CHAIN_PARA_HAS_EXTRA_FIELDS est défini à l’aide de la directive #define avant d’inclure Wincrypt.h. Si cette valeur est définie, l’application doit zéro tous les champs inutilisés.
 

Remarques

Les remarques suivantes s’appliquent lors de la vérification de signatures fortes.

  • Définissez le membre pStrongSignPara sur case activée pour les signatures fortes lors de l’utilisation de la fonction CertGetCertificateChain ou CertSelectCertificateChains.
  • Si un certificat sans signature forte est trouvé dans la chaîne, les erreurs CERT_TRUST_HAS_WEAK_SIGNATURE et CERT_TRUST_IS_NOT_SIGNATURE_VALID sont définies dans le champ dwErrorStatus de la structure CERT_TRUST_STATUS . Le paramètre ppChainContext de la fonction CertGetCertificateChain et le paramètre pprgpSelection de la fonction CertSelectCertificateChains pointent vers une structure CERT_CHAIN_CONTEXT qui, à son tour, pointe vers la structure CERT_TRUST_STATUS .
  • Si la chaîne est signée de manière forte, la clé publique dans le certificat final est vérifiée pour déterminer si elle répond aux exigences minimales de longueur de clé publique pour une signature forte. Si la condition n’est pas remplie, les erreurs CERT_TRUST_HAS_WEAK_SIGNATURE et CERT_TRUST_IS_NOT_SIGNATURE_VALID sont définies dans le champ dwErrorStatus de la structure CERT_TRUST_STATUS . Définissez la valeur CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG dans le membre dwStrongSignFlags pour désactiver cette case activée.
  • Si les indicateurs de CERT_STRONG_SIGN_ENABLE_CRL_CHECK ou de CERT_STRONG_SIGN_ENABLE_OCSP_CHECK sont définis dans la structure de CERT_STRONG_SIGN_SERIALIZED_INFO référencée par la structure de CERT_STRONG_SIGN_PARA pointée par le membre pStrongSignPara , et qu’une réponse de liste de révocation de certificats ou d’ocsp est trouvée sans signature forte, la réponse de la liste de révocation de certificats ou ocsp est traitée comme étant hors connexion. Autrement dit, les erreurs CERT_TRUST_IS_OFFLINE_REVOCATION et CERT_TRUST_REVOCATION_STATUS_UNKNOWN sont définies dans le champ dwErrorStatus de la structure CERT_TRUST_STATUS . En outre, le membre dwRevocationResult de la structure CERT_REVOCATION_INFO est défini sur NTE_BAD_ALGID.

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_USAGE_MATCH