Partager via


Identificateurs de propriété de stockage de clés

Les valeurs suivantes sont utilisées pour identifier une propriété de stockage de clé.

Identificateurs

NCRYPT_ALGORITHM_GROUP_PROPERTY

L"Algorithm Group"

Chaîne Unicode terminée par null qui contient le nom du groupe d’algorithmes de l’objet. Cette propriété s’applique uniquement aux clés. Les identificateurs suivants sont retournés par le fournisseur de stockage de clés Microsoft.

Identificateur Valeur Descriptif
NCRYPT_RSA_ALGORITHM_GROUP « RSA » Groupe d’algorithmes RSA.
NCRYPT_DH_ALGORITHM_GROUP « DH » Groupe d’algorithmes Diffie-Hellman.
NCRYPT_DSA_ALGORITHM_GROUP « DSA » Groupe d’algorithmes DSA.
NCRYPT_ECDSA_ALGORITHM_GROUP « ECDSA » Groupe d’algorithmes DSA de courbe elliptique.
NCRYPT_ECDH_ALGORITHM_GROUP « ECDH » La courbe elliptique Diffie-Hellman groupe d’algorithmes.

NCRYPT_ALGORITHM_PROPERTY

L"Algorithm Name"

Chaîne Unicode terminée par null qui contient le nom de l’algorithme de l’objet. Il peut s’agir de l’un des identificateurs d’algorithme CNG prédéfinis ou d’un autre identificateur d’algorithme inscrit. Cette propriété s’applique uniquement aux clés.

NCRYPT_ASSOCIATED_ECDH_KEY

L"SmartCardAssociatedECDHKey"

Valeur LPWSTR qui indique le nom du conteneur de la clé ECDH (Elliptic Curve Diffie-Hellman) à utiliser lors de l’ouverture de session pour un handle donné à une clé ECDSA (Elliptic Curve Digital Signature Algorithm). S’il n’existe aucune clé ECDH sur la carte, le fournisseur de stockage de clés (KSP) retourne NTE_NOT_FOUND. Cette propriété s’applique aux clés ECDSA pour l’ouverture de session avec des cartes à puce. La propriété est prise en charge par le fournisseur de stockage de clés de carte à puce Microsoft et non par le fournisseur de stockage de clés logicielles Microsoft.

Windows Server 2008 et Windows Vista : Cette valeur n’est pas prise en charge.

NCRYPT_BLOCK_LENGTH_PROPERTY

L"Block Length"

DWORD qui contient la longueur, en octets, du bloc de chiffrement. Cette propriété s’applique uniquement aux clés qui prennent en charge le chiffrement.

NCRYPT_CERTIFICATE_PROPERTY

L"SmartCardKeyCertificate"

Objet BLOB qui contient un certificat X.509 associé à la clé.

Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista :Objet BLOB qui contient le certificat de clé de carte à puce. Cette propriété n’est pas prise en charge par le fournisseur de stockage de clés logicielles Microsoft.

NCRYPT_DH_PARAMETERS_PROPERTY

L"DHParameters"

Spécifie les paramètres à utiliser avec une clé Diffie-Hellman. Ce type de données est un pointeur vers une structure BCRYPT_DH_PARAMETER_HEADER . Cette propriété ne peut être définie que et doit être définie pour la clé avant la fin de la clé.

NCRYPT_EXPORT_POLICY_PROPERTY

L"Export Policy"

DWORD qui contient un ensemble d’indicateurs qui spécifient la stratégie d’exportation pour une clé persistante. Cette propriété s’applique uniquement aux clés. Cela peut contenir zéro ou une combinaison d’une ou plusieurs des valeurs suivantes.

Identificateur Valeur Descriptif
NCRYPT_ALLOW_EXPORT_FLAG 0x00000001 La clé privée peut être exportée.
NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG 0x00000002 La clé privée peut être exportée sous forme de texte clair.
NCRYPT_ALLOW_ARCHIVING_FLAG 0x00000004 La clé privée peut être exportée une seule fois à des fins d’archivage. Cet indicateur s’applique uniquement au handle de clé d’origine sur lequel il est défini. Cette stratégie ne peut être appliquée qu’au handle de clé d’origine. Une fois le handle de clé fermé, la clé ne peut plus être exportée à des fins d’archivage.
NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG 0x00000008 La clé privée peut être exportée une seule fois sous forme de texte brut à des fins d’archivage. Cet indicateur s’applique uniquement au handle de clé d’origine sur lequel il est défini. Cette stratégie ne peut être appliquée qu’au handle de clé d’origine. Une fois le handle de clé fermé, la clé ne peut plus être exportée à des fins d’archivage.

NCRYPT_IMPL_TYPE_PROPERTY

L"Impl Type"

