Fonction CertCreateContext (wincrypt.h)

La fonction CertCreateContext crée le contexte spécifié à partir des octets encodés. Le contexte créé n’inclut aucune propriété étendue.

Syntaxe

const void * CertCreateContext(
  [in]           DWORD                     dwContextType,
  [in]           DWORD                     dwEncodingType,
  [in]           const BYTE                *pbEncoded,
  [in]           DWORD                     cbEncoded,
  [in]           DWORD                     dwFlags,
  [in, optional] PCERT_CREATE_CONTEXT_PARA pCreatePara
);

Paramètres

[in] dwContextType

Spécifie les contextes qui peuvent être créés. Par exemple, pour créer un contexte de certificat, définissez dwContextType sur CERT_STORE_CERTIFICATE_CONTEXT.

Les indicateurs de type de contexte actuellement définis sont présentés dans le tableau suivant.

Valeur Signification
CERT_STORE_CERTIFICATE_CONTEXT
Contexte de certificat.
CERT_STORE_CRL_CONTEXT
Contexte de liste de révocation de certificats.
CERT_STORE_CTL_CONTEXT
Contexte de la CTL.

[in] dwEncodingType

Spécifie le type d’encodage utilisé. Actuellement, seuls les X509_ASN_ENCODING et les PKCS_7_ASN_ENCODING sont utilisés ; toutefois, des types d’encodage supplémentaires peuvent être ajoutés à l’avenir. Pour l’un ou l’autre type d’encodage actuel, utilisez :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING.

[in] pbEncoded

Pointeur vers une mémoire tampon qui contient le contenu de contexte encodé existant à copier.

[in] cbEncoded

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

[in] dwFlags

Les valeurs d’indicateur suivantes sont définies et peuvent être combinées à l’aide d’une opération OR au niveau du bit.

Valeur Signification
CERT_CREATE_CONTEXT_NOCOPY_FLAG
Le contexte créé pointe directement vers le contenu pointé vers pbEncoded au lieu d’une copie allouée.
CERT_CREATE_CONTEXT_SORTED_FLAG
La fonction crée un contexte avec des entrées triées. Actuellement, cet indicateur s’applique uniquement à un contexte CTL.

Pour les CTL, le membre cCTLEntry de la structure CTL_INFO retournée est toujours égal à zéro. CertFindSubjectInSortedCTL et CertEnumSubjectInSortedCTL doivent être appelés pour rechercher ou énumérer les entrées CTL.

CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG
Par défaut, lorsqu’un contexte CTL est créé, un handle HCRYTPMSG dans son message SignedData est créé. Cet indicateur peut être défini pour améliorer les performances en ne créant pas ce handle. Cet indicateur ne peut être utilisé que lorsque dwContextType est CERT_STORE_CTL_CONTEXT.
CERT_CREATE_CONTEXT_NO_ENTRY_FLAG
Par défaut, lorsqu’un contexte CTL est créé, ses entrées sont décodées. Lorsque cet indicateur est défini, les entrées ne sont pas décodées et les performances sont améliorées. Cet indicateur ne peut être utilisé que lorsque dwContextType est CERT_STORE_CTL_CONTEXT.

[in, optional] pCreatePara

Pointeur vers une structure CERT_CREATE_CONTEXT_PARA .

Si pCreatePara et son membre pfnFree sont tous deux non NULL, le membre pfnFree est utilisé pour libérer la mémoire spécifiée par le membre pvFree . Si le membre pvFree a la valeur NULL, le membre pfnFree est utilisé pour libérer le pointeur pbEncoded .

Si pCreatePara ou son membre pfnFree a la valeur NULL, aucune tentative n’est effectuée pour libérer pbEncoded.

Valeur retournée

Si la fonction réussit, la valeur de retour est un pointeur vers le contexte nouvellement créé. Le membre pvFree de pCreatePara doit être appelé pour libérer le contexte créé.

Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Si GetLastError retourne ERROR_CANCELLED, cela signifie que la fonction de rappel PFN_CERT_CREATE_CONTEXT_SORT_FUNC a retourné FALSE pour arrêter le tri.

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

CTL_INFO

CertEnumSubjectInSortedCTL

CertFindSubjectInSortedCTL

Fonctions de maintenance du magasin de certificats et de certificats