Partager via


CertSetCertificateContextProperty, fonction (wincrypt.h)

La fonction CertSetCertificateContextProperty définit une propriété étendue pour un contexte de certificat spécifié.

Syntaxe

BOOL CertSetCertificateContextProperty(
  [in] PCCERT_CONTEXT pCertContext,
  [in] DWORD          dwPropId,
  [in] DWORD          dwFlags,
  [in] const void     *pvData
);

Paramètres

[in] pCertContext

Pointeur vers une structure CERT_CONTEXT.

[in] dwPropId

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 de pvData associés sont les suivants.

RemarqueCRYPT_HASH_BLOB et CRYPT_DATA_BLOB sont décrits dans la rubrique CRYPT_INTEGER_BLOB.
 

CERT_ACCESS_STATE_PROP_ID

Type de données pvData: pointeur vers une valeur DWORD.

Retourne une valeur DWORD qui indique si les opérations d’écriture dans le certificat sont conservées. La valeur de 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_AIA_URL_RETRIEVED_PROP_ID

Cet identificateur est réservé.

CERT_ARCHIVED_KEY_HASH_PROP_ID

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

Cette propriété enregistre une clé chiffrée de hachage pour le contexte de certificat.

CERT_ARCHIVED_PROP_ID

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

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 de hachage spécifique ou un numéro de série spécifique. Cette propriété peut être définie sur leBLOB vide, .

CERT_AUTHORITY_INFO_ACCESS_PROP_ID

Cet identificateur est réservé.

CERT_AUTO_ENROLL_PROP_ID

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

Propriété définie une fois qu’un certificat a été inscrit à l’aide de l’inscription automatique. La structure CRYPT_DATA_BLOB pointée par pvData inclut un nom Unicode terminé par null du type de certificat pour lequel le certificat a été inscrit automatiquement. Tous les appels suivants à l’inscription automatique pour le certificat recherchent cette propriété pour déterminer si le certificat a été inscrit.

CERT_AUTO_ENROLL_RETRY_PROP_ID

Cet identificateur est réservé.

CERT_BACKED_UP_PROP_ID

Cet identificateur est réservé.

CERT_CA_DISABLE_CRL_PROP_ID

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

Désactive récupération de liste de révocation de certificats (CRL) pour les certificats utilisés par l’autorité de certification (CA). Si le certificat d’autorité de certification contient cette propriété, il doit également inclure la propriété CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID.

CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID

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

Contient la liste des URL de protocole d’état de certificat en ligne (OCSP) à utiliser pour les certificats émis par le certificat d’autorité de certification. Le contenu du tableau est la notation de syntaxe abstraite One (ASN.1) encodés en octets d’une structure X509_AUTHORITY_INFO_ACCESSpszAccessMethod est défini sur szOID_PKIX_OCSP.

CERT_CROSS_CERT_DIST_POINTS_PROP_ID

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

Définit l’emplacement des certificats croisés. Cette valeur s’applique uniquement aux certificats et non à listes de révocation de certificats (LISTES de révocation de certificats) ou listes de confiance de certificats (CTL). La structure CRYPT_DATA_BLOB contient une structure de syntaxe abstraite (ASN.1) codée en CROSS_CERT_DIST_POINTS_INFO qui est encodée à l’aide de la fonction CryptEncodeObject avec une valeur X509_CROSS_CERT_DIST_POINTS pour le paramètre lpszStuctType.

CERT_CTL_USAGE_PROP_ID

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

La structure CRYPT_DATA_BLOB contient une structure CTL_USAGE encodée ASN.1. Cette structure est encodée à l’aide de la fonction CryptEncodeObject avec le jeu de valeurs X509_ENHANCED_KEY_USAGE.

CERT_DATE_STAMP_PROP_ID

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

Cette propriété définit l’heure à laquelle le certificat a été ajouté au magasin.

CERT_DESCRIPTION_PROP_ID

Type de données de pvData: pointeur vers une structure 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_EFS_PROP_ID

Cet identificateur est réservé.

CERT_ENHKEY_USAGE_PROP_ID

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

Propriété qui indique que le paramètre pvData pointe vers une structure CRYPT_DATA_BLOB qui contient une structure CERT_ENHKEY_USAGE encodée ASN.1. Cette structure est encodée à l’aide de la fonction CryptEncodeObject avec le jeu de valeurs X509_ENHANCED_KEY_USAGE.

CERT_ENROLLMENT_PROP_ID

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

Informations d’inscription de la requête en attente qui contient RequestID, CADNSName, CAName et DisplayName. Le format de données est défini comme suit.

Octets Contenu
4 premiers octets ID de demande en attente
4 octets suivants Taille CADNSName, en caractères, y compris le caractère null de fin, suivi de la chaîne CADNSName avec caractère null de fin
4 octets suivants Taille caName, en caractères, y compris le caractère null de fin, suivi de la chaîne CAName avec fin de caractère null
4 octets suivants Taille DisplayName, en caractères, y compris le caractère null de fin, suivi de la chaîne DisplayName avec caractère null de fin
 

