Fonction CertGetCTLContextProperty (wincrypt.h)

La fonction CertGetCTLContextProperty récupère une propriété étendue d’un contexte de liste d’approbation de certificats (CTL).

Syntaxe

BOOL CertGetCTLContextProperty(
  [in]      PCCTL_CONTEXT pCtlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Paramètres

[in] pCtlContext

Pointeur vers la structure CTL_CONTEXT .

[in] dwPropId

Identifie la propriété à récupérer. Les identificateurs actuellement définis et le type de données à retourner dans pvData sont répertoriés dans le tableau suivant.

Valeur Signification
CERT_ACCESS_STATE_PROP_ID
Type de données pour pvData : pointeur vers un DWORD

Retourne une valeur DWORD indiquant si les opérations d’écriture dans le certificat sont conservées. La valeur DWORD n’est pas définie si le certificat se trouve dans un magasin de mémoire ou dans un magasin basé sur le Registre ouvert en lecture seule.

CERT_ARCHIVED_PROP_ID
Type de données pour pvData : NULL

Indique que le certificat est ignoré pendant les énumérations. Un certificat avec ce jeu de propriétés est trouvé avec des opérations de recherche explicites, telles que celles utilisées pour rechercher un certificat avec un hachage ou un numéro de série spécifique. Aucune donnée dans pvData n’est associée à cette propriété.

CERT_AUTO_ENROLL_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne une chaîne Unicode terminée par null nommant le type de certificat pour lequel le certificat a été inscrit automatiquement.

CERT_CTL_USAGE_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne un tableau d’octets contenant une structure CTL_USAGE encodée ASN.1 (Abstract Syntax Notation One).

CERT_DESCRIPTION_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne la propriété 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 pour pvData : pointeur vers un tableau BYTE

Retourne un tableau d’octets contenant une structure de CERT_ENHKEY_USAGE encodée ASN.1.

CERT_FRIENDLY_NAME_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne une chaîne de caractères Unicode terminée par null qui contient le nom d’affichage de la CTL.

CERT_HASH_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne le hachage SHA1. Si le hachage n’existe pas, il est calculé à l’aide de CryptHashCertificate.

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

Retourne une structure CERT_KEY_CONTEXT .

CERT_KEY_IDENTIFIER_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

S’il n’existe pas, recherche l’extension szOID_SUBJECT_KEY_IDENTIFIER. En cas d’échec, un hachage SHA1 est effectué sur le membre SubjectPublicKeyInfo du certificat pour produire les valeurs d’identificateur.

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

Retourne le handle du fournisseur obtenu à partir du CERT_KEY_CONTEXT_PROP_ID.

CERT_KEY_PROV_INFO_PROP_ID
Type de données pour pvData : pointeur vers une structure CRYPT_KEY_PROV_INFO

Retourne un pointeur vers un CRYPT_KEY_PROV_INFO.

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

Retourne une valeur DWORD spécifiant la clé privée obtenue à partir de CERT_KEY_CONTEXT_PROP_ID propriété si elle existe. Sinon, si CERT_KEY_PROV_INFO_PROP_ID existe, il s’agit de la source du dwKeySpec.

CERT_MD5_HASH_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne le hachage MD5. Si le hachage n’existe pas, il est calculé à l’aide de CryptHashCertificate.

CERT_NEXT_UPDATE_LOCATION_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne la structure de CERT_ALT_NAME_INFO encodée ASN.1.

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 pour pvData : pointeur vers un tableau BYTE

Retourne une chaîne de caractères larges Unicode terminée par un caractère null qui spécifie le nom de fichier contenant la clé privée associée à la clé publique du certificat.

CERT_SHA1_HASH_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne le hachage SHA1. Si le hachage n’existe pas, il est calculé à l’aide de CryptHashCertificate.

CERT_SIGNATURE_HASH_PROP_ID
Type de données pour pvData : pointeur vers un tableau BYTE

Retourne le hachage de signature. Si le hachage n’existe pas, il est calculé avec CryptHashToBeSigned. La longueur du hachage est de 20 octets pour SHA et de 16 pour MD5.

 

Pour tous les autres identificateurs de propriété, pvData pointe vers un tableau d’octets et non vers un CRYPT_DATA_BLOB comme indiqué par le paramètre pvData dans CertSetCertificateContextProperty.

Pour plus d’informations sur chaque identificateur de propriété, consultez la documentation sur le paramètre dwPropId dans CertSetCertificateContextProperty. CERT_SHA1_HASH_PROP_ID et CERT_NEXT_UPDATE_LOCATION_PROP_ID sont les propriétés prédéfinies les plus intéressantes.

[out] pvData

Pointeur vers une mémoire tampon pour recevoir les données déterminées par dwPropId. Les structures pointées par les membres d’une structure retournée sont également retournées après la structure de base. Par conséquent, la taille contenue dans pcbData dépasse souvent la taille de la structure de base.

Ce paramètre peut être NULL pour définir la taille des informations à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out] pcbData

Pointeur vers une valeur DWORD spécifiant la taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre pvData . Lorsque la fonction retourne, la valeur DWORD contient le nombre d’octets à stocker dans la mémoire tampon.

Note Lors du traitement des données retournées dans la mémoire tampon, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. (En entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles s’intègrent dans la mémoire tampon.) En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

Valeur retournée

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

Si la fonction échoue, la valeur de retour est FALSE.

Les erreurs de la fonction appelée , CryptHashCertificate, peuvent être propagées à cette fonction. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Certains codes d’erreur possibles suivent.

Code de retour Description
CRYPT_E_NOT_FOUND
La CTL n’a pas la propriété spécifiée.
ERROR_MORE_DATA
Si la mémoire tampon spécifiée par le paramètre pvData n’est pas assez grande pour contenir les données retournées, la fonction définit le code ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par pcbData.

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

CertEnumCTLContextProperties

CertGetCertificateContextProperty

CertSetCTLContextProperty

CryptHashCertificate

Fonctions de propriété étendues