

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.

# Exporter une copie en texte brut d'une AWS CloudHSM clé à l'aide de KMU
<a name="key_mgmt_util-exSymKey"></a>

Utilisez la **exSymKey** commande de l'outil AWS CloudHSM key\$1mgmt\$1util pour exporter une copie en texte brut d'une clé symétrique depuis le module de sécurité matérielle (HSM) et l'enregistrer dans un fichier sur disque. Pour exporter une copie chiffrée (encapsulée) d'une clé, utilisez [wrapKey](key_mgmt_util-wrapKey.md). Pour importer une clé en texte brut, comme celles qui sont `exSymKey` exportées, utilisez [imSymKey](key_mgmt_util-imSymKey.md).

Au cours du processus d'exportation, **exSymKey** utilise une clé AES que vous spécifiez (la *clé d'encapsulage*) pour *encapsuler* (chiffrer), puis *désencapsuler* (déchiffrer) la clé à exporter. Toutefois, le résultat de l'opération d'exportation est une clé en texte brut (*décapsulée*) sur disque.

Seul le propriétaire d'une clé, c'est-à-dire l'utilisateur de chiffrement ayant créé la clé, peut l'exporter. Les utilisateurs qui partagent la clé peut l'utiliser dans des opérations de chiffrement, mais ne peuvent pas l'exporter.

L'opération **exSymKey** copie les éléments de clé dans un fichier que vous spécifiez ; elle ne supprime pas la clé du HSM, ne modifie pas ses [attributs de clés](key-attribute-table.md) ou ne vous empêche pas de l'utiliser dans des opérations de chiffrement. Vous pouvez exporter la même clé plusieurs fois.

**exSymKey** exporte uniquement des clés symétriques. Pour exporter des clés publiques, utilisez [exportPubKey](key_mgmt_util-exportPubKey.md). Pour exporter des clés privées, utilisez [exportPrivateKey](key_mgmt_util-exportPrivateKey.md).

Avant d'exécuter une commande key\$1mgmt\$1util, vous devez [démarrer key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) et vous [connecter](key_mgmt_util-log-in.md) au HSM en tant qu'utilisateur de chiffrement (CU). 

## Syntaxe
<a name="exSymKey-syntax"></a>

```
exSymKey -h

exSymKey -k <key-to-export>
         -w <wrapping-key>
         -out <key-file>
         [-m 4] 
         [-wk <unwrapping-key-file> ]
```

## Exemples
<a name="exSymKey-examples"></a>

Ces exemples montrent comment **exSymKey** exporter les clés symétriques que vous possédez depuis votre HSMs.

**Example : Exporter une clé symétrique 3DES**  
Cette commande permet d'exporter une clé symétrique Triple DES (3DES) (poignée de clé `7`). Elle utilise une clé AES existante (handle de clé `6`) dans le HSM en tant que clé d'encapsulage. Ensuite, elle écrit le texte brut de la clé 3DES dans le fichier `3DES.key`.  
La sortie indique que la clé `7` (clé 3DES) a été correctement encapsulée et désencapsulée, puis écrite dans le fichier `3DES.key`.  
Bien que la sortie indique qu'une « clé symétrique encapsulée » a été écrite dans le fichier de sortie, ce dernier contient une clé en texte brut (désencapsulée).

```
        Command: exSymKey -k 7 -w 6 -out 3DES.key

       Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "3DES.key"
```

**Example : Exportation avec une clé d'encapsulage de session unique**  
Cet exemple montre comment utiliser une clé qui existe uniquement dans la session en tant que clé d'encapsulage. La clé à exporter étant encapsulée, immédiatement désencapsulée, et fournie sous forme de texte brut, il n'est pas nécessaire de conserver la clé d'encapsulage.  
Cette série de commandes permet d'exporter une clé AES avec le handle de clé `8` à partir du HSM. Elle utilise une clé de session AES créé spécialement à cet effet.  
La première commande permet [genSymKey](key_mgmt_util-genSymKey.md)de créer une clé AES 256 bits. Elle utilise le paramètre `-sess` pour créer une clé qui existe uniquement dans la session en cours.  
La sortie montre que le HSM crée la clé `262168`.  

