Partager via


Fonction CertFindCRLInStore (wincrypt.h)

La fonction CertFindCRLInStore recherche le premier ou le prochain contexte de liste de révocation de certificats (CRL) dans un magasin de certificats qui correspond à un critère de recherche établi par le paramètre dwFindType et le paramètre pvFindPara associé. Cette fonction peut être utilisée dans une boucle pour rechercher tous les contextes de liste de révocation de certificats dans un magasin de certificats qui correspondent aux critères de recherche spécifiés.

Syntaxe

PCCRL_CONTEXT CertFindCRLInStore(
  [in] HCERTSTORE    hCertStore,
  [in] DWORD         dwCertEncodingType,
  [in] DWORD         dwFindFlags,
  [in] DWORD         dwFindType,
  [in] const void    *pvFindPara,
  [in] PCCRL_CONTEXT pPrevCrlContext
);

Paramètres

[in] hCertStore

Handle du magasin de certificats à rechercher.

[in] dwCertEncodingType

Ce paramètre n’est actuellement pas utilisé. Elle doit être définie sur zéro.

[in] dwFindFlags

Si dwFindType est CRL_FIND_ISSUED_BY, par défaut, seule la correspondance du nom de l’émetteur est effectuée. Les indicateurs suivants peuvent être utilisés pour effectuer un filtrage supplémentaire.

Valeur Signification
CRL_FIND_ISSUED_BY_AKI_FLAG
Recherche une liste de révocation de certificats qui a une extension AKI (Authority Key Identifier). Si la liste de révocation de certificats a une AKI, seule une liste de révocation de certificats dont l’AKI correspond à l’émetteur est retournée.
Note L’extension AKI a la valeur d’identificateur d’objet (OID) szOID_AUTHORITY_KEY_IDENTIFIER2 et sa structure de données correspondante.
 
CRL_FIND_ISSUED_BY_SIGNATURE_FLAG
Utilisez la clé publique dans le certificat de l’émetteur pour vérifier la signature sur la liste de révocation de certificats. Retourne uniquement une liste de révocation de certificats qui a une signature valide.
CRL_FIND_ISSUED_BY_DELTA_FLAG
Recherche et retourne une liste de révocation de certificats delta.
CRL_FIND_ISSUED_BY_BASE_FLAG
Recherche et retourne une liste de révocation de certificats de base.
CRL_FIND_ISSUED_FOR_SET_STRONG_PROPERTIES_FLAG
La force de la signature est vérifiée après une vérification réussie. Cet indicateur s’applique uniquement lorsque le paramètre dwFindType a la valeur CRL_FIND_ISSUED_FOR. Vous devez également définir CRL_FIND_ISSUED_BY_SIGNATURE_FLAG. En cas de réussite, les propriétés de signature forte suivantes sont définies dans le contexte de liste de révocation de certificats :
  • CERT_SIGN_HASH_CNG_ALG_PROP_ID
  • CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Windows 8 et Windows Server 2012 : la prise en charge de cet indicateur commence.

[in] dwFindType

Spécifie le type de recherche effectué. La valeur de dwFindType détermine le type de données, le contenu et l’utilisation du paramètre pvFindPara . Les types de recherche actuellement définis et leurs exigences pvFindPara sont les suivants.

Valeur Signification
CRL_FIND_ANY
Le paramètre pvFindPara n’est pas utilisé. Elle doit être définie sur NULL.
Aucun critère de recherche. La liste de révocation de certificats suivante dans le magasin est retournée.
CRL_FIND_ISSUED_BY
Pointeur vers un CERT_CONTEXT.
Recherche la liste de révocation de certificats suivante dans le magasin correspondant à l’émetteur dans le CERT_CONTEXT.
CRL_FIND_EXISTING
Pointeur vers un CRL_CONTEXT.
Recherche la liste de révocation de certificats suivante qui correspond à la CRL_CONTEXT des manières suivantes :
  • Les deux sont des listes de révocation de certificats de base ou delta.
  • Les objets BLOB du nom de l’émetteur pour les deux sont identiques.
  • S’ils existent, les objets BLOB d’extension encodés Authority/KeyIdentifier et IssuingDistributionPoint correspondent.
