Identificateurs de propriétés 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 | Description |
---|---|---|
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 » | 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 d’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 | Description |
---|---|---|
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 en 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 en clair à 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 d’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 | Description |
---|---|---|
NCRYPT_IMPL_HARDWARE_FLAG | 0x00000001 | Le fournisseur est basé sur le matériel. |
NCRYPT_IMPL_SOFTWARE_FLAG | 0x00000002 | Le fournisseur est basé sur un logiciel. |
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é sur le matériel. |
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 | Description |
---|---|---|
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 | Description |
---|---|---|
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 des contrats secrets. |
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, par exemple 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 pin 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 fournisseur de clés basé sur un logiciel. Cette propriété ne peut être définie que. Les fournisseurs de services clés Microsoft mettez en cache cette valeur afin que l’utilisateur ne soit invité qu’une seule fois par processus.
NCRYPT_PROVIDER_HANDLE_PROPERTY
L"Provider Handle"
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 un caractère 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.
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"
S’il est utilisé 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 de 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 que la fonction NCryptFinalizeKey a été 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 NCRYPT_UI_POLICY_BLOB
structure qui contient les mêmes informations. De même, lorsqu’une application effectue une demande via NCryptSetPropertyFn au fournisseur pour retourner cette propriété, le fournisseur est censé retourner une NCRYPT_UI_POLICY_BLOB
structure.
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’on pense que le nom de clé transmis initialement à 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 cette 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.
Un exemple où 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 le retour de NCryptOpenKey , l’application doit définir cette propriété sur le handle du fournisseur avant d’appeler NCryptOpenKey.
Un exemple où 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 lors d’une opération utilisant 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 de l’utilisation des clés. Cette propriété est un 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 NCRYPT_USE_COUNT_ENABLED_PROPERTY
propriété 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 d’utilisateur de carte à puce.
NCRYPT_VERSION_PROPERTY
L"Version"
DWORD qui contient la version logicielle du fournisseur. Le mot haut 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 toute interface utilisateur affichée.
Étant donné qu’un 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é.
Constant | Valeur | Description |
---|---|---|
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. |
Configuration requise
Condition requise | 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 | Ncrypt.h |