structure CRYPT_KEY_PROV_INFO (wincrypt.h)

La structure CRYPT_KEY_PROV_INFO contient des informations sur un conteneur de clé au sein d’un fournisseur de services de chiffrement (CSP).

Syntaxe

typedef struct _CRYPT_KEY_PROV_INFO {
  LPWSTR                pwszContainerName;
  LPWSTR                pwszProvName;
  DWORD                 dwProvType;
  DWORD                 dwFlags;
  DWORD                 cProvParam;
  PCRYPT_KEY_PROV_PARAM rgProvParam;
  DWORD                 dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;

Membres

pwszContainerName

Pointeur vers une chaîne Unicode terminée par null qui contient le nom du conteneur de clé.

Lorsque le membre dwProvType est égal à zéro, cette chaîne contient le nom d’une clé au sein d’un fournisseur de stockage de clé CNG. Cette chaîne est passée en tant que paramètre pwszKeyName à la fonction NCryptOpenKey .

pwszProvName

Pointeur vers une chaîne Unicode terminée par null qui contient le nom du fournisseur de solutions cloud.

Lorsque le membre dwProvType est égal à zéro, cette chaîne contient le nom d’un fournisseur de stockage de clé CNG. Cette chaîne est passée en tant que paramètre pwszProviderName à la fonction NCryptOpenStorageProvider .

dwProvType

Spécifie le type CSP. Il peut s’agir de zéro ou d’un des types de fournisseurs de chiffrement.

Si ce membre est égal à zéro, le conteneur de clés est l’un des fournisseurs de stockage de clés CNG.

dwFlags

Ensemble d’indicateurs qui indiquent des informations supplémentaires sur le fournisseur. Il peut s’agir de zéro ou de l’une des valeurs suivantes.

Valeur Signification
CERT_SET_KEY_PROV_HANDLE_PROP_ID / CERT_SET_KEY_CONTEXT_PROP_ID
Permet de conserver le handle du fournisseur de clés ouvert pour les appels ultérieurs aux fonctions de chiffrement.
CRYPT_MACHINE_KEYSET / NCRYPT_MACHINE_KEY_FLAG
Le conteneur de clés contient des clés d’ordinateur. Si cet indicateur n’est pas présent, le conteneur de clés contient des clés utilisateur.
CRYPT_SILENT / NCRYPT_SILENT_FLAG
Le conteneur de clés tente d’ouvrir les clés en mode silencieux sans aucune invite d’interface utilisateur.
 

Les fonctions de chiffrement CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature et CryptSignAndEncryptMessage effectuent en interne des opérations CryptAcquireContext à l’aide des CRYPT_KEY_PROV_INFO d’un certificat. Lorsque l’indicateur CERT_SET_KEY_CONTEXT_PROP_ID ou CERT_SET_KEY_PROV_HANDLE_PROP_ID est défini, ces fonctions de chiffrement peuvent appeler CertSetCertificateContextProperty avec CERT_KEY_CONTEXT_PROP_ID. Cet appel permet de maintenir le handle du fournisseur de clés ouvert pour les appels ultérieurs aux fonctions de chiffrement mentionnées qui utilisent ce même certificat, ce qui élimine la nécessité d’effectuer des appels supplémentaires à CryptAcquireContext, ce qui améliore l’efficacité. En outre, étant donné que certains fournisseurs peuvent exiger qu’un mot de passe soit entré pour les appels à CryptAcquireContext, il est souhaitable que les applications réduisent le nombre d’appels CryptAcquireContext effectués. Les handles aux fournisseurs de clés qui ont été maintenus ouverts sont automatiquement libérés lorsque le magasin est fermé.

Par exemple, considérez une application de messagerie où cinq messages chiffrés ont été reçus, tous chiffrés avec la clé publique à partir du même certificat. Si le handle du fournisseur de clés est maintenu ouvert après le traitement du premier message, les appels à CryptAcquireContext ne sont pas requis pour les quatre messages restants.

cProvParam

Nombre d’éléments dans le tableau rgProvParam .

Lorsque le membre dwProvType est égal à zéro, ce membre n’est pas utilisé et doit être égal à zéro.

rgProvParam

Tableau de structures CRYPT_KEY_PROV_PARAM qui contiennent les paramètres du conteneur de clé. Le membre cProvParam contient le nombre d’éléments dans ce tableau.

Lorsque le membre dwProvType est égal à zéro, ce membre n’est pas utilisé et doit avoir la valeur NULL.

dwKeySpec

Spécification de la clé privée à récupérer.

Les valeurs suivantes sont définies pour le fournisseur par défaut.

Lorsque le membre dwProvType est égal à zéro, cette valeur est passée en tant que paramètre dwLegacyKeySpec à la fonction NCryptOpenKey .

Valeur Signification
AT_KEYEXCHANGE
Clés utilisées pour chiffrer/déchiffrer les clés de session.
AT_SIGNATURE
Clés utilisées pour créer et vérifier des signatures numériques.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête wincrypt.h

Voir aussi

CRYPT_KEY_PROV_PARAM

CertGetCertificateContextProperty

CertSetCertificateContextProperty