Fonction CertAddEncodedCertificateToStore (wincrypt.h)

La fonction CertAddEncodedCertificateToStore crée un contexte de certificat à partir d’un certificat encodé et l’ajoute au magasin de certificats. Le contexte créé n’inclut aucune propriété étendue.

La fonction CertAddEncodedCertificateToStore effectue également une copie du certificat encodé avant d’ajouter le certificat au magasin.

Syntaxe

BOOL CertAddEncodedCertificateToStore(
  [in]            HCERTSTORE     hCertStore,
  [in]            DWORD          dwCertEncodingType,
  [in]            const BYTE     *pbCertEncoded,
  [in]            DWORD          cbCertEncoded,
  [in]            DWORD          dwAddDisposition,
  [out, optional] PCCERT_CONTEXT *ppCertContext
);

Paramètres

[in] hCertStore

Handle du 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] pbCertEncoded

Pointeur vers une mémoire tampon contenant le certificat encodé qui doit être ajouté au magasin de certificats.

[in] cbCertEncoded

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

[in] dwAddDisposition

Spécifie l’action à entreprendre si un certificat correspondant ou un lien vers un certificat correspondant existe dans le magasin. Les valeurs de disposition actuellement définies et leurs utilisations sont les suivantes.

Valeur Signification
CERT_STORE_ADD_ALWAYS
La fonction n’effectue aucune case activée pour un certificat de correspondance existant ou un lien vers un certificat correspondant. Un nouveau certificat est toujours ajouté au magasin. Cela peut entraîner des doublons dans un magasin.
CERT_STORE_ADD_NEW
Si un certificat correspondant ou un lien vers un certificat correspondant existe dans le magasin, l’opération échoue. GetLastError retourne le code CRYPT_E_EXISTS.
CERT_STORE_ADD_REPLACE_EXISTING
Si un certificat correspondant ou un lien vers un certificat correspondant existe dans le magasin, le certificat ou le lien existant est supprimé et un nouveau certificat est créé et ajouté au magasin. Si un certificat correspondant ou un lien vers un certificat correspondant n’existe pas, un nouveau certificat est créé et ajouté au magasin.
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Si un certificat correspondant existe 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 du certificat existant.
CERT_STORE_ADD_USE_EXISTING
S’il existe un certificat correspondant ou un lien vers un certificat correspondant, ce certificat ou lien existant est utilisé et les propriétés du nouveau certificat sont ajoutées. La fonction n’échoue pas, mais elle n’ajoute pas de nouveau contexte. Si ppCertContext n’a pas la valeur NULL, le contexte existant est dupliqué.

Si un certificat correspondant ou un lien vers un certificat correspondant n’existe pas, un nouveau certificat est ajouté.

[out, optional] ppCertContext

Pointeur vers un pointeur vers le contexte de certificat décodé. Il s’agit d’un paramètre facultatif qui peut être NULL, ce qui indique que l’application appelante ne nécessite pas de copie du certificat nouveau ou existant. Lorsqu’une copie est effectuée, son contexte doit être libéré à l’aide de CertFreeCertificateContext.

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
Ce code est retourné si CERT_STORE_ADD_NEW est défini et que le certificat existe déjà dans le magasin, ou si CERT_STORE_ADD_NEWER est défini et qu’il existe un certificat dans le magasin avec une date NotBefore supérieure ou égale à la date NotBefore sur le certificat à ajouter.
E_INVALIDARG
Une valeur de disposition non valide a été spécifiée dans le paramètre dwAddDisposition , ou un type d’encodage de certificat non valide a été spécifié. Actuellement, seul le type X509_ASN_ENCODING est pris en charge.
 

Si la fonction échoue, GetLastError retourne 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

CertAddCertificateContextToStore

CertFreeCertificateContext

Fonctions de certificat