Fonction CertSetCRLContextProperty (wincrypt.h)

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

Syntaxe

BOOL CertSetCRLContextProperty(
  [in] PCCRL_CONTEXT pCrlContext,
  [in] DWORD         dwPropId,
  [in] DWORD         dwFlags,
  [in] const void    *pvData
);

Paramètres

[in] pCrlContext

Pointeur vers la structure CRL_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 le type de données à retourner dans pvData sont répertoriés dans le tableau suivant.

En règle générale, seules les propriétés suivantes sont définies :

  • CERT_HASH_PROP_ID
  • CERT_SHA1_HASH_PROP_ID
  • CERT_MD5_HASH_PROP_ID
  • CERT_SIGNATURE_HASH_PROP_ID
Valeur Signification
CERT_ACCESS_STATE_PROP_ID
Type de données pour pvData : pointeur vers un DWORD

Définit 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 spécifique ou un numéro de série. 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

Définit une chaîne Unicode terminée par un caractère 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

Définit 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

Définit 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 :

Définit 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

Définit une chaîne de caractères Unicode terminée par un caractère Null qui contient le nom complet 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 structure CRYPT_DATA_BLOB .

Définit une chaîne contenant un ensemble d’algorithmes de clé publique L"<PUBKEY>/<BITLENGTH> » et de paires de longueurs 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 définie pour chaque certificat dans la chaîne d’émetteur de liste de révocation de certificats, à l’exception de la feuille.></ Cette propriété peut être définie lorsqu’une réponse OCSP avec une chaîne de signataires indépendante est convertie en liste de révocation de certificats.
Note Cette propriété ne doit pas être définie 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 structure CRYPT_DATA_BLOB .

Définit 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’exception 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)
Par exemple :
  • L"RSA/SHA256 ; RSA/SHA256 »
Cette propriété est explicitement définie par les fonctions de vérification de révocation.
CERT_ISSUER_PUB_KEY_BIT_LENGTH_PROP_ID
Type de données pour pvData : pointeur vers une structure CRYPT_DATA_BLOB .

Définit la longueur, en bits, de la clé publique dans le certificat d’émetteur de liste de révocation de certificats. Cette propriété s’applique également à un OCSP qui a été converti en liste de révocation de certificats.

Cette propriété est explicitement définie par les fonctions de vérification de révocation.

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

Définit une structure CERT_KEY_CONTEXT .

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

Définit 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

Définit un pointeur vers une structure CRYPT_KEY_PROV_INFO .

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

Définit 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

Définit le hachage MD5. Vous pouvez calculer le hachage à l’aide de la fonction CryptHashCertificate .

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

Définit la structure de CERT_ALT_NAME_INFO encodée ASN.1 sur une CTL.

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

Définit une chaîne de caractères large unicode terminée par un caractère null spécifiant le nom du fichier qui contient 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

Définit le hachage SHA1. Vous pouvez calculer le hachage à l’aide de CryptHashCertificate.

CERT_SIGN_HASH_CNG_ALG_PROP_ID
Type de données de pvData : pointeur vers une structure CRYPT_DATA_BLOB .

Définit la chaîne L"<SIGNATURE>/<HASH> » qui représente la signature de 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.

Cette propriété est explicitement définie par les fonctions de vérification de révocation.

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

Définit 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.

 

L’utilisateur peut définir des types dwPropId supplémentaires à 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 un CRYPT_DATA_BLOB encodé.

Pour tous les autres identificateurs de propriété, pvData pointe vers une structure de 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 le 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
La propriété n’est pas valide. L’identificateur spécifié était supérieur à 0x0000FFFF ou, pour la propriété CERT_KEY_CONTEXT_PROP_ID, un membre cbSize non valide a été spécifié dans la structure CERT_KEY_CONTEXT .

Remarques

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

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez 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

CERT_ALT_NAME_INFO

CERT_CONTEXT

CERT_ENHKEY_USAGE

CERT_KEY_CONTEXT

CRL_CONTEXT

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCRLContextProperty

CertSetCertificateContextProperty

CryptEncodeObject

CryptHashToBeSigned

Fonctions de propriété étendues