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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB
Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty. |
|
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 |
|
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. |
|
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 . |
|
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. |
|
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. |
|
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB
Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty. |
|
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é. |
|
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. |
|
Type de données de pvData : pointeur vers un CRYPT_HASH_BLOB
Cette propriété est implicitement définie par un appel à CertGetCertificateContextProperty. |
|
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.
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 |
---|---|
|
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 |