CERT_EXTENDED_ERROR_INFO_PROP_ID

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

Cette propriété définit une chaîne qui contient des informations d’erreur étendues pour le contexte de certificat.

CERT_FORTEZZA_DATA_PROP_ID

Cet identificateur est réservé.

CERT_FRIENDLY_NAME_PROP_ID

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

La structure CRYPT_DATA_BLOB contient le nom complet du certificat.

CERT_HASH_PROP_ID

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

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

CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID

Type de données pvData: pointeur vers un type de données HCRYPTPROV_OR_NCRYPT_KEY_HANDLE.

Cette propriété appelle NCryptIsKeyHandle pour déterminer s’il s’agit d’un NCRYPT_KEY_HANDLE. Pour un NCRYPT_KEY_HANDLE, définit CERT_NCRYPT_KEY_HANDLE_PROP_ID; sinon, il définit CERT_KEY_PROV_HANDLE_PROP_ID.

CERT_HCRYPTPROV_TRANSFER_PROP_ID

Définit le handle de la clé CAPI associée au certificat.

CERT_IE30_RESERVED_PROP_ID

Cet identificateur est réservé.

CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID

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

Cette propriété définit le de hachageMD5 MD5 du de clé publique associée à la clé privée utilisée pour signer ce certificat.

CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID

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

La structure CRYPT_DATA_BLOB contient le hachage MD5 du nom de l’émetteur et le numéro de série de ce certificat.

CERT_KEY_CONTEXT_PROP_ID

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

La structure spécifie la clé privée du certificat. Il contient à la fois la 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, plus loin dans cette rubrique.

Remarque Autres membres de structure CERT_KEY_CONTEXT peuvent être ajoutés pour cette propriété. Dans ce cas, la cbSize valeur de membre sera 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 une structure CRYPT_DATA_BLOB.

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

CERT_KEY_PROV_HANDLE_PROP_ID

Type de données pvData: valeur HCRYPTPROV .

Le handle HCRYPTPROV pour la clé privée du certificat est défini. 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 et 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é est définie sur NULL ou sur la libération finale de la structure CERT_CONTEXT.

CERT_KEY_PROV_INFO_PROP_ID

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

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

CERT_KEY_SPEC_PROP_ID

Type de données pvData: pointeur vers une valeur DWORD.

Valeur DWORD qui spécifie la clé privée. Le dwKeySpec membre 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 pvData: pointeur vers une structure de CRYPT_HASH_BLOB.

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

CERT_NCRYPT_KEY_HANDLE_PROP_ID

Type de données pvData: pointeur vers un type de données NCRYPT_KEY_HANDLE.

Cette propriété définit la NCRYPT_KEY_HANDLE de la clé privée du certificat et définit la dwKeySpec sur CERT_NCRYPT_KEY_SPEC.

CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID

Définit le handle de la clé CNG associée au certificat.

CERT_NEW_KEY_PROP_ID

Cet identificateur est réservé.

CERT_NEXT_UPDATE_LOCATION_PROP_ID

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

La structure CRYPT_DATA_BLOB contient une structure CERT_ALT_NAME_INFO encodée ASN.1 qui est encodée à l’aide de la fonction CryptEncodeObject avec le jeu de valeurs X509_ALTERNATE_NAME.

CERT_NEXT_UPDATE_LOCATION_PROP_ID est actuellement utilisé uniquement avec les listes CTL.

CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID

Cet identificateur est réservé.

CERT_OCSP_CACHE_PREFIX_PROP_ID

Cet identificateur est réservé.

CERT_OCSP_RESPONSE_PROP_ID

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

Cette propriété définit la réponse de protocole d’état de certificat en ligne (OCSP) codée à partir d’un CERT_SERVER_OCSP_RESPONSE_CONTEXT pour ce certificat.

CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID

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

Cette propriété est implicitement définie en appelant la fonction CertGetCertificateContextProperty.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cet identificateur n’est pas pris en charge.

CERT_PUBKEY_ALG_PARA_PROP_ID

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

Cette propriété est utilisée avec des clés publiques qui prennent en charge l’héritage des paramètres d’algorithme. Le blob de données contient les paramètres d’algorithme PublicKey codés asN.1. Pour DSS, il s’agit de paramètres encodés à l’aide de la fonction CryptEncodeObject. Cela n’est utilisé que si CMS_PKCS7 est défini.

CERT_PUBKEY_HASH_RESERVED_PROP_ID

Cet identificateur est réservé.

CERT_PVK_FILE_PROP_ID

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

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

CERT_RENEWAL_PROP_ID

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

Cette propriété spécifie le hachage du certificat renouvelé.

CERT_REQUEST_ORIGINATOR_PROP_ID

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

