Fonction CertAddEncodedCRLToStore (wincrypt.h)

La fonction CertAddEncodedCRLToStore crée un contexte de liste de révocation de certificats (CRL) à partir d’une liste de révocation de certificats encodée et l’ajoute au magasin de certificats. La fonction effectue une copie du contexte de liste de révocation de certificats avant de l’ajouter au magasin.

Syntaxe

BOOL CertAddEncodedCRLToStore(
  [in]            HCERTSTORE    hCertStore,
  [in]            DWORD         dwCertEncodingType,
  [in]            const BYTE    *pbCrlEncoded,
  [in]            DWORD         cbCrlEncoded,
  [in]            DWORD         dwAddDisposition,
  [out, optional] PCCRL_CONTEXT *ppCrlContext
);

Paramètres

[in] hCertStore

Handle d’un magasin de certificats.

[in] dwCertEncodingType

Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération OR au niveau du bit, comme illustré dans l’exemple suivant :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING types d’encodage actuellement définis sont les suivants :

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbCrlEncoded

Pointeur vers une mémoire tampon contenant la liste de révocation de certificats encodée à ajouter au magasin de certificats.

[in] cbCrlEncoded

Taille, en octets, de la mémoire tampon pbCrlEncoded .

[in] dwAddDisposition

Spécifie l’action à entreprendre si une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante existe déjà dans le magasin. Les valeurs de disposition actuellement définies et leurs utilisations sont les suivantes.

Valeur Signification
CERT_STORE_ADD_ALWAYS
N’effectue aucune case activée pour une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante. Une nouvelle liste de révocation de certificats est toujours ajoutée au magasin. Cela peut entraîner des doublons dans un magasin.
CERT_STORE_ADD_NEW
S’il existe une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante, l’opération échoue. GetLastError retourne le code CRYPT_E_EXISTS.
CERT_STORE_ADD_NEWER
S’il existe une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante, les heures ThisUpdate sur les listes de révocation de certificats sont comparées. Si la liste de révocation de certificats existante a une durée ThisUpdate inférieure à la durée ThisUpdate sur la nouvelle liste de révocation de certificats, l’ancienne liste de révocation de certificats ou le lien est remplacé comme avec CERT_STORE_ADD_REPLACE_EXISTING. Si la liste de révocation de certificats existante a une durée ThisUpdate supérieure ou égale à l’heure ThisUpdate sur la liste de révocation de certificats à ajouter, la fonction échoue avec GetLastError qui retourne le code CRYPT_E_EXISTS.

Si une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante est introuvable dans le magasin, une nouvelle liste de révocation de certificats est ajoutée au magasin.

CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
L’action est la même que pour CERT_STORE_ADD_NEWER, sauf que si une liste de révocation de certificats plus ancienne est remplacée, les propriétés de l’ancienne liste de révocation de certificats sont incorporées dans la liste de révocation de certificats de remplacement.
CERT_STORE_ADD_REPLACE_EXISTING
S’il existe une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante, cette liste de révocation de certificats ou lien existant est supprimé et une nouvelle liste de révocation de certificats est créée et ajoutée au magasin. Si une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante n’existe pas, une liste de révocation de certificats correspondante est ajoutée.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
S’il existe une liste de révocation de certificats correspondante dans le magasin, ce contexte existant est supprimé avant de créer et d’ajouter le nouveau contexte. Le nouveau contexte hérite des propriétés de la liste de révocation de certificats existante.
CERT_STORE_ADD_USE_EXISTING
S’il existe une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante, celle-ci est utilisée et les propriétés de la nouvelle liste de révocation de certificats sont ajoutées. La fonction n’échoue pas, mais aucune nouvelle liste de révocation de certificats n’est ajoutée. Si ppCertContext n’est pas NULL, le contexte existant est dupliqué.

Si une liste de révocation de certificats correspondante ou un lien vers une liste de révocation de certificats correspondante n’existe pas, une nouvelle liste de révocation de certificats est ajoutée.

[out, optional] ppCrlContext

Pointeur vers un pointeur vers la structure CRL_CONTEXT décodée. Il s’agit d’un paramètre facultatif qui peut être NULL, indiquant que l’application appelante n’a pas besoin d’une copie de la liste de révocation de certificats nouvelle ou existante. Si une copie est effectuée, ce contexte doit être libéré à l’aide de CertFreeCRLContext.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Certains codes d’erreur possibles suivent.

Code de retour Description
CRYPT_E_EXISTS
CERT_STORE_ADD_NEW est défini et la liste de révocation de certificats existe déjà dans le magasin, ou CERT_STORE_ADD_NEWER est défini et il y a une liste de révocation de certificats dans le magasin avec une durée ThisUpdate supérieure ou égale à l’heure ThisUpdate pour l’ajout de la liste de révocation de certificats.
E_INVALIDARG
Une valeur de disposition non valide a été spécifiée dans le paramètre dwAddDisposition ou un type d’encodage non valide a été spécifié. Actuellement, seul le type d’encodage X509_ASN_ENCODING est pris en charge.
 

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage ASN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.

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

CertAddCRLContextToStore

CertFreeCRLContext

Fonctions de liste de révocation de certificats