CRL_FIND_ISSUED_FOR
Pointeur vers un CRL_FIND_ISSUED_FOR_PARA.
Recherche la liste de révocation de certificats suivante dans le magasin qui correspond à l’émetteur du certificat d’objet dans la structure CRL_FIND_ISSUED_FOR_PARA.

Si aucune liste de révocation de certificats n’est trouvée, recherche la liste de révocation de certificats suivante dans le magasin qui correspond à l’émetteur dans la structure CRL_FIND_ISSUED_FOR_PARA.

Note Lors de l’utilisation de certificats croisés, le nom de l’objet dans le certificat de l’émetteur peut ne pas correspondre au nom de l’émetteur dans le certificat d’objet et à sa liste de révocation de certificats correspondante.
 

[in] pvFindPara

Ce paramètre est déterminé par la valeur de dwFindType. Pour plus d’informations, consultez le tableau plus haut dans cette rubrique.

[in] pPrevCrlContext

Pointeur vers la dernière CRL_CONTEXT retournée par cette fonction. Doit avoir la valeur NULL pour obtenir la première liste de révocation de certificats dans le magasin répondant aux critères de recherche. Les listes de révocation de certificats successives répondant aux critères de recherche peuvent être trouvées en définissant pPrevCrlContext sur le pointeur PCCRL_CONTEXT retourné par un appel précédent à la fonction. Le processus de recherche ignore les listes de révocation de certificats qui ne correspondent pas aux critères de recherche ou qui ont été précédemment supprimées du magasin par CertDeleteCRLFromStore. Cette fonction libère les CRL_CONTEXT référencées par des valeurs de ce paramètre qui ne sont pas NULL.

Valeur retournée

Si la fonction réussit, la fonction retourne un pointeur vers un contexte de liste de révocation de certificats en lecture seule. Une fois que vous avez terminé d’utiliser le contexte de liste de révocation de certificats retourné, libérez-le en appelant la fonction CertFreeCRLContext ou en la libérant implicitement en la passant en tant que paramètre pPrevCrlContext lors d’un appel ultérieur à la fonction CertFindCRLInStore .

Si la fonction échoue et qu’une liste de révocation de certificats correspondant aux critères de recherche est introuvable, la valeur de retour est NULL. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Certains codes d’erreur possibles suivent.

Code de retour Description
E_INVALIDARG
Le handle dans le paramètre hCertStore n’est pas le même que dans le contexte de liste de révocation de certificats pointé par le paramètre pPrevCrlContext , ou un type de recherche non valide a été spécifié dans le paramètre dwFindType .
CRYPT_E_NOT_FOUND
Aucune liste de révocation de certificats n’est disponible dans le magasin, aucune liste de révocation de certificats correspondant aux critères de recherche n’a été trouvée ou la fin de la liste du magasin a été atteinte.

Remarques

Le pointeur retourné est libéré lorsqu’il est passé en tant que paramètre pPrevCrlContext lors d’un appel ultérieur à la fonction. Sinon, le pointeur doit être explicitement libéré en appelant CertFreeCRLContext. Un pPrevCrlContext qui n’est pas NULL est toujours libéré par CertFindCRLInStore à l’aide d’un appel à CertFreeCRLContext, même en cas d’erreur dans la fonction.

CertDuplicateCRLContext peut être appelé pour créer un doublon du contexte retourné. Le contexte de liste de révocation de certificats retourné peut être ajouté à un autre magasin de certificats à l’aide de CertAddCRLContextToStore, ou un lien vers ce contexte de liste de révocation de certificats peut être ajouté à un magasin non-collection à l’aide de CertAddCRLLinkToStore.

Configuration requise

Condition requise Valeur
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

CertAddCRLContextToStore

CertAddCRLLinkToStore

CertDeleteCRLFromStore

CertDuplicateCRLContext

CertFreeCRLContext

Fonctions de liste de révocation de certificats