

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5
<a name="ksp-library"></a>

 Le Key Storage Provider (KSP) est une API cryptographique spécifique au système d'exploitation Microsoft Windows. Le fournisseur de stockage de clés (KSP) permet aux développeurs d'utiliser des techniques cryptographiques pour sécuriser les applications Windows.

Pour plus d'informations sur l’amorçage, veuillez consulter [Connexion au cluster](cluster-connect.md).

Pour plus d'informations sur l'utilisation du SDK client 3, consultez [Utilisation de la version précédente du SDK pour travailler avec AWS CloudHSM](choose-client-sdk.md).

**Topics**
+ [Installation du fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5](ksp-library-install.md)
+ [Authentifiez-vous auprès du fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5](ksp-library-authentication.md)
+ [Types de clés pris en charge par le fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5](ksp-library--key-types.md)
+ [Opérations d'API prises en charge Fournisseur de stockage de clés (KSP) pour AWS CloudHSM le SDK client 5](ksp-library-apis.md)
+ [Configurations avancées pour KSP pour AWS CloudHSM](ksp-library-configs.md)

# Installation du fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5
<a name="ksp-library-install"></a>

Utilisez les sections suivantes pour installer le fournisseur de stockage de clés (KSP) pour AWS CloudHSM le SDK client 5.

**Note**  
Pour exécuter un seul cluster HSM avec le SDK client 5, vous devez d'abord gérer les paramètres de durabilité des clés client en définissant `disable_key_availability_check` sur `True`. Pour plus d'informations, veuillez consulter les sections [Synchronisation des clés](manage-key-sync.md) et [outil de configuration du SDK client 5](configure-sdk-5.md).

**Pour installer et configurer le fournisseur de stockage de clés (KSP)**

1. Installez le fournisseur de stockage de clés (KSP) pour Windows Server sur une architecture x86\$164, ouvrez-le en PowerShell tant qu'administrateur et exécutez la commande suivante :

   ```
   PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMKSP-latest.msi -Outfile C:\AWSCloudHSMKSP-latest.msi
   ```

   ```
   PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMKSP-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
   ```

1. Utilisez l'outil de configuration pour spécifier l'emplacement du certificat émetteur. Pour obtenir des instructions, veuillez consulter [Spécifier l'emplacement du certificat émetteur](cluster-connect.md#specify-cert-location).

1. Pour vous connecter à votre cluster, consultez [Amorcez le SDK client](cluster-connect.md#connect-how-to).

1. Vous pouvez trouver les fichiers du fournisseur de stockage de clés (KSP) aux emplacements suivants :
   + Binaires Windows :

     ```
     C:\Program Files\Amazon\CloudHSM
     ```

     Scripts de configuration et fichiers journaux Windows :

     ```
     C:\ProgramData\Amazon\CloudHSM
     ```

# Authentifiez-vous auprès du fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5
<a name="ksp-library-authentication"></a>

Avant d'utiliser le fournisseur de stockage de clés (KSP) pour AWS CloudHSM le SDK client 5, vous devez définir les informations de connexion du HSM sur votre système. Vous avez deux options :
+ Gestionnaire d'informations d'identification Windows (recommandé pour une meilleure sécurité)
+ Variables d'environnement du système (configuration simplifiée)

## Gestionnaire d'informations d'identification Windows
<a name="sdk5-wcm"></a>

Vous pouvez configurer les informations d'identification à l'aide de l'`set_cloudhsm_credentials`utilitaire ou de l'interface Windows Credentials Manager.
+ **Utilisation de l'utilitaire `set_cloudhsm_credentials`** :

  L'`set_cloudhsm_credentials`utilitaire est inclus dans le programme d'installation de Windows. Vous pouvez utiliser cet utilitaire pour transmettre facilement les informations d'identification de connexion HSM au Gestionnaire d'informations d'identification Windows. Si vous souhaitez compiler cet utilitaire à partir des sources, vous pouvez utiliser le code Python inclus dans le programme d'installation.

  1. Accédez à `C:\Program Files\Amazon\CloudHSM\tools\`.

  1. Exécutez la commande suivante :

     ```
     set_cloudhsm_credentials.exe --username <CU USER> --password <CU PASSWORD>
     ```
+ **Utilisation de l'interface du Gestionnaire d'informations d'identification** :

  1. Ouvrez le gestionnaire d'informations d'identification :
     + Entrez `credential manager` dans le champ de recherche de la barre des tâches 
     + Sélectionnez **Credential Manager**

  1. Sélectionnez **Windows Credentials (Informations d'identification)** pour gérer les informations d'identification Windows.

  1. Sélectionnez **Ajouter un identifiant générique**

  1. Entrez les détails suivants :
     + **Adresse Internet ou réseau** :`CLOUDHSM_PIN`.
     + **Nom d'utilisateur** :*<CU USER>*.
     + **Mot de passe** :*<CU PASSWORD>*.

  1. Sélectionnez **OK**

## Variables d'environnement du système
<a name="sdk5-enviorn-var"></a>

Vous pouvez définir des variables d'environnement système pour identifier votre HSM et votre [utilisateur cryptographique](understanding-users.md#crypto-user-chsm-cli) (CU). 

**Avertissement**  
La définition des informations d'identification par le biais de variables d'environnement système enregistre votre mot de passe en texte clair sur votre système. Pour une meilleure sécurité, utilisez plutôt Windows Credential Manager.

Vous pouvez définir des variables d'environnement en utilisant :
+ La valeur [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx).
+ Panneau de configuration **des propriétés du système** Windows (onglet **Avancé**).
+ définir des variables d'environnement système permanentes Méthodes [programmatiques](https://msdn.microsoft.com/en-us/library/system.environment.setenvironmentvariable(v=vs.110).aspx).

Pour définir la variable d'environnement du système :

**`CLOUDHSM_PIN=<CU USERNAME>:<CU PASSWORD>`**  
Identifie un [utilisateur de chiffrement](understanding-users.md#crypto-user-chsm-cli) (CU) dans le HSM et fournit toutes les informations de connexion requises. Votre application s'authentifie et s'exécute en tant que ce CU. L'application possède les autorisations de ce CU et peut afficher et gérer uniquement les clés que le CU possède et partage. Pour créer une nouvelle CU, utilisez la commande [user create](cloudhsm_cli-user-create.md) dans la CLI CloudHSM. Pour rechercher un fichier existant CUs, utilisez la commande [user list](cloudhsm_cli-user-list.md) dans la CLI CloudHSM.  
Par exemple :  

```
setx /m CLOUDHSM_PIN test_user:password123
```

**Note**  
Lorsque vous définissez les variables d'environnement CLOUDHSM\$1PIN, vous devez éviter tout caractère spécial susceptible d'être interprété par votre shell.

# Types de clés pris en charge par le fournisseur de stockage de clés (KSP) pour le SDK AWS CloudHSM client 5
<a name="ksp-library--key-types"></a>

Le fournisseur de stockage de AWS CloudHSM clés (KSP) prend en charge les types de clés suivants avec le SDK client 5.


****  

| Type de clé | Description | 
| --- | --- | 
| EC | Générez des clés avec les courbes secp256r1 (P-256), secp384r1 (P-384) et secp521r1 (P-521). | 
| RSA | Générez des clés RSA de 2048, 3072 et 4096 bits. | 

# Opérations d'API prises en charge Fournisseur de stockage de clés (KSP) pour AWS CloudHSM le SDK client 5
<a name="ksp-library-apis"></a>

Les paramètres du KSP sont définis par Microsoft KSP. Consultez la [documentation Microsoft](https://learn.microsoft.com/en-us/windows/win32/api/ncrypt/) pour plus d'informations.

Le fournisseur de stockage de clés (KSP) prend en charge les opérations d'API KSP suivantes pour le SDK AWS CloudHSM client 5.
+ [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)
+ [NCryptOpenKey](ksp-library-apis-open-key.md)
+ [NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md)
+ [NCryptGetProperty](ksp-library-apis-get-property.md)
+ [NCryptSetProperty](ksp-library-apis-set-property.md)
+ [NCryptFinalizeKey](ksp-library-apis-finalize-key.md)
+ [NCryptDeleteKey](ksp-library-apis-delete-key.md)
+ [NCryptFreeObject](ksp-library-apis-free-object.md)
+ [NCryptFreeBuffer](ksp-library-apis-free-buffer.md)
+ [NCryptIsAlgSupported](ksp-library-apis-is-alg-supported.md)
+ [NCryptEnumAlgorithms](ksp-library-apis-enum-algorithms.md)
+ [NCryptEnumKeys](ksp-library-apis-enum-keys.md)
+ [NCryptExportKey](ksp-library-apis-export-key.md)
+ [NCryptSignHash](ksp-library-apis-sign-hash.md)
+ [NCryptVerifySignature](ksp-library-apis-verify-signature.md)

# NCryptOpenStorageProvider fonction avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-open-provider"></a>

La `NCryptOpenStorageProvider` fonction charge et initialise le fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-open-provider-parameters"></a>

 `phProvider`[dehors]   
Un pointeur vers une `NCRYPT_PROV_HANDLE` variable qui stocke le descripteur du fournisseur.

 `pszProviderName`[en]   
Pointeur vers une chaîne Unicode terminée par un caractère nul identifiant le fournisseur de stockage de clés. Le fournisseur de stockage de clés (KSP) AWS CloudHSM prend en charge les valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-open-provider.html)
Les valeurs sont des chaînes de caractères larges littérales, comme indiqué par L avant le littéral.

`dwFlags`[en]  
Indicateurs qui modifient le comportement de la fonction. Aucun drapeau n'est défini pour cette fonction.

## Valeur renvoyée
<a name="ksp-library-apis-open-provider-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOT\$1FAIL  |  L'opération n'a pas pu être terminée.  | 

# NCryptOpenKey avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-open-key"></a>

La `NCryptOpenKey` fonction ouvre une clé qui existe dans le fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-open-key-parameters"></a>

 `hProvider`[en]   
Le handle KSP qui contient la clé. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)Utilisez-le pour obtenir le manche.

 `phKey`[dehors]   
Un pointeur vers une `NCRYPT_KEY_HANDLE` variable qui stocke le descripteur de touche.

`pszKeyName`[en]  
Un pointeur vers une chaîne Unicode terminée par un caractère nul et contenant le nom de la clé.

`dwLegacyKeySpec`[en, non utilisé]  
AWS CloudHSM Le fournisseur de stockage de clés (KSP) n'utilise pas ce paramètre.

`dwFlags`[en]  
Indicateurs qui modifient le comportement de la fonction. Aucun drapeau n'est défini pour cette fonction.

## Valeur renvoyée
<a name="ksp-library-apis-open-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOT\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NTE\$1INVALID\$1HANDLE  |  Le handle in n'`hProvider`est pas valide.  | 
|  NTE\$1BAD\$1KEYSET  |  Le nom de clé fourni n'a pas renvoyé de résultat unique.  | 

# NCryptCreatePersistedKey avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-create-persisted-key"></a>

La `NCryptCreatePersistedKey` fonction crée une nouvelle clé et la stocke dans le fournisseur de stockage de clés (KSP). Vous pouvez utiliser la [`NCryptSetProperty`](ksp-library-apis-set-property.md)fonction pour définir ses propriétés après sa création. Vous devez appeler [`NCryptFinalizeKey`](ksp-library-apis-finalize-key.md)avant de pouvoir utiliser la clé.

## Parameters
<a name="ksp-library-apis-create-persisted-key-parameters"></a>

 `hProvider`[en]   
Identifiant du fournisseur de stockage de clés dans lequel vous allez créer la clé. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)Utilisez-le pour obtenir cette poignée.

 `phKey`[dehors]   
Adresse d'une `NCRYPT_KEY_HANDLE` variable qui stocke le descripteur de la clé. 

 `pszAlgId`[en]   
Pointeur vers une chaîne Unicode terminée par un caractère nul qui indique l'identifiant de l'algorithme cryptographique utilisé pour créer la clé.  
AWS CloudHSM Le fournisseur de stockage de clés (KSP) prend en charge les algorithmes suivants :     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName`[en, facultatif]  
Pointeur vers une chaîne Unicode terminée par un caractère nul et contenant le nom de la clé. Si ce paramètre est NULL, cette fonction créera une clé éphémère qui n'est pas conservée.

`dwLegacyKeySpec`[en, non utilisé]  
AWS CloudHSM Le fournisseur de stockage de clés (KSP) n'utilise pas ce paramètre.

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Utilisez zéro ou plusieurs des valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

## Valeur renvoyée
<a name="ksp-library-apis-create-persisted-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  La fonction s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `pszAlgId` paramètre contient une valeur non prise en charge.  | 
|  NOTE\$1EXISTS  |  Une clé portant le nom spécifié existe déjà et l'opération n'a pas été utilisée` NCRYPT_OVERWRITE_KEY_FLAG`.  | 

# NCryptGetProperty avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-get-property"></a>

La `NCryptGetProperty` fonction récupère les valeurs des propriétés d'un objet de stockage clé.

## Parameters
<a name="ksp-library-apis-create-get-property-parameters"></a>

 `hObject`[en]   
 Le descripteur de l'objet dont vous souhaitez récupérer la propriété. Vous pouvez utiliser :  
+ Un identifiant de fournisseur (`NCRYPT_PROV_HANDLE`)
+ Une poignée à clé (`NCRYPT_KEY_HANDLE`)

 `pszProperty `[en]   
Un pointeur vers une chaîne Unicode terminée par un caractère nul contenant le nom de la propriété à récupérer.   
Lors de son utilisation`NCRYPT_PROV_HANDLE`, le fournisseur de stockage de AWS CloudHSM clés (KSP) prend en charge les identifiants KSP suivants :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Lors de son utilisation`NCRYPT_KEY_HANDLE`, le fournisseur de stockage de AWS CloudHSM clés (KSP) prend en charge les identifiants KSP suivants :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Les valeurs sont des chaînes de caractères larges littérales, comme indiqué par L avant le littéral.

 `pbOutput`[dehors]   
Adresse d'une mémoire tampon pour stocker la valeur de la propriété. Spécifiez la taille de la mémoire tampon à l'aide de`cbOutput`.  
Pour déterminer la taille de tampon requise, définissez ce paramètre sur NULL. La fonction enregistre la taille requise (en octets) à l'emplacement indiqué par`pcbResult`.

 `cbOutput`[en]   
 Taille de la `pbOutput` mémoire tampon en octets.

`pcbResult`[dehors]  
Pointeur vers une variable DWORD qui stocke le nombre d'octets copiés dans la `pbOutput` mémoire tampon.  
Si la valeur `pbOutput` est NULL, cela stocke la taille requise (en octets).

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Vous pouvez utiliser zéro ou :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Lorsque PSZProperty l'est`NCRYPT_SECURITY_DESCR_PROPERTY`, utilisez l'un ou une combinaison des éléments suivants :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)

## Valeur renvoyée
<a name="ksp-library-apis-get-property-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `pszAlgId` paramètre contient une valeur qui n'est pas prise en charge.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hObject`est pas valide.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  Le `cbOutput` paramètre est trop petit pour les valeurs renvoyées.  | 

# NCryptSetProperty avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-set-property"></a>

La `NCryptSetProperty` fonction définit les valeurs des propriétés d'un objet de stockage clé.

## Parameters
<a name="ksp-library-apis-create-set-property-parameters"></a>

 `hObject`[en]   
 Le descripteur de l'objet dont vous souhaitez définir la propriété. Vous pouvez utiliser :  
+ Un identifiant de fournisseur (`NCRYPT_PROV_HANDLE`)
+ Une poignée à clé (`NCRYPT_KEY_HANDLE`)

 `pszProperty `[en]   
Un pointeur vers une chaîne Unicode terminée par un caractère nul contenant le nom de la propriété à récupérer.   
Lors de son utilisation`NCRYPT_PROV_HANDLE`, le fournisseur de stockage de AWS CloudHSM clés (KSP) prend en charge les identifiants KSP suivants :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
Lors de son utilisation`NCRYPT_KEY_HANDLE`, le fournisseur de stockage de AWS CloudHSM clés (KSP) prend en charge les identifiants KSP suivants :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
Les valeurs sont des chaînes de caractères larges littérales, comme indiqué par L avant le littéral.

 `pbInput`[en]   
 Adresse d'un tampon contenant la nouvelle valeur de propriété. `cbInput`contient la taille de la mémoire tampon. 

 `cbInput`[en]   
 Taille de la `pbInput` mémoire tampon en octets. 

`dwFlags`[en]  
Indicateurs qui modifient le comportement de la fonction. Aucun drapeau n'est défini pour cette fonction.

## Valeur renvoyée
<a name="ksp-library-apis-set-property-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `pszProperty` paramètre contient une valeur qui n'est pas prise en charge.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hObject`est pas valide.  | 
|  NOTE\$1BAD\$1DATA  |  Les données pointées par `pbInput` et ne `cbInput` sont pas valides.  | 

# NCryptFinalizeKey avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-finalize-key"></a>

La `NCryptFinalizeKey` fonction complète une touche KSP. Vous devez appeler cette fonction avant de pouvoir utiliser la touche.

## Parameters
<a name="ksp-library-apis-finalize-key-parameters"></a>

 `hKey`[en]   
 Le manche de la clé pour terminer. Obtenez ce descripteur en appelant la [NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md)fonction.

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Vous pouvez utiliser zéro ou les valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-finalize-key.html)

## Valeur renvoyée
<a name="ksp-library-apis-finalize-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hKey`est pas valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `dwFlags` paramètre contient une valeur qui n'est pas prise en charge.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 

# NCryptDeleteKey avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-delete-key"></a>

La `NCryptDeleteKey` fonction supprime une clé KSP du fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-delete-key-parameters"></a>

 `hKey`[en]   
 Poignée de la clé à supprimer. 

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Vous pouvez utiliser zéro ou plusieurs des valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-delete-key.html)