La structure CRYPT_DATA_BLOB contient une chaîne Unicode terminée par null qui contient le nom d’ordinateur DNS pour l’origine de la demande de contexte de certificat.

CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID

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

Retourne un pointeur vers une structure de CERT_POLICIES_INFO encodée qui contient les stratégies d’application du certificat racine pour le contexte. Cette propriété peut être décodée à l’aide de la fonction CryptDecodeObject avec le paramètre lpszStructType défini sur X509_CERT_POLICIES et le paramètre dwCertEncodingType défini sur une combinaison de X509_ASN_ENCODING ORPKCS_7_ASN_ENCODING.

CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID

Cet identificateur est réservé.

CERT_SIGN_HASH_CNG_ALG_PROP_ID

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

Cette propriété est implicitement définie en appelant la fonction CertGetCertificateContextProperty.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cet identificateur n’est pas pris en charge.

CERT_SHA1_HASH_PROP_ID

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

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

CERT_SIGNATURE_HASH_PROP_ID

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

Si aucun hachage de signature n’existe, il est calculé à l’aide de la fonction 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 16 pour MD5.

CERT_SMART_CARD_DATA_PROP_ID

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

Cette propriété définit la propriété de données de carte à puce d’un contexte de certificat de carte à puce.

CERT_SMART_CARD_ROOT_INFO_PROP_ID

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

Cette propriété définit la propriété d’informations d’un contexte de certificat racine de carte à puce.

CERT_SOURCE_LOCATION_PROP_ID

Cet identificateur est réservé.

CERT_SOURCE_URL_PROP_ID

Cet identificateur est réservé.

CERT_SUBJECT_DISABLE_CRL_PROP_ID

Cet identificateur est réservé.

CERT_SUBJECT_INFO_ACCESS_PROP_ID

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

Cette propriété définit l’extension d’accès aux informations de l’objet du contexte de certificat en tant que structure de CERT_SUBJECT_INFO_ACCESS encodée.

CERT_SUBJECT_NAME_MD5_HASH_PROP_ID

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

Retourne un hachage MD5 du nom d’objet encodé du contexte de certificat.

CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID

Cet identificateur est réservé.

CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_ID

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

Cette propriété est implicitement définie en appelant la fonction CertGetCertificateContextProperty.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cet identificateur n’est pas pris en charge.

CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID

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

Cette propriété définit le hachage MD5 de la clé publique de ce certificat.

pvData est un pointeur vers une structure CRYPT_DATA_BLOB.

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

[in] dwFlags

CERT_STORE_NO_CRYPT_RELEASE_FLAG pouvez ê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, tout jeu de propriétés de contexte n’est pas conservé.

[in] pvData

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

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

Valeur de retour

Si la fonction réussit, la fonction retourne TRUE.

Si la fonction échoue, la fonction retourne FAUX. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Un code d’erreur possible est le suivant.

Retourner le code 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 qui n’est pas 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.

Votre code peut utiliser une macro pour évaluer la classe de hachage pour un contexte de certificat. L’en-tête Wincrypt.h définit les macros suivantes à cet effet. Ces macros sont utilisées en interne par la fonction CertSetCertificateContextProperty.

IS_CERT_HASH_PROP_ID(X)IS_PUBKEY_HASH_PROP_ID(X)IS_CHAIN_HASH_PROP_ID(X) Chaque macro prend la valeur dwPropId (X) comme entrée et prend une valeur booléenne. Le tableau suivant montre les valeurs dwPropId qui sont évaluées à TRUE pour chaque macro.

Macro Prend la valeur TRUE si dwPropId est
IS_CERT_HASH_PROP_ID(dwPropId)
CERT_SHA1_HASH_PROP_ID,
CERT_MD5_HASH_PROP_ID, ou
CERT_SIGNATURE_HASH_PROP_ID
IS_PUBKEY_HASH_PROP_ID(dwPropId)
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID ou
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
IS_CHAIN_HASH_PROP_ID(dwPropId)
CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID,
CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID,
CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID, ou
CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
 

La macro IS_STRONG_SIGN_PROP_ID(x) est évaluée à TRUE si les propriétés CERT_SIGN_HASH_CNG_ALG_PROP_ID, CERT_SUBJECT_PUB_KEY_BIT_LENGTH_PROP_IDou CERT_PUB_KEY_CNG_ALG_BIT_LENGTH_PROP_ID sont définies dans le paramètre dwPropId.

Exemples

Pour obtenir un exemple qui utilise cette fonction, consultez Exemple de programme C : obtention et définition des propriétés de certificat.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’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

CROSS_CERT_DIST_POINTS_INFO

CRYPT_DATA_BLOB

CRYPT_HASH_BLOB

CRYPT_KEY_PROV_INFO

CTL_USAGE

CertGetCertificateContextProperty

CertSetCRLContextProperty

CryptEncodeObject

CryptHashToBeSigned

fonctions de propriété étendue