

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.

# bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-library"></a>

PKCS \$111 est une norme permettant d'effectuer des opérations cryptographiques sur des modules de sécurité matériels ()HSMs. AWS CloudHSM propose des implémentations de la bibliothèque PKCS \$111 conformes à la version 2.40 de PKCS \$111.

Pour plus d'informations sur l’amorçage, veuillez consulter [Connexion au cluster](cluster-connect.md). Pour le dépannage, voir[Problèmes connus relatifs à la bibliothèque PKCS \$111 pour AWS CloudHSMProblèmes connus pour la bibliothèque PKCS\$111](ki-pkcs11-sdk.md).

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

**Topics**
+ [Installation de la bibliothèque PKCS \$111](pkcs11-library-install.md)
+ [Authentifiez-vous auprès de la bibliothèque PKCS \$111](pkcs11-pin.md)
+ [Types de clé](pkcs11-key-types.md)
+ [Mécanismes](pkcs11-mechanisms.md)
+ [opérations d’API](pkcs11-apis.md)
+ [Attributs de clé](pkcs11-attributes.md)
+ [Exemples de code](pkcs11-samples.md)
+ [Configurations avancées.](pkcs11-library-configs.md)
+ [Stockage des certificats](pkcs11-certificate-storage.md)

# Installation de la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-library-install"></a>

Cette rubrique fournit des instructions pour installer la dernière version de la bibliothèque PKCS \$111 pour la série de versions 5 du SDK AWS CloudHSM client. Pour plus d'informations sur le SDK client ou la bibliothèque PKCS \$111, consultez la section [Utilisation du SDK client](use-hsm.md) et la [bibliothèque PKCS \$111](pkcs11-library.md).

Avec le SDK client 5, il n'est pas nécessaire d'installer ou d'exécuter un démon client. 

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 plus d'informations sur la bibliothèque PKCS \$111 dans le SDK client 5, consultez la section [bibliothèque PKCS \$111](pkcs11-library.md).

**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 e configurer la bibliothèque PKCS \$111**

1. Utilisez les commandes suivantes pour télécharger et installer la bibliothèque PKCS \$111.

------
#### [ Amazon Linux 2023 ]

   Installez la bibliothèque PKCS \$111 pour Amazon Linux 2023 sur une architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-pkcs11-latest.amzn2023.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.amzn2023.x86_64.rpm
   ```

   Installez la bibliothèque PKCS \$111 pour Amazon Linux 2023 sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-pkcs11-latest.amzn2023.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.amzn2023.aarch64.rpm
   ```

------
#### [ Amazon Linux 2 ]

   Installez la bibliothèque PKCS \$111 pour Amazon Linux 2 sur une architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-pkcs11-latest.el7.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el7.x86_64.rpm
   ```

   Installez la bibliothèque PKCS \$111 pour Amazon Linux 2 sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-pkcs11-latest.el7.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el7.aarch64.rpm
   ```

------
#### [ RHEL 10 (10.0\$1) ]

   Installez la bibliothèque PKCS \$111 pour RHEL 10 sur l'architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-pkcs11-latest.el10.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el10.x86_64.rpm
   ```

   Installez la bibliothèque PKCS \$111 pour RHEL 10 sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-pkcs11-latest.el10.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el10.aarch64.rpm
   ```

------
#### [ RHEL 9 (9.2\$1) ]

   Installez la bibliothèque PKCS \$111 pour RHEL 9 sur l'architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-pkcs11-latest.el9.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el9.x86_64.rpm
   ```

   Installez la bibliothèque PKCS \$111 pour RHEL 9 sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-pkcs11-latest.el9.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el9.aarch64.rpm
   ```

------
#### [ RHEL 8 (8.3\$1) ]

   Installez la bibliothèque PKCS \$111 pour RHEL 8 sur l'architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-pkcs11-latest.el8.x86_64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el8.x86_64.rpm
   ```

   Installez la bibliothèque PKCS \$111 pour RHEL 8 sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-pkcs11-latest.el8.aarch64.rpm
   ```

   ```
   $ sudo yum install ./cloudhsm-pkcs11-latest.el8.aarch64.rpm
   ```

------
#### [ Ubuntu 24.04 LTS ]

   Installez la bibliothèque PKCS \$111 pour Ubuntu 24.04 LTS sur l'architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-pkcs11_latest_u24.04_amd64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-pkcs11_latest_u24.04_amd64.deb
   ```

   Installez la bibliothèque PKCS \$111 pour Ubuntu 24.04 LTS sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-pkcs11_latest_u24.04_arm64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-pkcs11_latest_u24.04_arm64.deb
   ```