## Valeur renvoyée
<a name="ksp-library-apis-delete-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  La fonction s'est déroulée correctement.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOT\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NTE\$1INVALID\$1HANDLE  |  Le handle in n'`hKey`est pas valide.  | 
|  ERREUR\$1INTERNE  |  Une erreur interne s'est produite lors de la suppression de la clé.  | 

# NCryptFreeObject avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-free-object"></a>

La `NCryptFreeObject` fonction libère le fournisseur ou le descripteur de clé du fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-free-object-parameters"></a>

 `hObject`[en]   
 Poignée de l'objet à libérer. Vous pouvez utiliser :  
+ Un identifiant de fournisseur (`NCRYPT_PROV_HANDLE`)
+ Une poignée à clé (`NCRYPT_KEY_HANDLE`)

## Valeur renvoyée
<a name="ksp-library-apis-free-object-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  NTE\$1INVALID\$1HANDLE  |  Le handle in n'`hObject`est pas valide.  | 

# NCryptFreeBuffer avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-free-buffer"></a>

La `NCryptFreeBuffer` fonction libère un bloc de mémoire alloué par le fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-free-buffer-parameters"></a>

 `pvInput`[en]   
 Adresse de la mémoire à libérer. 

## Valeur renvoyée
<a name="ksp-library-apis-free-buffer-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  NOT\$1FAIL  |  L'opération n'a pas pu être terminée.  | 

