

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.

# 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.