Fonction CertSetCTLContextProperty (wincrypt.h)

La fonction CertSetCTLContextProperty définit une propriété étendue pour le contexte de liste d’approbation de certificats (CTL) spécifié.

Syntaxe

BOOL CertSetCTLContextProperty(
  [in] PCCTL_CONTEXT pCtlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Paramètres

[in] pCtlContext

Pointeur vers la structure CTL_CONTEXT .

[in] dwPropId

Identifie la propriété à définir. La valeur de dwPropId détermine le type et le contenu du paramètre pvData . Les identificateurs actuellement définis et leurs types pvData associés sont les suivants.

Valeur Signification
CERT_ARCHIVED_PROP_ID
Type de données de pvData : NULL

Indique que le certificat est ignoré pendant les énumérations. Un certificat avec ce jeu de propriétés est toujours trouvé avec des opérations de recherche explicites, telles que la recherche d’un certificat avec un hachage spécifique ou un numéro de série spécifique.

CERT_AUTO_ENROLL_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

Propriété définie après l’inscription d’un certificat à l’aide de l’inscription automatique. La structure CRYPT_DATA_BLOB pointée par pvData inclut un nom Unicode avec fin null du type de certificat pour lequel les certificats ont été automatiquement inscrits. Tous les appels suivants à l’inscription automatique pour le certificat vérifient cette propriété pour déterminer si le certificat a été inscrit.

CERT_CTL_USAGE_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

pvData pointe vers une structure CRYPT_DATA_BLOB contenant une structure CTL_USAGE encodée ASN.1 (Abstract Syntax Notation One). Cette structure a été encodée à l’aide de CryptEncodeObject avec X509_ENHANCED_KEY_USAGE valeur définie.

CERT_DESCRIPTION_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

Propriété définie et affichée par l’interface utilisateur du certificat. Cette propriété permet à l’utilisateur de décrire l’utilisation du certificat.

CERT_ENHKEY_USAGE_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

Structure CRYPT_DATA_BLOB contenant une structure de CERT_ENHKEY_USAGE encodée ASN.1. Cette structure a été encodée à l’aide de CryptEncodeObject avec X509_ENHANCED_KEY_USAGE valeur définie.

CERT_FRIENDLY_NAME_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

La structure CRYPT_DATA_BLOB spécifie le nom d’affichage du certificat.

CERT_HASH_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB

Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty.

CERT_KEY_CONTEXT_PROP_ID
Type de données de pvData : pointeur vers un CERT_KEY_CONTEXT

La structure CERT_KEY_CONTEXT contient à la fois la valeur HCRYPTPROV et la spécification de clé pour la clé privée. Pour plus d’informations sur le membre hCryptProv et les paramètres dwFlags , consultez CERT_KEY_PROV_HANDLE_PROP_ID ci-dessous. Notez que d’autres CERT_KEY_CONTEXT membres de la structure peuvent être ajoutés pour cette propriété. Si c’est le cas, la valeur du membre cbSize est ajustée en conséquence. Le membre cbSize doit être défini sur la taille de la structure CERT_KEY_CONTEXT

CERT_KEY_IDENTIFIER_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

Cette propriété est généralement définie implicitement par un appel à CertGetCertificateContextProperty.

CERT_KEY_PROV_HANDLE_PROP_ID
Type de données de pvData : pointeur vers un HCRYPTPROV

Un handle HCRYPTPROV pour la clé privée du certificat est passé. Le membre hCryptProv de la structure CERT_KEY_CONTEXT est mis à jour s’il existe. S’il n’existe pas, il est créé avec dwKeySpec initialisé par CERT_KEY_PROV_INFO_PROP_ID. Si CERT_STORE_NO_CRYPT_RELEASE_FLAG n’est pas défini, la valeur hCryptProv est implicitement libérée lorsque la propriété a la valeur NULL ou lors de la libération finale de la structure CERT_CONTEXT .

CERT_KEY_PROV_INFO_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_KEY_PROV_INFO

La structure CRYPT_KEY_PROV_INFO spécifie la clé privée du certificat.

CERT_KEY_SPEC_PROP_ID
Type de données de pvData : pointeur vers un DWORD

La valeur DWORD spécifie la clé privée. Le membre dwKeySpec de la structure CERT_KEY_CONTEXT est mis à jour s’il existe. Si ce n’est pas le cas, il est créé avec hCryptProv défini sur zéro.

CERT_MD5_HASH_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB

Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

La structure CRYPT_DATA_BLOB contient une structure de CERT_ALT_NAME_INFO encodée ASN.1 encodée à l’aide de CryptEncodeObject avec la valeur X509_ALTERNATE_NAME définie. CERT_NEXT_UPDATE_LOCATION_PROP_ID est actuellement utilisé uniquement avec les listes de contrôle d’accès partagé.

CERT_PVK_FILE_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_DATA_BLOB

La structure CRYPT_DATA_BLOB spécifie le nom d’un fichier contenant la clé privée associée à la clé publique du certificat. À l’intérieur de la structure de CRYPT_DATA_BLOB , le membre pbData est un pointeur vers une chaîne Unicode à caractères larges terminée par null, et le membre cbData indique la longueur de la chaîne.

CERT_SHA1_HASH_PROP_ID
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB

Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty.

CERT_SIGNATURE_HASH_PROP_ID
CRYPT_HASH_BLOB
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB

S’il n’existe pas de hachage de signature, il est calculé avec CryptHashToBeSigned. pvData pointe vers un hachage existant ou calculé. En règle générale, la longueur du hachage est de 20 octets pour SHA et de 16 pour MD5.

 

En règle générale, seule la propriété CERT_NEXT_UPDATE_LOCATION_PROP_ID est définie.

Des types dwPropId supplémentaires peuvent être définis par l’utilisateur à l’aide de valeurs DWORD de CERT_FIRST_USER_PROP_ID à CERT_LAST_USER_PROP_ID. Pour tous les types dwPropId définis par l’utilisateur, pvData pointe vers une structure CRYPT_DATA_BLOB encodée.

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG peut être défini pour les propriétés CERT_KEY_PROV_HANDLE_PROP_ID ou CERT_KEY_CONTEXT_PROP_ID dwPropId .

Si la valeur CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG est définie, toutes les erreurs d’écriture de fournisseur sont ignorées et les propriétés du contexte mis en cache sont toujours définies.

Si CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG est défini, aucun jeu de propriétés n’est conservé.

[in] pvData

Pointeur vers un type de données déterminé par la valeur passée dans dwPropId.

Note Pour tout dwPropId, la définition de pvData sur NULL supprime la propriété .
 

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. Un code d’erreur possible est le suivant.

Code de retour Description
E_INVALIDARG
Identificateur de propriété non valide. Pour plus d’informations, consultez CertSetCertificateContextProperty.

Remarques

Si une propriété existe déjà, son ancienne valeur est remplacée.

Exemples

Consultez l’exemple de programme C : obtention et définition des propriétés de certificat.

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

CertGetCTLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

Fonctions de propriété étendues