# NCryptIsAlgSupported avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-is-alg-supported"></a>

NCryptIsAlgSupported fonction détermine si le fournisseur de stockage de clés (KSP) prend en charge un algorithme cryptographique spécifique.

## Parameters
<a name="ksp-library-apis-is-alg-supported-parameters"></a>

 `hProvider`[en]   
 Identifiant du fournisseur de stockage de clés. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)Utilisez-le pour obtenir le manche. 

 `pszAlgId`[en]   
 Pointeur vers une chaîne Unicode terminée par un caractère nul qui contient l'identifiant de l'algorithme cryptographique utilisé pour créer la clé. Le fournisseur de stockage de clés (KSP) AWS CloudHSM prend en charge les algorithmes suivants :     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

`dwFlags`[en]  
Indicateurs qui modifient le comportement des fonctions. Il peut s'agir de zéro ou de la valeur suivante :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

## Valeur renvoyée
<a name="ksp-library-apis-is-alg-supported-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `pszAlgId` paramètre contient une valeur non prise en charge.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hProvider`est pas valide.  | 

# NCryptEnumAlgorithms avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-enum-algorithms"></a>

La `NCryptEnumAlgorithms` fonction récupère les noms des algorithmes pris en charge par le fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-enum-algorithms-parameters"></a>

 `hProvider`[en]   
 Identifiant du fournisseur de stockage de clés pour lequel énumérer les algorithmes. Utilisez la [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)fonction pour obtenir ce descripteur. 

 `dwAlgOperations`[en]   