DWORD qui contient un ensemble d’indicateurs qui définissent les détails de l’implémentation du fournisseur. Cette propriété s’applique uniquement aux fournisseurs de stockage de clés. Cela peut contenir zéro ou une combinaison d’une ou plusieurs des valeurs suivantes.

Identificateur Valeur Descriptif
NCRYPT_IMPL_HARDWARE_FLAG 0x00000001 Le fournisseur est basé sur le matériel.
NCRYPT_IMPL_SOFTWARE_FLAG 0x00000002 Le fournisseur est basé sur des logiciels.
NCRYPT_IMPL_REMOVABLE_FLAG 0x00000008 Le fournisseur est amovible.
NCRYPT_IMPL_HARDWARE_RNG_FLAG 0x00000010 Le fournisseur est un générateur de nombres aléatoires basés sur le matériel.
NCRYPT_IMPL_VIRTUAL_ISOLATION_FLAG 0x00000020 Le fournisseur est un fournisseur d’isolation virtualisé.

NCRYPT_KEM_CIPHERTEXT_LENGTH_PROPERTY

L"KEM Ciphertext Length"

DWORD qui contient la longueur, en octets, du texte chiffré. Cette propriété s’applique uniquement aux clés qui prennent en charge les mécanismes d’encapsulation de clé (KEM).

NCRYPT_KEM_SHARED_SECRET_LENGTH_PROPERTY

L"KEM Shared Secret Length"

DWORD qui contient la longueur, en octets, du secret partagé. Cette propriété s’applique uniquement aux clés qui prennent en charge les mécanismes d’encapsulation de clé (KEM).

NCRYPT_KEY_TYPE_PROPERTY

L"Key Type"

DWORD qui contient un ensemble d’indicateurs qui définissent le type de clé. Cette propriété s’applique uniquement aux clés. Cela peut contenir zéro ou la valeur suivante.

Identificateur Valeur Descriptif
NCRYPT_MACHINE_KEY_FLAG 0x00000020 La clé s’applique à l’ordinateur local. Si cet indicateur n’est pas présent, la clé s’applique à l’utilisateur actuel.

NCRYPT_KEY_USAGE_PROPERTY

L"Key Usage"

DWORD qui contient un ensemble d’indicateurs qui définissent les détails d’utilisation d’une clé. Cette propriété s’applique uniquement aux clés. Cela peut contenir zéro ou une combinaison d’une ou plusieurs des valeurs suivantes.

Identificateur Valeur Descriptif
NCRYPT_ALLOW_DECRYPT_FLAG 0x00000001 La clé peut être utilisée pour le déchiffrement.
NCRYPT_ALLOW_SIGNING_FLAG 0x00000002 La clé peut être utilisée pour la signature.
NCRYPT_ALLOW_KEY_AGREEMENT_FLAG 0x00000004 La clé peut être utilisée pour le chiffrement de contrat secret.
NCRYPT_ALLOW_KEY_ATTESTATION_FLAG 0x00000010 Indique que la clé est une clé avec attestation.
NCRYPT_ALLOW_ALL_USAGES 0x00ffffff La clé peut être utilisée à n’importe quel usage.

NCRYPT_LAST_MODIFIED_PROPERTY

L"Modified"

Indique quand la clé a été modifiée pour la dernière fois. Ce type de données est un pointeur vers une structure FILETIME . Cette propriété s’applique uniquement aux clés persistantes.

NCRYPT_LENGTH_PROPERTY

L"Length"

DWORD qui contient la longueur, en bits, de la clé. Cette propriété s’applique uniquement aux clés.

NCRYPT_LENGTHS_PROPERTY

L"Lengths"

Indique les tailles de clé prises en charge par la clé. Ce type de données est un pointeur vers une structure NCRYPT_SUPPORTED_LENGTHS qui contient ces informations. Cette propriété s’applique uniquement aux clés.

NCRYPT_MAX_NAME_LENGTH_PROPERTY

L"Max Name Length"

DWORD qui contient la longueur maximale, en caractères, du nom d’une clé persistante. Cette propriété s’applique uniquement à un fournisseur.

Cette propriété est principalement destinée à être utilisée par les fournisseurs de stockage de clés qui stockent leurs clés sur un appareil disposant d’une quantité limitée de mémoire disponible, telle qu’une carte à puce.

NCRYPT_NAME_PROPERTY

L"Name"

Pointeur vers une chaîne Unicode terminée par null qui contient le nom de l’objet.

NCRYPT_PIN_PROMPT_PROPERTY

L"SmartCardPinPrompt"

Cette valeur n’est pas prise en charge.

NCRYPT_PIN_PROPERTY

L"SmartCardPin"