```
        Command:  genSymKey -t 31 -s 32 -l AES-wrapping-key -sess

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 262168

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```
Ensuite, l'exemple vérifie que la clé à exporter (clé `8`) est une clé symétrique extractible. Il vérifie également que la clé de chiffrement (clé `262168`) est une clé AES qui existe uniquement dans la session. Vous pouvez utiliser la commande [findKey](key_mgmt_util-findKey.md), mais cet exemple exporte les attributs des deux clés vers des fichiers, puis utilise `grep` pour rechercher des valeurs d'attribut pertinents dans le fichier.  
Ces commandes utilisent `getAttribute` avec une valeur `-a` de `512` (tous) pour obtenir tous les attributs pour les clés `8` et `262168`. Pour plus d'informations sur les attributs de clé, consultez [AWS CloudHSM référence d'attribut clé pour KMU](key-attribute-table.md).  

```
getAttribute -o 8 -a 512 -out attributes/attr_8
getAttribute -o 262168 -a 512 -out attributes/attr_262168
```
Ces commandes utilisent `grep` pour vérifier les attributs de la clé à exporter (clé `8`) et la clé chiffrement de session unique (clé `262168`).  

```
    // Verify that the key to be exported is a symmetric key.
    $  grep -A 1 "OBJ_ATTR_CLASS" attributes/attr_8    
    OBJ_ATTR_CLASS
    0x04
   
    // Verify that the key to be exported is extractable.
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_8
    OBJ_ATTR_EXTRACTABLE
    0x00000001

    // Verify that the wrapping key is an AES key
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_262168
    OBJ_ATTR_KEY_TYPE
    0x1f

    // Verify that the wrapping key is a session key
    $  grep -A 1 "OBJ_ATTR_TOKEN" attributes/attr_262168
    OBJ_ATTR_TOKEN
    0x00    
    
    // Verify that the wrapping key can be used for wrapping
     $  grep -A 1 "OBJ_ATTR_WRAP" attributes/attr_262168
    OBJ_ATTR_WRAP
    0x00000001
```
Enfin, nous utilisons une commande **exSymKey** pour exporter la clé `8` à l'aide de la clé de session (clé `262168`) en tant que clé d'encapsulage.  
Lorsque la session prend fin, la clé `262168` n'existe plus.  

```
        Command:  exSymKey -k 8 -w 262168 -out aes256_H8.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "aes256_H8.key"
```

**Example : Utiliser une clé de désencapsulage externe**  
Cet exemple montre comment utiliser une clé de désencapsulage externe pour exporter une clé à partir du HSM.  
Lorsque vous exportez une clé à partir du HSM, vous spécifiez une clé AES sur le HSM qui sera utilisée en tant que clé d'encapsulage. Par défaut, cette clé d'encapsulage est utilisée pour encapsuler et désencapsuler la clé à exporter. Toutefois, vous pouvez utiliser le paramètre `-wk` pour indiquer à **exSymKey** d'utiliser une clé externe dans un fichier sur disque pour le désencapsulage. Dans ce cas, la clé spécifiée par le paramètre `-w` encapsule la clé cible, et la clé contenue dans le fichier et spécifiée par le paramètre `-wk` désencapsule la clé.   
La clé d'encapsulage devant être une clé AES, donc symétrique, la clé d'encapsulage sur le HSM et la clé de désencapsulage sur le disque doivent avoir les mêmes éléments de clé. Pour ce faire, vous devez importer dans le HSM ou exporter du HSM la clé d'encapsulage avant l'opération d'exportation.   
Cet exemple montre comment créer une clé en dehors du HSM et l'importer dans le HSM. Il utilise la copie interne de la clé pour encapsuler une clé symétrique en train d'être exportée, et la copie de la clé dans le fichier pour la désencapsuler.  
La première commande utilise OpenSSL pour générer une clé AES 256 bits. Elle enregistrer la clé dans le fichier `aes256-forImport.key`. La commande OpenSSL ne renvoie pas de sortie, mais vous pouvez utiliser plusieurs commandes pour confirmer sa réussite. Cet exemple utilise l'outil **wc** (nombre de mots), qui confirme que le fichier contient 32 octets de données.  

```
$  openssl rand -out keys/aes256-forImport.key 32

$ wc keys/aes256-forImport.key
 0  2 32 keys/aes256-forImport.key
```
Cette commande utilise la commande [imSymKey](key_mgmt_util-imSymKey.md) pour importer la clé AES à partir du fichier `aes256-forImport.key` dans le HSM. Lorsque la commande aboutit, la clé existe dans le HSM avec le handle de clé `262167` et dans le fichier `aes256-forImport.key`.  