Ensemble de valeurs qui spécifient les classes d'algorithmes à énumérer. Vous pouvez utiliser zéro pour énumérer tous les algorithmes ou combiner une ou plusieurs de ces valeurs :     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

`pdwAlgCount`[dehors]  
Adresse d'un DWORD qui stocke le nombre d'éléments du `ppAlgList` tableau.

`ppAlgList`[dehors]  
Adresse d'un pointeur de `NCryptAlgorithmName` structure qui stocke un tableau de noms d'algorithmes enregistrés. Le `pdwAlgCount` paramètre indique le nombre d'éléments de ce tableau.

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Utilisez zéro ou la valeur suivante :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

## Valeur renvoyée
<a name="ksp-library-apis-open-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `dwAlgOperations` paramètre contient une valeur non prise en charge.  | 

# NCryptEnumKeys avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-enum-keys"></a>

NCryptEnumKeys fonction répertorie les clés stockées dans le fournisseur de stockage de clés (KSP).

## Parameters
<a name="ksp-library-apis-enum-keys-parameters"></a>

 `hProvider`[en]   
Identifiant du fournisseur de stockage des clés. [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)Utilisez-le pour obtenir cette poignée. 

 `pszScope`[en, non utilisé]   
 Définissez ce paramètre sur NULL.

 `ppKeyName`[dehors]   