Pointeur vers une chaîne Unicode terminée par null qui contient le code confidentiel. Le code confidentiel est utilisé pour une clé de carte à puce ou le mot de passe d’une clé protégée par mot de passe stockée dans un KSP basé sur un logiciel. Cette propriété ne peut être définie que. Les fournisseurs de services clés Microsoft devront mettre en cache cette valeur afin que l’utilisateur soit invité une seule fois par processus.

NCRYPT_PROVIDER_HANDLE_PROPERTY

L"Provider Handle"

Un NCRYPT_PROV_HANDLE qui contient le handle du fournisseur de stockage de clés CNG. Lorsque vous avez terminé d’utiliser le handle, vous devez appeler NCryptFreeObject pour le libérer.

NCRYPT_READER_PROPERTY

L"SmartCardReader"

Pointeur vers une chaîne Unicode terminée par null qui contient le nom du lecteur de carte à puce. Cette propriété ne peut être définie que.

NCRYPT_ROOT_CERTSTORE_PROPERTY

L"SmartcardRootCertStore"

HCERTSTORE qui représente le magasin de certificats racine de carte à puce.

NCRYPT_SCARD_PIN_ID

L"SmartCardPinId"

Pointeur vers la PIN_ID valeur associée à une clé de chiffrement donnée sur une carte à puce. Il s’agit d’une propriété en lecture seule. Le PIN_ID type de données est défini dans Cardmod.h.

Windows Server 2008 et Windows Vista : Cette valeur n’est pas prise en charge.

Remarque

Le Cardmod.h fichier d’en-tête C fournit des informations supplémentaires pertinentes pour cette API. Ce fichier contient les prototypes de fonction et les structures spécifiés par l’API minidriver de carte à puce Microsoft. Cette API est disponible via le Kit de développement du fournisseur de chiffrement Microsoft (CPDK).

NCRYPT_SCARD_PIN_INFO

L"SmartCardPinInfo"

Pointeur vers PIN_INFO structure du code confidentiel associé à une clé de chiffrement donnée sur la carte à puce. L’appelant fournit le handle de clé. Cette propriété est une propriété en lecture seule. La PIN_INFO structure est définie dans Cardmod.h.

Windows Server 2008 et Windows Vista : Cette valeur n’est pas prise en charge.

NCRYPT_SECURE_PIN_PROPERTY

L"SmartCardSecurePin"

Pointeur vers une chaîne Unicode terminée par null qui contient le code confidentiel de session de carte à puce. Cette propriété ne peut être définie que.

Windows Vista : Cette propriété n’est pas prise en charge.

NCRYPT_SECURITY_DESCR_PROPERTY

L"Security Descr"

Pointeur vers une structure SECURITY_DESCRIPTOR qui contient des informations de contrôle d’accès pour la clé. Cette propriété s’applique uniquement aux clés persistantes. Le paramètre dwFlags de la fonction NCryptGetProperty ou NCryptSetProperty identifie la partie du descripteur de sécurité à obtenir ou définir.

NCRYPT_SECURITY_DESCR_SUPPORT_PROPERTY

L"Security Descr Support"

Indique si le fournisseur prend en charge les descripteurs de sécurité pour les clés. Cette propriété est un DWORD qui contient 1 si le fournisseur prend en charge les descripteurs de sécurité pour les clés. Si cette propriété contient une autre valeur ou si la fonction NCryptGetProperty retourne NTE_NOT_SUPPORTED, le fournisseur ne prend pas en charge les descripteurs de sécurité pour les clés. Cette propriété s’applique uniquement aux fournisseurs.

NCRYPT_SMARTCARD_GUID_PROPERTY

L"SmartCardGuid"

Objet BLOB qui contient l’identificateur de la carte à puce.

NCRYPT_UI_POLICY_PROPERTY

L"UI Policy"

Si elle est utilisée avec la fonction NCryptSetProperty ou NCryptGetProperty , il s’agit d’un pointeur vers une structure NCRYPT_UI_POLICY qui contient la stratégie d’interface utilisateur à clé forte pour la clé. Cette propriété s’applique uniquement aux clés persistantes. Cette propriété ne peut être définie que lorsque la clé est générée. Une fois la fonction NCryptFinalizeKey appelée pour cette clé, cette propriété devient en lecture seule.

Un fournisseur de stockage de clés peut recevoir ce paramètre via une fonction de rappel NCryptSetPropertyFn . La valeur du paramètre est une structure NCRYPT_UI_POLICY_BLOB qui contient les mêmes informations. De même, lorsqu’une application effectue une requête via NCryptSetPropertyFn au fournisseur pour renvoyer cette propriété, le fournisseur est censé retourner une structure NCRYPT_UI_POLICY_BLOB .

NCRYPT_UNIQUE_NAME_PROPERTY

L"Unique Name"