------
#### [ Ubuntu 22.04 LTS ]

   Installez la bibliothèque PKCS \$111 pour Ubuntu 22.04 LTS sur l'architecture X86\$164 :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-pkcs11_latest_u22.04_amd64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-pkcs11_latest_u22.04_amd64.deb
   ```

   Installez la bibliothèque PKCS \$111 pour Ubuntu 22.04 LTS sur ARM64 l'architecture :

   ```
   $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-pkcs11_latest_u22.04_arm64.deb
   ```

   ```
   $ sudo apt install ./cloudhsm-pkcs11_latest_u22.04_arm64.deb
   ```

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

   Installez la bibliothèque PKCS \$111 pour Windows Server sur une architecture X86\$164 :

   1. Téléchargez la [bibliothèque PKCS \$111 pour le SDK client 5](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMPKCS11-latest.msi).

   1. Exécutez le programme d'installation de la bibliothèque PKCS \$111 (**AWSCloudHSMPKCS11-latest.msi**) avec les privilèges d'administrateur Windows.

------

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 trouverez les fichiers de bibliothèque PKCS \$111 dans les emplacements suivants :
   + Binaires, scripts de configuration et fichiers journaux Linux :

     ```
     /opt/cloudhsm
     ```

     Binaires Windows :

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

     Scripts de configuration et fichiers journaux Windows :

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

# Authentifiez-vous auprès de la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-pin"></a>

Lorsque vous utilisez la bibliothèque PKCS \$111, votre application s'exécute en tant qu'[utilisateur cryptographique (CU)](manage-hsm-users.md) spécifique HSMs dans AWS CloudHSM votre fichier d'entrée. Votre application peut afficher et gérer uniquement les clés que le CU possède et partage. Vous pouvez utiliser une CU existante dans votre application HSMs ou en créer une nouvelle pour votre application. Pour plus d'informations sur la gestion CUs, voir [Gestion des utilisateurs HSM avec CloudHSM CLI et Gestion des utilisateurs HSM](manage-hsm-users-chsm-cli.md) [avec CloudHSM Management Utility](manage-hsm-users-cmu.md) (CMU)

Pour spécifier le CU pour PKCS \$111, utilisez le paramètre de code PIN PKCS \$111 [fonction C\$1Login](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc385057915). En AWS CloudHSM effet, le paramètre pin a le format suivant :

```
<CU_user_name>:<password>
```

Par exemple, la commande suivante définit le code PIN de bibliothèque PKCS \$111 sur le CU avec le nom d'utilisateur `CryptoUser` et le mot de passe `CUPassword123!`.

```
CryptoUser:CUPassword123!
```

# Types de clés pris en charge pour la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-key-types"></a>

La bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5 prend en charge les types de clés suivants.


****  

| Type de clé | Description | 
| --- | --- | 
| AES | Générez des clés AES de 128, 192 et 256 bits.  | 
| Triple DES (3DES), DESede | Générez des clés Triple DES 192 bits. Voir la note [1](#key-types-1) ci-dessous pour un changement à venir. | 
| EC | Générez des clés avec les courbes secp224r1 (P-224), secp256r1 (P-256), secp256k1 (Blockchain), secp384r1 (P-384) et secp521r1 (P-521). | 
| GENERIC\$1SECRET | Générez des secrets génériques de 1 à 800 octets. | 
| RSA | Générez des clés RSA de 2 048 bits à 4 096 bits, par incréments de 256 bits. | 

[1] Conformément aux directives du NIST, cela n'est pas autorisé pour les clusters en mode FIPS après 2023. Pour les clusters en mode non FIPS, cela est toujours autorisé après 2023. Consultez [Conformité à la norme FIPS 140 : mécanisme 2024 rendu obsolète](compliance-dep-notif.md#compliance-dep-notif-1) pour plus de détails.

# Mécanismes pris en charge pour la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-mechanisms"></a>

La bibliothèque PKCS \$111 est conforme à la version 2.40 de la spécification PKCS \$111. Pour appeler une fonction de chiffrement utilisant PKCS \$111, appelez une fonction à l'aide d'un mécanisme donné. Les sections suivantes résument les combinaisons de fonctions et de mécanismes pris en charge par AWS CloudHSM le SDK client 5. 

La bibliothèque PKCS \$111 prend en charge les algorithmes suivants :
+ **Chiffrement et déchiffrement** — AES-CBC, AES-CTR, AES-ECB, AES-GCM, -CBC, -ECB, RSA-OAEP et RSA-PKCS DES3 DES3
+ **Signature et vérification** : RSA, HMAC et ECDSA ; avec et sans hachage
+ **Hash/digest** — SHA1,, SHA224 SHA256, et SHA384 SHA512
+ **Encapsulage de clés** – AES Key Wrap,[1](#mech1) AES-GCM, RSA-AES et RSA-OAEP
+ **Dérivation de clés** — SP800 -108 Compter KDF et ECDH avec KDF (les algorithmes KDF pris en charge sont X9.63 avec,,,,) SHA1 SHA224 SHA256 SHA384 SHA512

**Topics**
+ [Génération de fonctions de clé et de paire de clés](#pkcs11-mech-function-genkey)
+ [Fonctions de signature et de vérification](#pkcs11-mech-function-signverify)
+ [Fonctions de récupération de signature et de récupération de vérification](#pkcs11-mech-function-sr-vr)
+ [Fonctions de résumé](#pkcs11-mech-function-digest)
+ [Fonctions de chiffrement et de déchiffrement](#pkcs11-mech-function-enc-dec)
+ [Fonctions de dérivation de clé](#pkcs11-mech-function-derive-key)
+ [Fonctions d'encapsulage et de désencapsulage](#pkcs11-mech-function-wrap-unwrap)
+ [Taille maximale des données pour chaque mécanisme](#pkcs11-mech-max)
+ [Annotations du mécanisme](#pkcs11-mech-annotations)

## Génération de fonctions de clé et de paire de clés
<a name="pkcs11-mech-function-genkey"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 vous permet d'utiliser les mécanismes suivants pour les fonctions Generate Key et Key Pair.
+ `CKM_RSA_PKCS_KEY_PAIR_GEN`
+ `CKM_RSA_X9_31_KEY_PAIR_GEN` – Le fonctionnement de ce mécanisme est identique au mécanisme `CKM_RSA_PKCS_KEY_PAIR_GEN`, mais offre de meilleures garanties pour la génération de `p` et `q`.
+ `CKM_EC_KEY_PAIR_GEN`
+ `CKM_GENERIC_SECRET_KEY_GEN`
+ `CKM_AES_KEY_GEN`
+ `CKM_DES3_KEY_GEN`— le changement à venir est indiqué dans la note de bas de page [5](#mech5).

## Fonctions de signature et de vérification
<a name="pkcs11-mech-function-signverify"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 vous permet d'utiliser les mécanismes suivants pour les fonctions de signature et de vérification. Avec le SDK client 5, les données sont hachées localement dans le logiciel. Cela signifie qu'il n'y a aucune limite quant à la taille des données pouvant être hachées par le SDK.

Avec le SDK client 5, le hachage RSA et ECDSA est effectué localement, il n'y a donc aucune limite de données. Avec HMAC, il existe une limite de données. Pour plus d'informations, consultez la note de bas de page [2](#mech2).

**RSA**
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` - Opérations à une seule partie uniquement.
+ `CKM_RSA_PKCS_PSS` - Opérations à une seule partie uniquement.
+ `CKM_SHA1_RSA_PKCS`
+ `CKM_SHA224_RSA_PKCS`
+ `CKM_SHA256_RSA_PKCS`
+ `CKM_SHA384_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA1_RSA_PKCS_PSS`
+ `CKM_SHA224_RSA_PKCS_PSS`
+ `CKM_SHA256_RSA_PKCS_PSS`
+ `CKM_SHA384_RSA_PKCS_PSS`
+ `CKM_SHA512_RSA_PKCS_PSS`

**ECDSA**
+ `CKM_ECDSA` - Opérations à une seule partie uniquement.
+ `CKM_ECDSA_SHA1`
+ `CKM_ECDSA_SHA224`
+ `CKM_ECDSA_SHA256`
+ `CKM_ECDSA_SHA384`
+ `CKM_ECDSA_SHA512`