Adresse de pointeur vers une `NCryptKeyName` structure qui stocke le nom de la clé. Pour libérer cette mémoire après utilisation, appelez`NCryptFreeBuffer`. 

`ppEnumState`[entrée, sortie]  
Une adresse de pointeur VOID qui suit la progression de l'énumération. Le fournisseur de stockage de clés utilise ces informations en interne pour gérer la séquence d'énumération. Pour recommencer une nouvelle énumération depuis le début, définissez ce pointeur sur NULL.  
Pour libérer cette mémoire une fois l'énumération terminée, passez ce pointeur au`NCryptFreeBuffer`.

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Cette fonction n'a aucun drapeau.

## Valeur renvoyée
<a name="ksp-library-apis-enum-keys-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOT\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NTE\$1INVALID\$1HANDLE  |  Le handle in n'`hProvider`est pas valide.  | 
|  NE NOTEZ AUCUN AUTRE ARTICLE  |  L'énumération a répertorié toutes les clés disponibles.  | 

# NCryptExportKey avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-export-key"></a>

La `NCryptExportKey` fonction exporte une clé KSP vers une mémoireBLOB. Cette fonction prend uniquement en charge l'exportation de clés publiques.

## Parameters
<a name="ksp-library-apis-export-key-parameters"></a>

 `hKey`[en]  