Pointeur vers une chaîne Unicode terminée par null qui contient le nom unique de l’objet. Il s’agit d’un autre nom qui peut être utilisé lors de l’accès à la clé. Cette propriété est utilisée lorsqu’il est pensé que le nom de clé transmis à NCryptCreatePersistedKey n’est pas suffisamment unique pour identifier de manière fiable la clé persistante. Le fournisseur de stockage de clés Microsoft retourne le nom de fichier de la clé en tant que propriété.

NCRYPT_USE_CONTEXT_PROPERTY

L"Use Context"

Pointeur vers une chaîne Unicode terminée par null qui décrit le contexte de l’opération. Cette propriété n’est pas persistante et peut être définie sur un fournisseur ou une clé. Une clé n’a pas accès à la NCRYPT_USE_CONTEXT_PROPERTY propriété du fournisseur, car la propriété est spécifique uniquement au handle pour lequel elle est définie.

Par exemple, cette propriété serait utilisée dans le contexte d’un fournisseur est un fournisseur de stockage de clés qui doit inviter l’utilisateur lors d’un appel à NCryptOpenKey (par exemple, « Insérer votre carte à puce dans le lecteur »). Étant donné que le handle de clé n’est disponible qu’après la retour de NCryptOpenKey , l’application doit définir cette propriété sur le handle du fournisseur avant d’appeler NCryptOpenKey.

Par exemple, cette propriété serait utilisée dans le contexte d’un handle de clé est un fournisseur de stockage de clés qui doit inviter l’utilisateur pendant une opération à l’aide de la clé (par exemple, « Cette application doit utiliser cette clé pour signer un document »). Le fournisseur peut ensuite relayer ces informations de contexte à l’utilisateur dans n’importe quelle interface utilisateur affichée pendant l’opération.

NCRYPT_USE_COUNT_ENABLED_PROPERTY

L"Enabled Use Count"

Indique si le fournisseur prend en charge le comptage d’utilisation pour les clés. Cette propriété est une DWORD qui contient 1 si le fournisseur prend en charge le comptage d’utilisation pour les clés. Si cette propriété contient une autre valeur ou si la fonction NCryptGetProperty retourne NTE_NOT_SUPPORTED, le fournisseur ne prend pas en charge le comptage d’utilisation pour les clés. Cette propriété s’applique uniquement aux fournisseurs.

NCRYPT_USE_COUNT_PROPERTY

L"Use Count"

Variable ULARGE_INTEGER qui contient le nombre d’opérations effectuées par la clé privée spécifiée. Cette propriété est facultative et peut ne pas être prise en charge par tous les fournisseurs. Les fournisseurs qui prennent en charge cette propriété sur les clés doivent également prendre en charge la propriété NCRYPT_USE_COUNT_ENABLED_PROPERTY sur le handle du fournisseur. Le fournisseur de stockage de clés Microsoft ne prend pas en charge cette propriété. Cette propriété s’applique uniquement aux clés persistantes.

NCRYPT_USER_CERTSTORE_PROPERTY

L"SmartCardUserCertStore"

HCERTSTORE qui représente le magasin de certificats utilisateur de carte à puce.

NCRYPT_VBS_ROOT_PUB_PROPERTY

L"VBS_ROOT_PUB"

Nouvelle propriété du fournisseur MS_KEY_STORAGE_PROVIDER . Cette propriété permet la récupération de la partie publique de la clé de signature racine (IDKS) de la sécurité basée sur la virtualisation (VBS).

NCRYPT_VERSION_PROPERTY

L"Version"

DWORD qui contient la version logicielle du fournisseur. Le mot élevé contient la version principale et le mot bas contient la version mineure. Par exemple : 0x00030033 = 3.51. Cette propriété s’applique uniquement aux fournisseurs.

NCRYPT_WINDOW_HANDLE_PROPERTY

L"HWND Handle"

Pointeur vers le handle de fenêtre (HWND) à utiliser comme parent de n’importe quelle interface utilisateur affichée.

Étant donné que le comportement indésirable peut se produire lorsqu’une interface utilisateur est affichée à l’aide d’un handle de fenêtre NULL pour le parent, nous recommandons vivement qu’un fournisseur de stockage de clés n’affiche pas d’interface utilisateur, sauf si cette propriété est définie.

Les valeurs suivantes sont utilisées pour définir des limites de données de propriété.

Constante Valeur Descriptif
NCRYPT_MAX_PROPERTY_DATA 0x100000 Spécifie la taille maximale d’une valeur de propriété, en octets.
NCRYPT_MAX_PROPERTY_NAME 64 Spécifie la taille maximale d’un nom de propriété, en caractères.

Spécifications

Besoin Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête de page Ncrypt.h

Voir aussi