```
Command:  imSymKey -f keys/aes256-forImport.key -t 31 -l aes256-imported -w 6

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 262167

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Cette commande utilise la clé dans une opération d'exportation. La commande utilise **exSymKey** pour exporter une clé `21`, une clé AES 192 bits. Pour encapsuler la clé, elle utilise la clé `262167`, qui est la copie ayant été importée dans le HSM. Pour désencapsuler la clé, elle utilise les mêmes éléments de clé dans le fichier `aes256-forImport.key`. Lorsque la commande aboutit, la clé `21` est exportée vers le fichier `aes192_h21.key`.  

```
        Command:  exSymKey -k 21 -w 262167 -out aes192_H21.key -wk aes256-forImport.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes192_H21.key"
```

## Parameters
<a name="exSymKey-params"></a>

**-h**  
Affiche l'aide concernant la commande.   
Obligatoire : oui

**-k**  
Spécifie le handle de clé de la clé à exporter. Ce paramètre est obligatoire. Entrez le handle de clé d'une clé symétrique qui vous appartient. Ce paramètre est obligatoire. Pour trouver des handles de clé, utilisez la commande [findKey](key_mgmt_util-findKey.md).  
Pour vérifier qu'une clé peut être exportée, utilisez la commande [getAttribute](key_mgmt_util-getAttribute.md) pour obtenir la valeur de l'attribut `OBJ_ATTR_EXTRACTABLE`, représentée par la constante `354`. De même, vous pouvez exporter uniquement les clés qui vous appartiennent. Pour trouver le propriétaire d'une clé, utilisez la [getKeyInfo](key_mgmt_util-getKeyInfo.md)commande.  
Obligatoire : oui

**-s, sem**  
Spécifie le handle de clé de la clé d'encapsulage. Ce paramètre est obligatoire. Pour trouver des handles de clé, utilisez la commande [findKey](key_mgmt_util-findKey.md).  
Une *clé d'encapsulage* est une clé du HSM utilisée pour chiffrer (encapsuler), puis déchiffrer (désencapsuler) la clé à exporter. Seules les clés AES peut être utilisées en tant que clés d'encapsulage.  
Vous pouvez utiliser n'importe quelle clé AES (quelle que soit sa taille) comme clé d'encapsulage. Puisque les clés d'encapsulage encapsulent, puis désencapsulent immédiatement la clé cible, vous pouvez utiliser des clés AES de session unique en tant que clé d'encapsulage. Pour déterminer si une clé peut être utilisée comme clé d'encapsulage, utilisez [getAttribute](key_mgmt_util-getAttribute.md) pour obtenir la valeur de l'attribut `OBJ_ATTR_WRAP`, représentée par la constante `262`. Pour créer une clé d'encapsulage, utilisez [genSymKey](key_mgmt_util-genSymKey.md) pour créer une clé AES (type 31).  
Si vous utilisez le paramètre `-wk` pour spécifier une clé de désencapsulage externe, la clé d'encapsulage `-w` est utilisée pour encapsuler, mais pas pour désencapsuler, la clé lors de l'exportation.  
Le de clé 4 représente une clé interne non prise en charge. Nous vous recommandons d'utiliser une clé AES que vous créez et gérez comme clé d'encapsulage.
Obligatoire : oui

**-out**  
Spécifie le chemin et le nom du fichier de sortie. Lorsque la commande aboutit, ce fichier contient la clé exportée en texte brut. Si le fichier existe déjà, la commande le remplace sans avertissement.  
Obligatoire : oui

**-m**  
Spécifie le mécanisme d'encapsulage. La seule valeur valide est `4`, qui représente le mécanisme `NIST_AES_WRAP`.  
Obligatoire : non  
Par défaut: 4

**-wk**  
Utilisez la clé AES dans le fichier spécifié pour désencapsuler la clé en cours d'exportation. Entrez le chemin et le nom d'un fichier qui contient une clé AES en texte brut.   
Lorsque vous incluez ce paramètre, `exSymKey` utilise la clé dans le HSM spécifiée par le paramètre `-w` pour encapsuler la clé en cours d'exportation, puis la clé spécifiée dans le fichier `-wk` pour la désencapsuler. La valeur des paramètres `-w` et `-wk` doivent correspondre à la même clé en texte brut.  
Obligatoire : non  
Par défaut : utilisez la clé d'encapsulage sur le HSM pour procéder au désencapsulage.

## Rubriques en relation
<a name="exSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)