Poignée de la clé à exporter.

 `hExportKey`[en, non utilisé]  
 AWS CloudHSM Le fournisseur de stockage de clés (KSP) n'utilise pas ce paramètre. 

`pszBlobType`[en]  
Chaîne Unicode terminée par un caractère nul qui indique le BLOB type à exporter. AWS CloudHSM Le fournisseur de stockage de clés (KSP) prend en charge les valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

`pParameterList`[en, non utilisé]  
AWS CloudHSM Le fournisseur de stockage de clés (KSP) n'utilise pas ce paramètre.

`pbOutput`[sortie, facultatif]  
Adresse tampon pour stocker la clé BLOB. Spécifiez la taille de la mémoire tampon à l'aide de`cbOutput`. Si elle est définie sur NULL, la fonction stocke la taille requise (en octets) dans le DWORD pointé par`pcbResult`.

`cbOutput`[en]  
Taille de la `pbOutput` mémoire tampon en octets.

`pcbResult`[dehors]  
Adresse variable DWORD qui stocke le nombre d'octets copiés dans la `pbOutput` mémoire tampon. Si la valeur `pbOutput` est NULL, la fonction stocke la taille de tampon requise en octets.

`dwFlags`[en]  
Drapeaux qui modifient le fonctionnement de la fonction. Vous pouvez utiliser zéro ou ce qui suit :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