**HMAC**
+ `CKM_SHA_1_HMAC`[2](#mech2)
+ `CKM_SHA224_HMAC`[2](#mech2)
+ `CKM_SHA256_HMAC`[2](#mech2)
+ `CKM_SHA384_HMAC`[2](#mech2)
+ `CKM_SHA512_HMAC`[2](#mech2)

**CMAC**
+ `CKM_AES_CMAC`

## Fonctions de récupération de signature et de récupération de vérification
<a name="pkcs11-mech-function-sr-vr"></a>

Le SDK client 5 ne prend pas en charge les fonctions de récupération de signature et de récupération de vérification.

## Fonctions de résumé
<a name="pkcs11-mech-function-digest"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 vous permet d'utiliser les mécanismes suivants pour les fonctions Digest. Avec le SDK client 5, les données sont hachées localement dans le logiciel. Cela signifie qu'il n'y a aucune limite quant à la taille des données pouvant être hachées par le SDK.
+ `CKM_SHA_1`
+ `CKM_SHA224`
+ `CKM_SHA256`
+ `CKM_SHA384`
+ `CKM_SHA512`

## Fonctions de chiffrement et de déchiffrement
<a name="pkcs11-mech-function-enc-dec"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 vous permet d'utiliser les mécanismes suivants pour les fonctions de chiffrement et de déchiffrement.
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` - Opérations à une seule partie uniquement. Modification à venir répertoriée dans la note de bas de page [5](#mech5).
+ `CKM_RSA_PKCS_OAEP` - Opérations à une seule partie uniquement.
+ `CKM_AES_ECB`
+ `CKM_AES_CTR`
+ `CKM_AES_CBC`
+ `CKM_AES_CBC_PAD`
+ `CKM_DES3_CBC`— le changement à venir est indiqué dans la note de bas de page [5](#mech5).
+ `CKM_DES3_ECB`— le changement à venir est indiqué dans la note de bas de page [5](#mech5).
+ `CKM_DES3_CBC_PAD`— le changement à venir est indiqué dans la note de bas de page [5](#mech5).
+  `CKM_AES_GCM` [1](#mech1), [2](#mech2)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)

## Fonctions de dérivation de clé
<a name="pkcs11-mech-function-derive-key"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 prend en charge les principaux mécanismes de dérivation suivants :
+ `CKM_SP800_108_COUNTER_KDF`
+ `CKM_ECDH1_DERIVE`- Supporte la dérivation de clés ECDH avec les types KDF suivants définis par le fournisseur : [6](#kdf6)
  + `CKD_CLOUDHSM_X963_SHA1_KDF`- X9.63 KDF avec SHA1 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA224_KDF`- X9.63 KDF avec SHA224 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA256_KDF`- X9.63 KDF avec SHA256 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA384_KDF`- X9.63 KDF avec SHA384 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA512_KDF`- X9.63 KDF avec SHA512 [7](#kdf7)

## Fonctions d'encapsulage et de désencapsulage
<a name="pkcs11-mech-function-wrap-unwrap"></a>

La bibliothèque AWS CloudHSM logicielle de la bibliothèque PKCS \$111 vous permet d'utiliser les mécanismes suivants pour les fonctions Wrap et Unwrap.

Pour plus d'informations sur l'encapsulage de clé AES, voir [Encapsulage de clé AES](manage-aes-key-wrapping.md). 
+ `CKM_RSA_PKCS` - Opérations à une seule partie uniquement. Une modification à venir est répertoriée dans la note de bas de page [5](#mech5).
+ `CKM_RSA_PKCS_OAEP`[4](#mech4)
+ `CKM_AES_GCM`[1](#mech1), [3](#mech3)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)
+ `CKM_RSA_AES_KEY_WRAP`
+ `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`[3](#mech3)

## Taille maximale des données pour chaque mécanisme
<a name="pkcs11-mech-max"></a>

Le tableau suivant répertorie la taille maximale des données définie pour chaque mécanisme :


**Taille maximale des jeux de données**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-mechanisms.html)

## Annotations du mécanisme
<a name="pkcs11-mech-annotations"></a>
+ [1] Lorsque vous procédez au chiffrement AES GCM, le HSM n'accepte pas de données du vecteur d'initialisation (VI) de l'application. Vous devez utiliser un vecteur d’initialisation qu’il génère. Le vecteur d'initialisation 12 octets fourni par le HSM est écrit dans la référence en mémoire vers lequel pointe l'élément pIV des paramètres `CK_GCM_PARAMS` de la structure que vous fournissez. Pour éviter toute confusion de l'utilisateur, le kit SDK PKCS\$111 version 1.1.1 et ultérieure s’assure que cet élément pIV pointe vers une mémoire tampon mise à zéro lorsque le chiffrement AES-GCM est initialisé.
+ [2] Lors de l’utilisation de données avec l’un des mécanismes suivants, si la mémoire tampon des données dépasse la taille maximale des données, l’opération génère une erreur. Pour ces mécanismes, tout le traitement des données doit avoir lieu à l'intérieur du HSM. Pour plus d'informations sur les ensembles de tailles de données maximales pour chaque mécanisme, reportez-vous à[Taille maximale des données pour chaque mécanisme](#pkcs11-mech-max).
+ [3] Mécanisme défini par le fournisseur. Afin d'utiliser les mécanismes définis par le fournisseur CloudHSM, les applications PKCS \$111 doivent inclure `/opt/cloudhsm/include/pkcs11/pkcs11t.h` lors de la compilation.

  `CKM_CLOUDHSM_AES_GCM` : Ce mécanisme propriétaire est une alternative plus sûre par programme à la norme `CKM_AES_GCM`. Il ajoute le IV généré par le HSM au chiffrement au lieu de l'écrire dans la structure `CK_GCM_PARAMS` fournie lors de l'initialisation du chiffrement. Vous pouvez utiliser ce mécanisme avec les fonctions `C_Encrypt`, `C_WrapKey`, `C_Decrypt` et `C_UnwrapKey`. Lors de l'utilisation de ce mécanisme, la variable PiV dans la structure `CK_GCM_PARAMS` doit être définie sur `NULL`. Lors de l'utilisation de ce mécanisme avec `C_Decrypt` et `C_UnwrapKey`, le IV doit être ajouté au texte chiffré qui est en cours de désencapsulage.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD` : Encapsulage des clés AES avec remplissage PKCS \$15

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD` : Encapsulage des clés AES avec remplissage à l'aide de zéros
+ [4] Les `CK_MECHANISM_TYPE` et `CK_RSA_PKCS_MGF_TYPE` suivants sont pris en charge en tant que `CK_RSA_PKCS_OAEP_PARAMS` pour `CKM_RSA_PKCS_OAEP`:
  + `CKM_SHA_1` utilisant `CKG_MGF1_SHA1`
  + `CKM_SHA224` utilisant `CKG_MGF1_SHA224`
  + `CKM_SHA256` utilisant `CKG_MGF1_SHA256`
  + `CKM_SHA384` utilisant `CKM_MGF1_SHA384`
  + `CKM_SHA512` utilisant `CKM_MGF1_SHA512`
+ [5] Conformément aux directives du NIST, cela n'est pas autorisé pour les clusters en mode FIPS après 2023. Pour les clusters en mode non FIPS, cela est toujours autorisé après 2023. Consultez [Conformité à la norme FIPS 140 : mécanisme 2024 rendu obsolète](compliance-dep-notif.md#compliance-dep-notif-1) pour plus de détails.
+ [6] Types définis par le fournisseur. Pour utiliser les types définis par le fournisseur CloudHSM, les applications PKCS \$111 doivent être incluses lors de la compilation. `cloudhsm_pkcs11_vendor_defs.h` Cela se trouve dans `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` pour les plateformes basées sur Linux et `C:\Program Files\Amazon\CloudHSM\include\pkcs11\cloudhsm_pkcs11_vendor_defs.h` pour les plateformes basées sur Windows
+ [7] Les principales fonctions de dérivation (KDFs) sont spécifiées dans la [publication spéciale 800-56A du NIST](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf), révision 3.

# Opérations d'API prises en charge pour la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-apis"></a>

La bibliothèque PKCS \$111 prend en charge les opérations d'API PKCS \$111 suivantes pour le SDK AWS CloudHSM client 5.
+ `C_CloseAllSessions`
+ `C_CloseSession`
+ `C_CreateObject`
+ `C_Decrypt`
+ `C_DecryptFinal`
+ `C_DecryptInit`
+ `C_DecryptUpdate`
+ `C_DeriveKey`
+ `C_DestroyObject`
+ `C_Digest`
+ `C_DigestFinal`
+ `C_DigestInit`
+ `C_DigestUpdate`
+ `C_Encrypt`
+ `C_EncryptFinal`
+ `C_EncryptInit`
+ `C_EncryptUpdate`
+ `C_Finalize`
+ `C_FindObjects`
+ `C_FindObjectsFinal`
+ `C_FindObjectsInit`
+ `C_GenerateKey`
+ `C_GenerateKeyPair`
+ `C_GenerateRandom`
+ `C_GetAttributeValue`
+ `C_GetFunctionList`
+ `C_GetInfo`
+ `C_GetMechanismInfo`
+ `C_GetMechanismList`
+ `C_GetSessionInfo`
+ `C_GetSlotInfo`
+ `C_GetSlotList`
+ `C_GetTokenInfo`
+ `C_Initialize`
+ `C_Login`
+ `C_Logout`
+ `C_OpenSession`
+ `C_Sign`
+ `C_SignFinal`
+ `C_SignInit`
+ `C_SignUpdate`
+ `C_UnWrapKey`
+ `C_Verify`
+ `C_VerifyFinal`
+ `C_VerifyInit`
+ `C_VerifyUpdate`
+ `C_WrapKey`

# Attributs clés de la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-attributes"></a>

Un objet AWS CloudHSM clé peut être une clé publique, privée ou secrète. Les actions autorisées sur un objet de clé sont spécifiées via des attributs. Les attributs sont définis lorsque l'objet de clé est créé. Lorsque vous utilisez la bibliothèque PKCS \$111 pour AWS CloudHSM, nous attribuons des valeurs par défaut conformément à la norme PKCS \$111.

AWS CloudHSM ne prend pas en charge tous les attributs répertoriés dans la spécification PKCS \$111. Nous nous conformons à la spécification pour tous les attributs que nous prenons en charge. Ces attributs sont indiqués dans les tableaux respectifs.

Les fonctions cryptographiques telles que `C_CreateObject`, `C_GenerateKey`, `C_GenerateKeyPair`, `C_UnwrapKey` et `C_DeriveKey` qui créent, modifient ou copient des objets utilisent un modèle d’attribut en tant que paramètre. Pour plus d'informations sur la transmission d'un modèle d’attributs lors de la création d’un objet, consultez les exemples dans [Génération de clés par la bibliothèque PKCS \$111](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate).

Les rubriques suivantes fournissent des informations supplémentaires sur les attributs AWS CloudHSM clés.

**Topics**
+ [Tableaux d'attributs](pkcs11-attributes-interpreting.md)
+ [Modification d’attributs](modify-attr.md)
+ [Interprétation des codes d'erreur](attr-errors.md)

# Tables d'attributs de bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-attributes-interpreting"></a>

Les tables de bibliothèque PKCS \$111 pour AWS CloudHSM contiennent une liste d'attributs qui diffèrent selon le type de clé. Il indique si un attribut donné est pris en charge pour un type de clé particulier lors de l'utilisation d'une fonction cryptographique spécifique avec AWS CloudHSM.

**Légende :**
+ ✔ indique que CloudHSM prend en charge l'attribut pour le type de clé spécifique.
+ ✖ indique que CloudHSM ne prend pas en charge l'attribut pour le type de clé spécifique.
+ R indique que la valeur de l'attribut est définie en lecture seule pour le type de clé spécifique.
+ S indique que l'attribut ne peut pas être lu par `GetAttributeValue` car sensible.
+ Une cellule vide dans la colonne Default Value (Valeur par défaut) indique qu'il n'y a aucune valeur par défaut attribuée à l'attribut.

## GenerateKeyPair
<a name="generatekeypair"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## GenerateKey
<a name="generatekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## CreateObject
<a name="createobject"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## UnwrapKey
<a name="unwrapkey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## DeriveKey
<a name="derivekey"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

## GetAttributeValue
<a name="getattributevalue"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/pkcs11-attributes-interpreting.html)

**Annotations d'attributs**
+ [1] Cet attribut est partiellement pris en charge par le micrologiciel et doit être explicitement défini sur la valeur par défaut.
+ [2] Attribut obligatoire.

# Modification des attributs de bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="modify-attr"></a>

Certains attributs de bibliothèque PKCS \$111 d'un AWS CloudHSM objet peuvent être modifiés une fois l'objet créé, alors que d'autres ne le peuvent pas. Pour modifier les attributs, utilisez la commande [key set-attribute](cloudhsm_cli-key-set-attribute.md) de la CLI CloudHSM. Vous pouvez également obtenir une liste d'attributs à l'aide de la commande [key list](cloudhsm_cli-key-list.md) de la CLI CloudHSM.

La liste suivante contient les attributs que vous pouvez modifier après la création de l'objet :
+ `CKA_LABEL`
+ `CKA_TOKEN`
**Note**  
La modification est autorisée uniquement pour changer une clé de session en une clé de jeton. Utilisez la commande [key set-attribute](cloudhsm_cli-key-set-attribute.md) de la CLI CloudHSM pour modifier la valeur de l'attribut.
+ `CKA_ENCRYPT`
+ `CKA_DECRYPT`
+ `CKA_SIGN`
+ `CKA_VERIFY`
+ `CKA_WRAP`
+ `CKA_UNWRAP`
+ `CKA_LABEL`
+ `CKA_SENSITIVE`
+ `CKA_DERIVE`
**Note**  
Cet attribut prend en charge la dérivation de clé. Il doit être `False` pour toutes les clés publiques et ne peut pas être défini sur `True`. Pour les clés privées EC et secrètes, il peut être défini sur `True` ou `False`.
+ `CKA_TRUSTED`
**Note**  
Cet attribut peut être défini sur `True` ou `False` par le responsable du chiffrement uniquement.
+ `CKA_WRAP_WITH_TRUSTED`
**Note**  
Appliquez cet attribut à une clé de données exportable pour indiquer que vous ne pouvez encapsuler cette clé qu'avec des clés marquées comme `CKA_TRUSTED`. Une fois `CKA_WRAP_WITH_TRUSTED` défini sur true, l'attribut passe en lecture seule et vous ne pouvez ni le modifier ni le supprimer.

# Interprétation des codes d'erreur de la bibliothèque PKCS \$111 pour AWS CloudHSM le SDK client 5
<a name="attr-errors"></a>

La spécification dans le modèle d'un attribut de bibliothèque PKCS \$111 qui n'est pas pris en charge par une clé spécifique entraîne une erreur. Le tableau suivant contient des codes d'erreur qui sont générés lorsque vous violez des spécifications :

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cloudhsm/latest/userguide/attr-errors.html)

# Exemples de code pour la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5
<a name="pkcs11-samples"></a>

Les exemples de code ci-dessous vous GitHub montrent comment accomplir des tâches de base à l'aide de la bibliothèque PKCS \$111 pour AWS CloudHSM le SDK client 5. 

## Conditions préalables
<a name="pkcs11-samples-prereqs"></a>

Avant d'exécuter les exemples, effectuez les étapes suivantes pour configurer votre environnement :
+ Installez et configurez la [bibliothèque PKCS \$111](pkcs11-library-install.md) pour le SDK client 5.
+ Configurez un [utilisateur de chiffrement(CU).](manage-hsm-users.md) Votre application utilise ce compte HSM pour exécuter les exemples de code sur le HSM.

## Exemples de code
<a name="pkcs11-samples-code"></a>

Des exemples de code pour la bibliothèque AWS CloudHSM logicielle de PKCS \$111 sont disponibles sur [GitHub](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples). Ce référentiel contient des exemples sur la façon d'effectuer des opérations courantes à l'aide de PKCS \$111, y compris le chiffrement, le déchiffrement, la signature et la vérification.
+ [Générer des clés (AES, RSA, EC)](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate)
+ [Afficher les attributs des clés](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/attributes/)
+ [Chiffrer et déchiffrer les données avec AES GCM](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/encrypt/aes_gcm.c)
+ [Chiffrer et déchiffrer les données avec AES\$1CTR](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/aes_ctr.c) 
+ [Chiffrer et déchiffrer les données avec 3DES](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/encrypt/des_ecb.c) 
+ [Signer et vérifier les données avec RSA](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/sign/rsa_sign.c)
+ [Dériver des clés à l'aide de HMAC KDF](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/derivation/hmac_kdf.c)
+ [Encapsuler et désencapsuler les clés avec AES en utilisant le remplissage PKCS \$15](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_wrapping.c)
+ [Encapsuler et désencapsuler les clés avec AES sans remplissage](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_no_padding_wrapping.c)
+ [Encapsuler et désencapsuler les clés avec AES à l'aide du remplissage avec des zéros](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/aes_zero_padding_wrapping.c)
+ [Encapsuler et désencapsuler les clés avec AES-GCM](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/wrapping/aes_gcm_wrapping.c)
+ [Encapsuler et désencapsuler les clés avec RSA](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/blob/master/src/wrapping/rsa_wrapping.c)

# Configurations avancées pour la bibliothèque PKCS \$111 pour AWS CloudHSM
<a name="pkcs11-library-configs"></a>

Le fournisseur AWS CloudHSM PKCS \$111 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.
+ [Connexion à plusieurs emplacements avec PKCS \$111](pkcs11-library-configs-multi-slot.md)
+ [Configuration de nouvelle tentative pour PKCS \$111](pkcs11-library-configs-retry.md)

# Configuration de plusieurs emplacements avec la bibliothèque PKCS \$111 pour AWS CloudHSM
<a name="pkcs11-library-configs-multi-slot"></a>

Un emplacement unique dans la bibliothèque PKCS \$111 du SDK client 5 représente une connexion unique à un cluster dans AWS CloudHSM. Avec le SDK client 5, vous pouvez configurer votre PKCS11 bibliothèque pour autoriser plusieurs emplacements à connecter les utilisateurs à plusieurs clusters CloudHSM à partir d'une seule application PKCS \$111. 

Suivez les instructions de cette rubrique pour que votre application utilise la fonctionnalité d’emplacements multiples pour se connecter à plusieurs clusters.

**Topics**
+ [Conditions préalables à plusieurs emplacements pour la bibliothèque PKCS \$111 pour AWS CloudHSM](#pkcs11-multi-slot-prereqs)
+ [Configurez la bibliothèque PKCS \$111 pour la fonctionnalité multi-slot pour AWS CloudHSM](pkcs11-multi-slot-config-run.md)
+ [Ajoutez un cluster doté d'une fonctionnalité multi-slot pour AWS CloudHSM](pkcs11-multi-slot-add-cluster.md)
+ [Supprimer un cluster doté d'une fonctionnalité multi-slot pour AWS CloudHSM](pkcs11-multi-slot-remove-cluster.md)

## Conditions préalables à plusieurs emplacements pour la bibliothèque PKCS \$111 pour AWS CloudHSM
<a name="pkcs11-multi-slot-prereqs"></a>

Avant de configurer plusieurs emplacements pour la bibliothèque PKCS \$111 pour AWS CloudHSM, remplissez les conditions préalables suivantes.
+ Au moins deux AWS CloudHSM clusters auxquels vous souhaitez vous connecter, ainsi que leurs certificats de cluster.
+ Une instance EC2 avec des groupes de sécurité correctement configurés pour se connecter à tous les clusters ci-dessus. Pour plus d'informations sur la configuration d'un cluster et de l'instance client, reportez-vous à la section [Mise en route avec AWS CloudHSM](getting-started.md).
+ Pour configurer la fonctionnalité d’emplacements multiples, vous devez avoir déjà téléchargé et installé la bibliothèque PKCS \$111. Si vous ne l'avez pas déjà fait, consultez les instructions figurant dans [Installation de la bibliothèque PKCS \$111 pour le SDK AWS CloudHSM client 5](pkcs11-library-install.md).

# Configurez la bibliothèque PKCS \$111 pour la fonctionnalité multi-slot pour AWS CloudHSM
<a name="pkcs11-multi-slot-config-run"></a>

Pour configurer votre bibliothèque PKCS \$111 pour la fonctionnalité multi-slot pour AWS CloudHSM, procédez comme suit :

1. Identifiez les clusters auxquels vous souhaitez vous connecter à l'aide de la fonctionnalité d’emplacements multiples.

1. Ajoutez ces clusters à votre configuration PKCS \$111 en suivant les instructions de [Ajoutez un cluster doté d'une fonctionnalité multi-slot pour AWS CloudHSM](pkcs11-multi-slot-add-cluster.md)

1. La prochaine fois que votre application PKCS \$111 s'exécutera, elle disposera d'une fonctionnalité d’emplacements multiples.

# Ajoutez un cluster doté d'une fonctionnalité multi-slot pour AWS CloudHSM
<a name="pkcs11-multi-slot-add-cluster"></a>

Lorsque vous vous [connectez à plusieurs emplacements avec PKCS \$111](pkcs11-library-configs-multi-slot.md) for AWS CloudHSM, utilisez la **configure-pkcs11 add-cluster** commande pour ajouter un cluster à votre configuration.

## Syntaxe
<a name="pkcs11-multi-slot-add-cluster-syntax"></a>

```
configure-pkcs11 add-cluster [OPTIONS]
        --cluster-id <CLUSTER ID> 
        [--region <REGION>]
        [--endpoint <ENDPOINT>]
        [--hsm-ca-cert <HSM CA CERTIFICATE FILE>]
        [--client-cert-hsm-tls-file <CLIENT CERTIFICATE FILE>]
        [--client-key-hsm-tls-file <CLIENT KEY FILE>]
        [-h, --help]
```

## Exemples
<a name="pkcs11-multi-slot-add-cluster-examples"></a>

### Ajoutez un cluster à l'aide du paramètre `cluster-id`
<a name="w2aac25c21c17c31b7c13b7b3b1"></a>

**Example**  
 Utilisez le paramètre **configure-pkcs11 add-cluster** ainsi que le paramètre `cluster-id` pour ajouter un cluster (avec l'ID de `cluster-1234567`) à votre configuration.   

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 add-cluster --cluster-id <cluster-1234567>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" add-cluster --cluster-id <cluster-1234567>
```

**Astuce**  
Si l'utilisation de **configure-pkcs11 add-cluster** avec le paramètre `cluster-id` n'entraîne pas l'ajout du cluster, reportez-vous à l'exemple suivant pour une version plus longue de cette commande qui nécessite également des paramètres `--region` et `--endpoint` pour identifier le cluster ajouté. Si, par exemple, la région du cluster est différente de celle configurée par défaut dans votre interface de ligne de commande AWS, vous devez utiliser le paramètre `--region` pour utiliser la bonne région. En outre, il est possible de spécifier le point de terminaison d' AWS CloudHSM API à utiliser pour l'appel, ce qui peut être nécessaire pour diverses configurations réseau, telles que l'utilisation de points de terminaison d'interface VPC qui n'utilisent pas le nom d'hôte DNS par défaut pour. AWS CloudHSM

### Ajouter un cluster à l'aide des paramètres `cluster-id`, `endpoint` et `region`
<a name="w2aac25c21c17c31b7c13b7b3b3"></a>

**Example**  
 Utilisez les paramètres **configure-pkcs11 add-cluster** ainsi que `cluster-id`, `endpoint` et `region` pour ajouter un cluster (avec l'ID de `cluster-1234567`) à votre configuration.   

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 add-cluster --cluster-id <cluster-1234567> --region <us-east-1> --endpoint <https://cloudhsmv2.us-east-1.amazonaws.com>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" add-cluster --cluster-id <cluster-1234567>--region <us-east-1> --endpoint <https://cloudhsmv2.us-east-1.amazonaws.com>
```

Pour plus d'informations sur les paramètres `--cluster-id`, `--region` et `--endpoint`, consultez [AWS CloudHSM Paramètres de configuration du SDK client 5](configure-tool-params5.md).

## Parameters
<a name="pkcs11-multi-slot-add-cluster-parameters"></a>

**--identifiant de cluster *<Cluster ID>***  
 Effectue un appel `DescribeClusters` pour rechercher toutes les adresses IP de l’interface réseau Elastic (ENI) du HSM du cluster associées à l'ID du cluster. Le système ajoute les adresses IP ENI aux fichiers AWS CloudHSM de configuration.  
Si vous utilisez le `--cluster-id` paramètre à partir d'une instance EC2 au sein d'un VPC qui n'a pas accès à l'Internet public, vous devez créer un point de terminaison VPC d'interface auquel vous connecter. AWS CloudHSM Pour plus d'informations sur les points de terminaison d'un VPC, veuillez consulter [AWS CloudHSM et points de terminaison VPC](cloudhsm-vpc-endpoint.md).
Obligatoire : oui

**--point de terminaison *<Endpoint>***  
Spécifiez le point de terminaison de l' AWS CloudHSM API utilisé pour effectuer l'`DescribeClusters`appel. Vous devez définir cette option en combinaison avec `--cluster-id`.   
Obligatoire : non

**--hsm-ca-cert *<HsmCA Certificate Filepath>***  
Spécifie le chemin du fichier vers le certificat HSM CA.  
Obligatoire : non

**--région *<Region>***  
Spécifiez la région de votre cluster. Vous devez définir cette option en combinaison avec `--cluster-id`.  
Si vous ne fournissez pas le paramètre `--region`, le système choisit la région en essayant de lire les variables d'environnement `AWS_DEFAULT_REGION` ou `AWS_REGION`. Si ces variables ne sont pas définies, le système vérifie la région associée à votre profil dans votre fichier AWS Config (généralement `~/.aws/config`), sauf si vous avez spécifié un autre fichier dans la variable d'environnement `AWS_CONFIG_FILE`. Si aucune des options ci-dessus n'est définie, le système utilise par défaut la région `us-east-1`.  
Obligatoire : non

**-- client-cert-hsm-tls -fichier *<client certificate hsm tls path>***  
 Chemin d'accès au certificat client utilisé pour l'authentification mutuelle TLS Client-HSM.   
 N'utilisez cette option que si vous avez enregistré au moins une ancre de confiance sur HSM avec la CLI CloudHSM. Vous devez définir cette option en combinaison avec `--client-key-hsm-tls-file`.   
Obligatoire : non

**-- client-key-hsm-tls -fichier *<client key hsm tls path>***  
 Chemin d'accès à la clé client utilisée pour l'authentification mutuelle TLS Client-HSM.   
 N'utilisez cette option que si vous avez enregistré au moins une ancre de confiance sur HSM avec la CLI CloudHSM. Vous devez définir cette option en combinaison avec `--client-cert-hsm-tls-file`.   
Obligatoire : non

# Supprimer un cluster doté d'une fonctionnalité multi-slot pour AWS CloudHSM
<a name="pkcs11-multi-slot-remove-cluster"></a>

Lorsque vous vous [connectez à plusieurs emplacements avec PKCS \$111](pkcs11-library-configs-multi-slot.md), utilisez la commande **configure-pkcs11 remove-cluster** pour supprimer un cluster des emplacements PKCS \$111 disponibles.

## Syntaxe
<a name="pkcs11-multi-slot-remove-cluster-syntax"></a>

```
configure-pkcs11 remove-cluster [OPTIONS]
        --cluster-id <CLUSTER ID>
        [-h, --help]
```

## Exemples
<a name="pkcs11-multi-slot-remove-cluster-examples"></a>

### Supprimer un cluster à l'aide du paramètre `cluster-id`
<a name="w2aac25c21c17c31b7c15b7b3b1"></a>

**Example**  
 Utilisez le paramètre **configure-pkcs11 remove-cluster** ainsi que le paramètre `cluster-id` pour supprimer un cluster (avec l'ID de `cluster-1234567`) de votre configuration.   

```
$ sudo /opt/cloudhsm/bin/configure-pkcs11 remove-cluster --cluster-id <cluster-1234567>
```

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" remove-cluster --cluster-id <cluster-1234567>
```

Pour plus d’informations sur le paramètre `--cluster-id`, consultez [AWS CloudHSM Paramètres de configuration du SDK client 5](configure-tool-params5.md).

## Paramètre
<a name="pkcs11-multi-slot-remove-cluster-parameters"></a>

**--identifiant de cluster *<Cluster ID>***  
 L'ID du cluster à supprimer de la configuration  
Obligatoire : oui

# Commandes de nouvelle tentative pour la bibliothèque PKCS \$111 pour AWS CloudHSM
<a name="pkcs11-library-configs-retry"></a>

AWS CloudHSM Le SDK client 5.8.0 et versions ultérieures disposent d'une stratégie de relance automatique intégrée qui permet de réessayer les opérations limitées par HSM du côté client. Lorsqu'un HSM limite les opérations parce qu'il est trop occupé à effectuer les opérations précédentes et qu'il ne peut pas prendre plus de demandes, le client SDKs tente de réessayer les opérations limitées jusqu'à 3 fois tout en reculant de façon exponentielle. Cette stratégie de nouvelle tentative automatique peut être réglée sur l'un des deux modes suivants : **désactivé** et **standard**.
+ **désactivé** : le SDK client n'exécutera aucune stratégie de nouvelle tentative pour les opérations limitées effectuées par le HSM.
+ **standard** : il s'agit du mode par défaut pour le SDK client 5.8.0 et versions ultérieures. Dans ce mode, le client SDKs réessaiera automatiquement les opérations limitées en reculant de manière exponentielle.

Pour de plus amples informations, veuillez consulter [Limitation du HSM](troubleshoot-hsm-throttling.md).

## Définir des commandes de nouvelle tentative sur le mode désactivé
<a name="w2aac25c21c17c31b9b9"></a>

------
#### [ Linux ]

**Pour définir les commandes de nouvelle tentative sur **off** pour le SDK client 5 sous Linux**
+ Vous pouvez utiliser la commande suivante pour définir une nouvelle tentative de configuration sur le mode **off** :

  ```
  $ sudo /opt/cloudhsm/bin/configure-pkcs11 --default-retry-mode off
  ```

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

**Pour définir les commandes de nouvelle tentative sur **off** pour le SDK client 5 sous Windows**
+ Vous pouvez utiliser la commande suivante pour définir une nouvelle tentative de configuration sur le mode**off** :

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --default-retry-mode off
  ```

------

# Stockage de certificats avec la bibliothèque PKCS \$111
<a name="pkcs11-certificate-storage"></a>

 La bibliothèque PKCS \$111 d'AWS CloudHSM prend en charge le stockage des certificats de clé publique en tant qu' « objets publics » (tels que définis dans PKCS \$111 2.40) sur des clusters hsm2m.medium. Cette fonctionnalité permet aux sessions PKCS \$111 publiques et privées de créer, récupérer, modifier et supprimer des certificats de clé publique. 

 Pour utiliser le stockage de certificats avec la bibliothèque PKCS \$111, vous devez l'activer dans la configuration de votre client. Une fois activé, vous pouvez gérer les objets de certificat depuis vos applications PKCS \$111. Les opérations qui s'appliquent à la fois au certificat et aux objets clés, tels que [C\$1 FindObjects](http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html#_Toc323205461), renverront les résultats du stockage des clés et des certificats. 

**Topics**
+ [Activer le stockage des certificats](pkcs11-certificate-storage-configuration.md)
+ [API de stockage de certificats](pkcs11-certificate-storage-api.md)
+ [Attributs du certificat](pkcs11-certificate-storage-attributes.md)
+ [Journaux d'audit du stockage des certificats](pkcs11-certificate-storage-audit-logs.md)

# Activation du stockage des certificats
<a name="pkcs11-certificate-storage-configuration"></a>

 Vous pouvez activer le stockage de certificats sur les clusters hsm2m.medium à l'aide de l'outil de configuration de bibliothèque PKCS \$111. Cette fonctionnalité est disponible dans les versions 5.13 et ultérieures du SDK. Pour obtenir la liste des opérations qui prennent en charge le type d'objet de certificat, consultez[Opérations de l'API de stockage de certificats](pkcs11-certificate-storage-api.md). 

 Pour activer le stockage des certificats, procédez comme suit pour votre système d'exploitation : 

------
#### [ Linux ]
+ 

****Activer le stockage des certificats****  
Exécutez la commande suivante :

  ```
  $ sudo /opt/cloudhsm/bin/configure-pkcs11 --enable-certificate-storage
  ```

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

****Activer le stockage des certificats****  
Ouvrez une invite de commande et exécutez la commande suivante :

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" --enable-certificate-storage
  ```

------

# Opérations de l'API de stockage de certificats
<a name="pkcs11-certificate-storage-api"></a>

 Les opérations PKCS \$111 suivantes prennent en charge le type d'objet de certificat (`CKO_CERTIFICATE`) : 

## Opérations générales de certification
<a name="general-certificate-operations"></a>

**`C_CreateObject`**  
Crée un nouvel objet de certificat.

**`C_DestroyObject`**  
Supprime un objet de certificat existant.

**`C_GetAttributeValue`**  
Obtient la valeur d'un ou de plusieurs attributs d'un objet de certificat.

**`C_SetAttributeValue`**  
Met à jour la valeur d'un ou de plusieurs attributs d'un objet de certificat.

## Opérations de recherche d'objets de certificat
<a name="certificate-object-search-operations"></a>

**`C_FindObjectsInit`**  
Lance une recherche d'objets de certificat.

**`C_FindObjects`**  
Poursuit la recherche d'objets de certificat.

**`C_FindObjectsFinal`**  
Met fin à la recherche d'objets de certificat.

# Attributs de stockage des certificats
<a name="pkcs11-certificate-storage-attributes"></a>

 Le tableau suivant répertorie les attributs d'objet de certificat pris en charge et leurs valeurs : 


| Attribut | Valeur par défaut | Description | 
| --- | --- | --- | 
| `CKA_CLASS` | Obligatoire | Doit indiquer `CKO_CERTIFICATE`. | 
| `CKA_TOKEN` | True |  Doit indiquer `True`. | 
| `CKA_MODIFIABLE` | True | Doit indiquer `True`. | 
| `CKA_PRIVATE` | False | Doit indiquer `False`. | 
| `CKA_LABEL` | Vide | Limite de 127 caractères. | 
| `CKA_COPYABLE` | False | Doit indiquer `False`. | 
| `CKA_DESTROYABLE` | True | Doit indiquer `True`. | 
| `CKA_CERTIFICATE_TYPE` | Obligatoire | Doit indiquer `CKC_X_509`. | 
| `CKA_TRUSTED` | False | Doit indiquer `False`. | 
| `CKA_CERTIFICATE_CATEGORY` | `CK_CERTIFICATE_CATEGORY_UNSPECIFIED` | Doit indiquer `CK_CERTIFICATE_CATEGORY_UNSPECIFIED`. | 
| `CKA_CHECK_VALUE` | Dérivé de `CKA_VALUE` | Réglé automatiquement en fonction de`CKA_VALUE`. | 
| `CKA_START_DATE` | Vide | Date « pas avant » du certificat. | 
| `CKA_END_DATE` | Vide | Date « non postérieure » du certificat. | 
| `CKA_PUBLIC_KEY_INFO` | Vide | La taille maximale est de 16 kilo-octets. | 
| `CKA_SUBJECT` | Obligatoire | L'objet du certificat. | 
| `CKA_ID` | Vide | La taille maximale est de 128 octets. L'unicité n'est pas imposée. | 
| `CKA_ISSUER` | Vide | L'émetteur du certificat. | 
| `CKA_SERIAL_NUMBER` | Vide | Numéro de série du certificat. | 
| `CKA_VALUE` | Obligatoire | La taille maximale est de 32 kilo-octets. | 

# Journaux d'audit du stockage des certificats
<a name="pkcs11-certificate-storage-audit-logs"></a>

 AWS CloudHSM écrit des journaux d'audit pour les opérations de stockage de certificats qui modifient les données dans un flux de journal CloudWatch Amazon Events distinct au sein du groupe de journaux de votre cluster CloudWatch . Ce flux de journal porte le nom du cluster, et non d'un HSM spécifique au sein du cluster. 

 Pour plus d'informations sur l'accès aux connexions d'audit CloudWatch, consultez[Utilisation d'Amazon CloudWatch Logs et AWS CloudHSM d'Audit Logs](get-hsm-audit-logs-using-cloudwatch.md). 

## Champs de saisie du journal
<a name="pkcs11-certificate-storage-audit-logs-fields"></a>

`object_handle`  
Identifiant unique de l'objet de certificat.

`op_code`  
L'opération effectuée ou tentée. Valeurs possibles :  
+ `CreateObject`
+ `DestroyObject`
+ `SetAttributeValues`

`response`  
`OK`si l'opération a réussi, ou l'un des types d'erreur suivants :  
+ `DuplicateAttribute`
+ `InvalidAttributeValue`
+ `ObjectNotFound`
+ `MaxObjectsReached`
+ `InternalFailure`

`attributes`  
Les attributs modifiés, le cas échéant.

`timestamp`  
Heure à laquelle l'opération s'est produite, en millisecondes depuis l'ère Unix.

## Exemples de journaux d’audit
<a name="pkcs11-certificate-storage-audit-logs-examples"></a>

### CreateObject exemple
<a name="pkcs11-certificate-storage-audit-logs-examples-create"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "CreateObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482483671
}
```

### DestroyObject exemple
<a name="pkcs11-certificate-storage-audit-logs-examples-delete"></a>

```
{
    "object_handle": 463180677312929947,
    "op_code": "DestroyObject",
    "response": "OK",
    "attributes": null,
    "timestamp": 1725482484559
}
```

### SetAttributeValues exemple
<a name="pkcs11-certificate-storage-audit-logs-examples-set"></a>

```
{
    "object_handle": 463180678453346687,
    "op_code": "SetAttributeValues",
    "response": "OK",
    "attributes": [
        "Label"
    ],
    "timestamp": 1725482488004
}
```

### CreateObject Exemple infructueux
<a name="pkcs11-certificate-storage-audit-logs-examples-error"></a>

```
{
    "object_handle": null,
    "op_code": "CreateObject",
    "response": "MaxObjectsReached",
    "attributes": null,
    "timestamp": 1726084937125
}
```