Fonction CertGetCRLContextProperty (wincrypt.h)

La fonction CertGetCRLContextProperty obtient une propriété étendue pour le contexte de liste de révocation de certificats (CRL) spécifié.

Syntaxe

BOOL CertGetCRLContextProperty(
  [in]      PCCRL_CONTEXT pCrlContext,
  [in]      DWORD         dwPropId,
  [out]     void          *pvData,
  [in, out] DWORD         *pcbData
);

Paramètres

[in] pCrlContext

Pointeur vers la structure CRL_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 :

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 liste de révocation de certificats.

CERT_ISSUER_CHAIN_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID
Type de données pour pvData : pointeur vers une chaîne Unicode terminée par null.

Renvoie une chaîne contenant un ensemble d’algorithmes de clé publique L"<PUBKEY>/<BITLENGTH> » et de paires de longueur de bits. Le point-virgule, L » ; », est utilisé comme délimiteur.

La <valeur PUBKEY> identifie l’algorithme de clé publique CNG. Les algorithmes suivants sont pris en charge :

  • L"RSA » (BCRYPT_RSA_ALGORITHM)
  • L"DSA » (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA » (SSL_ECDSA_ALGORITHM)
Une pairePUBKEY<BITLENGTH> est retournée pour chaque certificat dans la chaîne d’émetteur de la liste de révocation de certificats, à l’exclusion de la feuille.></ Cette propriété est définie uniquement lorsqu’une réponse OCSP avec une chaîne de signataires indépendante est convertie en CRL.
Note Cette propriété ne peut pas être récupérée pour un certificat de signataire OCSP délégué. Un certificat de signataire délégué est signé avec la même clé que celle utilisée pour signer le certificat d’objet et y est vérifié.
 
Par exemple :

: L"RSA/2048 ; RSA/4096 »

CERT_ISSUER_CHAIN_SIGN_HASH_CNG_ALG_PROP_ID
Type de données pour pvData : pointeur vers une chaîne Unicode terminée par null.

Retourne une chaîne qui contient un ensemble de paires d’algorithmes L"<SIGNATURE>/<HASH> ». Le point-virgule, L » ; », est utilisé comme délimiteur entre les paires.

Cette propriété est définie uniquement lorsqu’une réponse OCSP est convertie en liste de révocation de certificats. Pour un certificat de signataire OCSP délégué, seule la paire d’algorithmes pour le certificat de signataire est retournée. Pour une chaîne de certificats de signataire OCSP indépendante, une paire d’algorithmes est retournée pour chaque certificat de la chaîne, à l’exclusion de la racine.

La <valeur SIGNATURE> identifie l’algorithme de clé publique CNG. Les algorithmes suivants sont pris en charge :

  • L"RSA » (BCRYPT_RSA_ALGORITHM)
  • L"DSA » (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA » (SSL_ECDSA_ALGORITHM)
La <valeur HASH> identifie l’algorithme de hachage CNG. Les algorithmes suivants sont pris en charge :
  • L"MD5 » (BCRYPT_MD5_ALGORITHM)
  • L"SHA1 » (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256 » (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384 » (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512 » (BCRYPT_SHA512_ALGORITHM)
Un exemple est fourni ci-après :
  • L"RSA/SHA256 ; RSA/SHA256 »
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Type de données pour pvData : pointeur vers une valeur DWORD .

Retourne la longueur, en bits, de la clé publique dans le certificat d’émetteur de la liste de révocation de certificats. Cette propriété s’applique également à une réponse OCSP qui a été convertie en CRL.

Windows 8 et Windows Server 2012 : la prise en charge de cette propriété commence.

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 un 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_SIGN_HASH_CNG_ALG_PROP_ID
Type de données de pvData : pointeur vers une chaîne Unicode terminée par null.

Renvoie la chaîne L"<SIGNATURE>/<HASH> » qui représente la signature du certificat. La <valeur SIGNATURE> identifie l’algorithme de clé publique CNG. Les algorithmes suivants sont pris en charge :

  • L"RSA » (BCRYPT_RSA_ALGORITHM)
  • L"DSA » (BCRYPT_DSA_ALGORITHM)
  • L"ECDSA » (SSL_ECDSA_ALGORITHM)
La <valeur HASH> identifie l’algorithme de hachage CNG. Les algorithmes suivants sont pris en charge :
  • L"MD5 » (BCRYPT_MD5_ALGORITHM)
  • L"SHA1 » (BCRYPT_SHA1_ALGORITHM)
  • L"SHA256 » (BCRYPT_SHA256_ALGORITHM)
  • L"SHA384 » (BCRYPT_SHA384_ALGORITHM)
  • L"SHA512 » (BCRYPT_SHA512_ALGORITHM)
Voici quelques exemples courants :
  • L"RSA/SHA1 »
  • L"RSA/SHA256 »
  • L"ECDSA/SHA256 »
Cette propriété s’applique également à une réponse OCSP qui a été convertie en CRL.

Windows 8 et Windows Server 2012 : la prise en charge de cette propriété commence.

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 de nombreux identificateurs de propriétés, pvData pointe vers un tableau d’octets et non vers un CRYPT_DATA_BLOB comme indiqué par le paramètre pvData dans CertSetCRLContextProperty.

Pour plus d’informations sur chaque identificateur de propriété, consultez la documentation sur le paramètre dwPropId dans CertSetCertificateContextProperty.

[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.

Notez que 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 liste de révocation de certificats 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

CertEnumCRLContextProperties

CertGetCertificateContextProperty

CryptHashCertificate

Fonctions de propriété étendues