## Valeur renvoyée
<a name="ksp-library-apis-export-key-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hProvider`est pas valide.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE\$1BAD\$1KEY\$1STATE  |  L'état de la clé n'est pas valide.  | 
|  NOTE NON PRISE EN CHARGE  |  Le `dwFlags` paramètre `pszBlobType` or contient une valeur non prise en charge.  | 
|  ERREUR INTERNE D'ÉTAT  |  Une erreur interne s'est produite lors de l'opération.  | 

# NCryptSignHash avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-sign-hash"></a>

La `NCryptSignHash` fonction crée la signature d'une valeur de hachage.

## Parameters
<a name="ksp-library-apis-sign-hash-parameters"></a>

 `hKey`[en]   
 Le manche de la clé à utiliser pour signer le hachage. 

`pPaddingInfo`[en, facultatif]  
Pointeur vers une structure contenant des informations de remplissage. Le type de structure dépend de la `dwFlags` valeur. Utilisez ce paramètre uniquement avec des clés asymétriques ; défini sur NULL pour les autres types de clés.

`pbHashValue`[en]  
Un pointeur vers un tampon contenant la valeur de hachage à signer. Spécifiez la taille de la mémoire tampon à l'aide de`cbHashValue`.

`cbHashValue`[en]  
Taille, en octets, de la `pbHashValue` mémoire tampon à signer.

`pbSignature`[dehors]  
Adresse d'une mémoire tampon pour stocker la signature. Spécifiez la taille de la mémoire tampon à l'aide de`cbSignature`.  
Pour déterminer la taille de tampon requise, définissez ce paramètre sur NULL. La fonction stocke la taille requise (en octets) à l'emplacement indiqué par`pcbResult`.

`cbSignature`[en]  
Taille de la `pbSignature` mémoire tampon en octets. La fonction ignore ce paramètre s'il `pbSignature` est NULL.

`pcbResult`[dehors]  
Pointeur vers une variable DWORD qui stocke le nombre d'octets copiés dans la `pbSignature` mémoire tampon.  
Si la valeur `pbSignature` est NULL, cela stocke la taille de mémoire tampon requise, en octets. 

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Les drapeaux autorisés dépendent du type de clé. Utilisez l'une des valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-sign-hash.html)

## Valeur renvoyée
<a name="ksp-library-apis-sign-hash-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hKey`est pas valide.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  Le `pcbOutput` paramètre est trop petit pour les valeurs renvoyées.  | 
|  NOTE\$1BAD\$1KEY\$1STATE  |  L'état de la clé n'est pas valide.  | 
|  ERREUR\$1INTERNE  |  Une erreur interne s'est produite lors de la signature du hachage.  | 

# NCryptVerifySignature avec le fournisseur de stockage de clés (KSP)
<a name="ksp-library-apis-verify-signature"></a>

La `NCryptVerifySignature` fonction confirme si une signature correspond à un hachage spécifié.

## Parameters
<a name="ksp-library-apis-verify-signature-parameters"></a>

 `hKey`[en]   
 Le descripteur de la clé à utiliser pour déchiffrer la signature. Vous devez utiliser la partie clé publique de la paire de clés utilisée pour signer les données avec le [`NCryptSignHash`](ksp-library-apis-sign-hash.md). 

`pPaddingInfo`[en, facultatif]  
Un pointeur vers une structure contenant des informations de remplissage. Le type de structure dépend de la `dwFlags` valeur. Utilisez ce paramètre uniquement avec des clés asymétriques ; défini sur NULL pour les autres types de clés.

`pbHashValue`[en]  
Un pointeur vers un tampon contenant la valeur de hachage à signer. Spécifiez la taille de la mémoire tampon à l'aide de`cbHashValue`.

`cbHashValue`[en]  
Taille de la `pbHashValue` mémoire tampon en octets.

