Partager via


Fonction CertGetCRLFromStore (wincrypt.h)

La fonction CertGetCRLFromStore obtient le contexte de liste de révocation de certificats (CRL) premier ou suivant à partir du magasin de certificats de l’émetteur spécifié. La fonction effectue également les vérifications de vérification activées sur la liste de révocation de certificats. Les nouvelles fonctions de vérification de la chaîne de certificats sont recommandées au lieu de cette fonction.

Syntaxe

PCCRL_CONTEXT CertGetCRLFromStore(
  [in]           HCERTSTORE     hCertStore,
  [in, optional] PCCERT_CONTEXT pIssuerContext,
  [in]           PCCRL_CONTEXT  pPrevCrlContext,
  [in, out]      DWORD          *pdwFlags
);

Paramètres

[in] hCertStore

Handle d’un magasin de certificats.

[in, optional] pIssuerContext

Pointeur vers un CERT_CONTEXT émetteur. Le pointeur pIssuerContext peut provenir de ce magasin ou d’un autre magasin, ou avoir été créé par l’appelant CertCreateCertificateContext. Si la valeur NULL est transmise pour ce paramètre, toutes les listes de contrôle d’accès dans le magasin sont trouvées.

[in] pPrevCrlContext

Pointeur vers un CRL_CONTEXT. Un émetteur peut avoir plusieurs listes de contrôle d’émission. Par exemple, il peut générer des listes de contrôle d’accès delta à l’aide d’une extension X.509 version 3. Ce paramètre doit avoir la valeur NULL lors du premier appel pour obtenir la liste de révocation de certificats. Pour obtenir la liste de révocation de certificats suivante pour l’émetteur, le paramètre est défini sur le CRL_CONTEXT retourné par un appel précédent. Un pPrevCrlContext non NULL est toujours libéré par cette fonction en appelant CertFreeCRLContext, même en cas d’erreur.

[in, out] pdwFlags

Les valeurs d’indicateur suivantes sont définies pour activer les vérifications sur la liste de révocation de certificats retournée. Ces indicateurs peuvent être combinés à l’aide d’une opération OR au niveau du bit.

Valeur Signification
CERT_STORE_SIGNATURE_FLAG
Utilise la clé publique dans le certificat de l’émetteur pour vérifier la signature sur la liste de révocation de certificats retournée.
CERT_STORE_TIME_VALIDITY_FLAG
Obtient l’heure actuelle et vérifie qu’elle se trouve dans le délai entre ThisUpdate et NextUpdate de la liste de révocation de certificats.
CERT_STORE_BASE_CRL_FLAG
Obtient une liste de révocation de certificats de base.
CERT_STORE_DELTA_CRL_FLAG
Obtient une liste de révocation de certificats delta.
 

Si une case activée de vérification activée réussit, son indicateur est défini sur zéro.

Si une case activée de vérification activée échoue, son indicateur reste défini lors du retour. Si pIssuerContext a la valeur NULL, une CERT_STORE_SIGNATURE_FLAG activée échoue toujours et le CERT_STORE_NO_ISSUER_FLAG est également défini. Pour plus d’informations, consultez Remarques.

Si une seule des CERT_STORE_BASE_CRL_FLAG ou CERT_STORE_DELTA_CRL_FLAG est définie, cette fonction retourne une liste de révocation de certificats de base ou delta et l’indicateur de base ou delta approprié est effacé au retour. Si les deux indicateurs sont définis, un seul des indicateurs est effacé.

Pour une vérification case activée échec, un pointeur vers le premier ou le suivant CRL_CONTEXT est toujours retourné et GetLastError n’est pas mis à jour.

Valeur retournée

Si la fonction réussit, la valeur de retour est un pointeur vers un CRL_CONTEXT en lecture seule.

Si la fonction échoue et que la première ou la prochaine liste de révocation de certificats est introuvable, la valeur de retour est NULL.

Le CRL_CONTEXT retourné doit être libéré en appelant CertFreeCRLContext. Toutefois, lorsque le CRL_CONTEXT retourné est fourni pour pPrevCrlContext lors d’un appel suivant, la fonction le libère.

Pour obtenir des informations d’erreur étendues, appelez GetLastError. Certains codes d’erreur possibles suivent.

Valeur Description
E_INVALIDARG
Le handle dans le paramètre hCertStore n’est pas le même que dans le contexte CRL pointé vers le paramètre pPrevCrlContext , ou un indicateur non pris en charge a été défini dans pdwFlags.
CRYPT_E_NOT_FOUND
Soit il n’existait pas de listes de contrôle d’accès dans le magasin pour l’émetteur, soit la fonction a atteint la fin de la liste du magasin.

Remarques

CertDuplicateCRLContext peut être appelé pour créer une liste de révocation de certificats en double.

Les valeurs hexadécimales des indicateurs peuvent être combinées à l’aide d’une opération OR au niveau du bit pour activer les deux vérifications. Par exemple, pour activer les deux vérifications, la valeur DWORD pointée par pdwFlags est définie sur la valeur CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG. Si la vérification CERT_STORE_SIGNATURE_FLAG a réussi, mais que CERT_STORE_TIME_VALIDITY_FLAG vérification a échoué, la valeur DWORD pointée par pdwFlags est définie sur CERT_STORE_TIME_VALIDITY_FLAG lorsque la fonction retourne.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CRL_CONTEXT

CertCreateCertificateContext

CertDuplicateCRLContext

CertFreeCRLContext

CertGetCRLContextProperty

Fonctions de liste de révocation de certificats