`pbSignature`[dehors]  
Adresse d'un tampon contenant le hachage signé des données. [`NCryptSignHash`](ksp-library-apis-sign-hash.md)À utiliser pour créer cette signature. Spécifiez la taille de la mémoire tampon à l'aide de`cbSignature`.

`cbSignature`[en]  
Taille de la `pbSignature` mémoire tampon en octets. [`NCryptSignHash`](ksp-library-apis-sign-hash.md)À utiliser pour créer la signature.

`dwFlags`[en]  
Drapeaux permettant de modifier le comportement de la fonction. Les drapeaux autorisés dépendent du type de clé. Utilisez l'une des valeurs suivantes :    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/ksp-library-apis-verify-signature.html)

## Valeur renvoyée
<a name="ksp-library-apis-verify-signature-return-value"></a>

La fonction renvoie un code d'état indiquant le succès ou l'échec.

Les codes de retour courants incluent :


****  

| Code de retour | Description | 
| --- | --- | 
|  ERREUR\$1SUCCÈS  |  L'opération s'est terminée avec succès.  | 
|  PARAMÈTRE\$1INVALIDE  |  Un ou plusieurs paramètres ne sont pas valides.  | 
|  NOTE\$1FAIL  |  L'opération n'a pas pu être terminée.  | 
|  NOTE\$1INVALID\$1HANDLE  |  Le handle in n'`hKey`est pas valide.  | 
|  BATE\$1BAD\$1FLAGS  |  Le `dwFlags` paramètre contient une valeur non valide.  | 
|  NOTE\$1BAD\$1SIGNATURE  |  La signature n'a pas été vérifiée.  | 
|  NOTE\$1BAD\$1KEY\$1STATE  |  L'état de la clé n'est pas valide.  | 
|  ERREUR\$1INTERNE  |  Une erreur interne s'est produite lors de la vérification de la signature.  | 

# Configurations avancées pour KSP pour AWS CloudHSM
<a name="ksp-library-configs"></a>

Le AWS CloudHSM Key Storage Provider (KSP) inclut la configuration avancée suivante, qui ne fait pas partie des configurations générales utilisées par la plupart des clients. Ces configurations fournissent des fonctionnalités supplémentaires.
+ [SDK3 mode de compatibilité pour KSP](ksp-library-configs-sdk3-compatibility-mode.md)

# SDK3 mode de compatibilité pour le fournisseur de stockage de clés (KSP) pour AWS CloudHSM
<a name="ksp-library-configs-sdk3-compatibility-mode"></a>

Le fournisseur de stockage de clés (KSP) met en œuvre différentes approches pour l'interaction entre les clés HSM :
+ SDK client 5 : fournit une communication directe avec les clés stockées dans le HSM, éliminant ainsi le besoin de fichiers de référence locaux
+ SDK client 3 : gère les fichiers locaux sur le serveur Windows qui font office de références aux clés stockées dans le HSM, en utilisant ces fichiers pour faciliter les opérations clés

Pour les clients qui migrent du SDK client 3 vers le SDK client 5, l'activation de l'option du mode de SDK3 compatibilité prend en charge les opérations utilisant les fichiers de référence clés existants tout en préservant l'architecture de stockage de clés HSM sous-jacente.

## Activer le mode SDK3 de compatibilité
<a name="ksp-library-configs-sdk3-compatibility-mode-on"></a>

------
#### [ Windows ]

**Pour activer le mode de SDK3 compatibilité pour le fournisseur de stockage de clés (KSP) pour le SDK client 5 sous Windows**
+ Vous pouvez utiliser la commande suivante pour activer le mode de SDK3 compatibilité :

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" --enable-sdk3-compatibility-mode
  ```

------

## Désactiver le mode SDK3 de compatibilité
<a name="ksp-library-configs-sdk3-compatibility-mode-off"></a>

------
#### [ Windows ]

**Pour désactiver le mode de SDK3 compatibilité pour le fournisseur de stockage de clés (KSP) pour le SDK client 5 sous Windows**
+ Vous pouvez utiliser la commande suivante pour désactiver le mode de SDK3 compatibilité :

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" --disable-sdk3-compatibility-mode
  ```

------