

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Referência para comandos do AWS CloudHSM Key Management Utility
<a name="key_mgmt_util-reference"></a>

A ferramenta de linha de comando **key\$1mgmt\$1util** ajuda você a gerenciar chaves nos módulos de segurança de hardware (HSM) em seu AWS CloudHSM cluster, incluindo criar, excluir e localizar chaves e seus atributos. Ela inclui vários comandos, cada um descrito em detalhes neste tópico.

Para começar rapidamente, consulte [Começando com AWS CloudHSM key\$1mgmt\$1util](key_mgmt_util-getting-started.md). Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md). Para obter informações sobre a ferramenta de linha de comando cloudhsm\$1mgmt\$1util, que inclui comandos para gerenciar o HSM e os usuários em seu cluster, consulte [AWS CloudHSM Utilitário de gerenciamento (CMU)](cloudhsm_mgmt_util.md). 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

Para listar todos os comandos key\$1mgmt\$1util, digite:

```
Command: help
```

Para obter ajuda para um comando específico da cloudhsm\$1mgmt\$1util, digite:

```
Command: <command-name> -h
```

Para encerrar sua sessão key\$1mgmt\$1util, digite:

```
Command: exit
```

Os seguintes tópicos descrevem comandos na key\$1mgmt\$1util.

**nota**  
Alguns comandos no key\$1mgmt\$1util e cloudhsm\$1mgmt\$1util têm os mesmos nomes. No entanto, os comandos normalmente têm sintaxe diferente, saída diferente e funcionalidade ligeiramente diferente.


| Command | Description | 
| --- | --- | 
|  [aesWrapUnwrap](key_mgmt_util-aesWrapUnwrap.md) | Criptografa e descriptografa o conteúdo de uma chave em um arquivo. | 
| [deleteKey](key_mgmt_util-deleteKey.md) | Exclui uma chave do HSMs. | 
| [Error2String](key_mgmt_util-Error2String.md) | Obtém o erro que corresponde a um código de erro hexadecimal da cloudhsm\$1mgmt\$1util. | 
| [exit](key_mgmt_util-exit.md) | Encerra a sessão da key\$1mgmt\$1util. | 
| [exportPrivateKey](key_mgmt_util-exportPrivateKey.md) | Exporta uma cópia de uma chave privada de um HSM para um arquivo no disco. | 
| [exportPubKey](key_mgmt_util-exportPubKey.md) | Exporta uma cópia de uma chave pública de um HSM para um arquivo. | 
| [exSymKey](key_mgmt_util-exSymKey.md) | Exporta uma cópia em texto simples de uma chave simétrica do HSMs para um arquivo. | 
| [extractMaskedObject](key_mgmt_util-extractMaskedObject.md) | Extrai uma chave de um HSM como um arquivo de objeto mascarado. | 
| [findKey](key_mgmt_util-findKey.md) | Procure chaves por valor de atributo de chave. | 
| [findSingleKey](key_mgmt_util-findSingleKey.md) |  Verifica se existe uma chave em tudo HSMs no cluster. | 
| [2 gênios DSAKey Pair](key_mgmt_util-genDSAKeyPair.md) |  Gera um par de chaves do [Algoritmo de Assinatura Digital](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) (DSA) em seu HSMs. | 
| [2 gênios ECCKey Pair](key_mgmt_util-genECCKeyPair.md) |  Gera um par de chaves de [criptografia de curva elíptica](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) (ECC) em seu. HSMs | 
| [2 gênios RSAKey Pair](key_mgmt_util-genRSAKeyPair.md) |  Gera um par de chaves assimétricas [RSA](https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29) em seu. HSMs | 
| [genSymKey](key_mgmt_util-genSymKey.md) |  Gera uma chave simétrica em seu HSMs | 
| [getAttribute](key_mgmt_util-getAttribute.md) |  Obtém os valores dos atributos para uma chave do AWS CloudHSM e os grava em um arquivo. | 
| [getCaviumPrivChave](key_mgmt_util-getCaviumPrivKey.md) |  Cria uma versão em formato PEM falsa de uma chave privada e a exporta para um arquivo.  | 
| [getCert](key_mgmt_util-getCert.md) |  Recupera certificados de partições do HSM e os salva em um arquivo.  | 
| [getKeyInfo](key_mgmt_util-getKeyInfo.md) |  Obtém o usuário do HSM IDs dos usuários que podem usar a chave.  Se a chave for controlada por quorum, ele obtém o número de usuários no quorum. | 
| [help](key_mgmt_util-help.md) |  Exibe informações de ajuda sobre os comandos disponíveis na cloudhsm\$1mgmt\$1util.  | 
| [importPrivateKey](key_mgmt_util-importPrivateKey.md) | Importa uma chave privada para um HSM. | 
| [importPubKey](key_mgmt_util-importPubKey.md) | Importa uma chave pública para um HSM. | 
| [imSymKey](key_mgmt_util-imSymKey.md) |  Importa uma cópia em texto simples de uma chave simétrica de um arquivo para o HSM.  | 
| [insertMaskedObject](key_mgmt_util-insertMaskedObject.md) | Insere um objeto mascarado de um arquivo no disco em um HSM contido pelo cluster relacionado ao cluster de origem do objeto. Clusters relacionados são quaisquer clusters [gerados a partir de um backup do cluster de origem](create-cluster-from-backup.md). | 
| [Valide o arquivo de chave usando AWS CloudHSM o KMU](key_mgmt_util-IsValidKeyHandlefile.md) | Determina se um determinado arquivo contém ou não uma chave privada real ou uma chave PEM de exemplo. | 
| [listAttributes](key_mgmt_util-listAttributes.md) |  Lista os atributos de uma AWS CloudHSM chave e as constantes que os representam. | 
| [listUsers](key_mgmt_util-listUsers.md) |  Obtém os usuários no HSMs, seu tipo e ID de usuário e outros atributos.  | 
| [loginHSM e logoutHSM](key_mgmt_util-loginHSM.md) |  Faça login e saia do HSMs em um cluster.  | 
| [setAttribute](key_mgmt_util-setAttribute.md) | Converte uma chave de sessão em uma chave persistente. | 
| [sign](key_mgmt_util-sign.md) | Gere uma assinatura para um arquivo usando uma chave privada escolhida. | 
| [unWrapKey](key_mgmt_util-unwrapKey.md) |  Importa uma chave encapsulada (criptografada) de um arquivo para HSMs o. | 
| [verify](key_mgmt_util-verify.md) | Verifica se uma determinada chave foi usada para assinar um determinado arquivo. | 
| [wrapKey](key_mgmt_util-wrapKey.md) |  Exporta uma cópia criptografada de uma chave do HSM para um arquivo.  | 

# Criptografe e descriptografe qualquer arquivo usando o KMU AWS CloudHSM
<a name="key_mgmt_util-aesWrapUnwrap"></a>

Use o **aesWrapUnwrap** comando em AWS CloudHSM key\$1mgmt\$1util para criptografar ou descriptografar o conteúdo de um arquivo no disco. Este comando foi projetado para encapsular e desencapsular chaves de criptografia, mas você pode usá-lo em qualquer arquivo que contenha menos de 4 KB (4096 bytes) de dados.

O **aesWrapUnwrap** usa o Agrupamento de chaves AES com preenchimento PKCS \$15. Ele usa uma chave AES no HSM como a chave de encapsulamento ou desencapsulamento. Em seguida, ele grava o resultado em outro arquivo no disco. 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="aesWrapUnwrap-syntax"></a>

```
aesWrapUnwrap -h

aesWrapUnwrap -m <wrap-unwrap mode>
              -f <file-to-wrap-unwrap> 
              -w <wrapping-key-handle>               
              [-i <wrapping-IV>] 
              [-out <output-file>]
```

## Exemplos
<a name="aesWrapUnwrap-examples"></a>

Esses exemplos mostram como usar **aesWrapUnwrap** para criptografar e descriptografar uma chave de criptografia em um arquivo. 

**Example : encapsular uma chave de criptografia**  
Esse comando usa **aesWrapUnwrap** para encapsular uma chave simétrica Triple DES que foi [exportada do HSM em texto simples](key_mgmt_util-exSymKey.md) para o arquivo `3DES.key`. Você pode usar um comando semelhante para remover qualquer chave salva em um arquivo.   
O comando usa o parâmetro `-m` com um valor de `1` para indicar o modo de enrolamento. Ele usa o parâmetro `-w` para especificar uma chave AES no HSM (identificador de chave `6`) como a chave de encapsulamento. Ele grava a chave encapsulada resultante no arquivo `3DES.key.wrapped`.  
A saída mostra que o comando foi bem-sucedido e que a operação usou o IV padrão, o que é preferido.  

```
 Command:  aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
49 49 E2 D0 11 C1 97 22
17 43 BD E3 4E F4 12 75
8D C1 34 CF 26 10 3A 8D
6D 0A 7B D5 D3 E8 4D C2
79 09 08 61 94 68 51 B7

result written to file 3DES.key.wrapped

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : desencapsular uma chave de criptografia**  
Este exemplo mostra como usar **aesWrapUnwrap** para desempacotar (desencapsular) uma chave encapsulada (criptografada) em um arquivo. Você pode querer fazer uma operação como essa antes de importar uma chave para o HSM. Por exemplo, se você tentar usar o [imSymKey](key_mgmt_util-imSymKey.md)comando para importar uma chave criptografada, ele retornará um erro porque a chave criptografada não tem o formato necessário para uma chave de texto simples desse tipo.  
O comando desencapsula a chave no arquivo `3DES.key.wrapped` e grava o texto simples no arquivo `3DES.key.unwrapped`. O comando usa o parâmetro `-m` com um valor de `0` para indicar o modo de desencapsulamento. Ele usa o parâmetro `-w` para especificar uma chave AES no HSM (identificador de chave `6`) como a chave de encapsulamento. Ele grava a chave encapsulada resultante no arquivo `3DES.key.unwrapped`.   

```
 Command:  aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
14 90 D7 AD D6 E4 F5 FA
A1 95 6F 24 89 79 F3 EE
37 21 E6 54 1F 3B 8D 62

result written to file 3DES.key.unwrapped

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="aesWrapUnwrap-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-m**  
Especifica o modo. Para encapsular (criptografar) o conteúdo do arquivo, digite `1`; para desencapsular (descriptografar) o conteúdo do arquivo, digite `0`.  
Obrigatório: Sim

**-f**  
Especifica o arquivo a ser encapsulado. Insira um arquivo que contenha menos de 4 KB (4096 bytes) de dados. Essa operação foi projetada para encapsular e desencapsular chaves de criptografia.  
Obrigatório: Sim

**-w**  
Especifica a chave de encapsulamento. Insira o identificador de uma chave AES no HSM. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Para criar uma chave de empacotamento, use [genSymKey](key_mgmt_util-genSymKey.md)para gerar uma chave AES (tipo 31).  
Obrigatório: Sim

**-i**  
Especifica um valor inicial alternativo (IV) para o algoritmo. Use o valor padrão, a menos que você tenha uma condição especial que exija uma alternativa.  
Padrão: `0xA6A6A6A6A6A6A6A6`. O valor padrão é definido na especificação do algoritmo [AES Key Wrap](https://tools.ietf.org/html/rfc3394).  
Obrigatório: não

**-out**  
Especifica um nome alternativo para o arquivo de saída que contém a chave encapsulada ou desencapsulada. O padrão é `wrapped_key` (para operações de encapsulamento) e `unwrapped_key` (para operações de desencapsulamento) no diretório local.  
Se o arquivo existir, o **aesWrapUnwrap** o substituirá sem aviso prévio. Se o comando falhar, **aesWrapUnwrap** criará um arquivo de saída sem conteúdo.  
Padrão: Para encapsulamento: `wrapped_key`. Para desencapsulamento: `unwrapped_key`.  
Obrigatório: não

## Tópicos relacionados
<a name="aesWrapUnwrap-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)

# Excluir uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-deleteKey"></a>

Use o **deleteKey** comando no AWS CloudHSM key\$1mgmt\$1util para excluir uma chave do módulo de segurança de hardware (HSM) em um cluster. AWS CloudHSM Você só pode excluir uma chave por vez. A exclusão de uma chave em um par de chaves não tem efeito na outra chave do par.

Somente o proprietário da chave pode excluí-la. Os usuários que compartilham a chave podem usá-la em operações criptográficas, mas não podem excluí-la. 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="deleteKey-syntax"></a>

```
deleteKey -h 

deleteKey -k
```

## Exemplos
<a name="deleteKey-examples"></a>

Esses exemplos mostram como usar **deleteKey** para excluir chaves do seu HSMs.

**Example : excluir uma chave**  
Esse comando exclui a chave com identificador de chave `6`. Quando o comando é bem-sucedido, **deleteKey** retorna mensagens de sucesso de cada HSM do cluster.  

```
Command: deleteKey -k 6

        Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : excluir uma chave (falha)**  
Quando o comando falha porque nenhuma chave possui o identificador de chave especificado, **deleteKey** retorna uma mensagem de erro de identificador de objeto inválido.  

```
Command: deleteKey -k 252126

        Cfm3FindKey returned: 0xa8 : HSM Error: Invalid object handle is passed to this operation

        Cluster Error Status
        Node id 1 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation
        Node id 2 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation
```
Quando o comando falhar porque o usuário atual não é o proprietário da chave, o comando retorna um erro de acesso negado.  

```
Command:  deleteKey -k 262152

Cfm3DeleteKey returned: 0xc6 : HSM Error: Key Access is denied.
```

## Parâmetros
<a name="deleteKey-parameters"></a>

**-h**  
Exibe a ajuda da linha de comando para o comando.   
Obrigatório: Sim

**-k**  
Especifica o identificador de chave da chave a ser excluída. Para encontrar os identificadores das chaves no HSM, use [findKey](key_mgmt_util-findKey.md).  
Obrigatório: Sim

## Tópicos relacionados
<a name="deleteKey-seealso"></a>
+ [findKey](key_mgmt_util-findKey.md)

# Descreva um AWS CloudHSM erro ao usar o KMU
<a name="key_mgmt_util-Error2String"></a>

Use o comando **Error2String** auxiliar no AWS CloudHSM key\$1mgmt\$1util para retornar o erro que corresponde a um código de erro hexadecimal key\$1mgmt\$1util. Você pode usar esse comando ao solucionar problemas com comandos e scripts.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="Error2String-syntax"></a>

```
Error2String -h

Error2String -r <response-code>
```

## Exemplos
<a name="Error2String-examples"></a>

Estes exemplos mostram como usar **Error2String** para obter a string de erro para um código de erro da key\$1mgmt\$1util. 

**Example : Obter uma descrição do erro**  
Esse comando obtém a descrição do erro para o código de erro `0xdb`. A descrição explica que uma tentativa de fazer login na key\$1mgmt\$1util falhou porque o usuário possui o tipo de usuário errado. Somente usuários de criptografia (CU) podem fazer login na key\$1mgmt\$1util.  

```
        Command:  Error2String -r 0xdb
        
        Error Code db maps to HSM Error: Invalid User Type.
```

**Example : Encontrar o código de erro**  
Este exemplo mostra onde encontrar o código de erro em um erro da key\$1mgmt\$1util. O código de erro, `0xc6`, aparece após a string: `Cfm3<command-name> returned: `.  
Neste exemplo, [getKeyInfo](key_mgmt_util-getKeyInfo.md)indica que o usuário atual (usuário 4) pode usar a chave em operações criptográficas. No entanto, quando o usuário tenta usar [deleteKey](key_mgmt_util-deleteKey.md) para excluir a chave, o comando retorna o código de erro `0xc6`.   

```
        Command:  deleteKey -k 262162

        Cfm3DeleteKey returned: <0xc6> : HSM Error: Key Access is denied

        Cluster Error Status

        Command:  getKeyInfo -k 262162
        
        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 1 user(s):

                4
```
Se o erro `0xc6` for reportado, você poderá usar um comando **Error2String** como esse para procurar o erro. Nesse caso, o comando `deleteKey` falhou com um erro de acesso negado porque a chave é compartilhada com o usuário atual, mas possuída por um usuário diferente. Somente os proprietários de chaves têm permissão para excluir uma chave.  

```
        Command:  Error2String -r 0xa8
        
        Error Code c6 maps to HSM Error: Key Access is denied
```

## Parâmetros
<a name="Error2String-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-r**  
Especifica um código de erro hexadecimal. É necessário o indicador de hexadecimal `0x`.  
Obrigatório: Sim

# Saia da AWS CloudHSM KMU
<a name="key_mgmt_util-exit"></a>

Use o **exit** comando no key\$1mgmt\$1util para sair do AWS CloudHSM key\$1mgmt\$1util. Após a saída bem-sucedida, você retornará à sua linha de comando padrão.

Antes de executar qualquer comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start).

## Sintaxe
<a name="exit-syntax"></a>

```
exit
```

## Parâmetros
<a name="exit-parameters"></a>

Não há parâmetros para esse comando.

## Tópicos relacionados
<a name="exit-seealso"></a>
+ [Iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start)

# Exportar uma AWS CloudHSM chave privada usando KMU
<a name="key_mgmt_util-exportPrivateKey"></a>

Use o **exportPrivateKey** comando no AWS CloudHSM key\$1mgmt\$1util para exportar uma chave privada assimétrica de um módulo de segurança de hardware (HSM) para um arquivo. O HSM não permite a exportação direta de chaves em texto não criptografado. O comando agrupa a chave privada usando uma chave de agrupamento AES que você especifica, descriptografa os bytes agrupados e copia a chave privada de texto não criptografado em um arquivo.

O comando **exportPrivateKey** não remove a chave do HSM nem altera os [atributos de chave](key-attribute-table.md) ou impede que você use a chave em outras operações criptográficas. É possível exportar a mesma chave várias vezes.

Você só pode exportar chaves privadas que têm o atributo `OBJ_ATTR_EXTRACTABLE` com o valor `1`. Você deve especificar uma chave de agrupamento AES que tenha atributos de valor `1` `OBJ_ATTR_WRAP` e `OBJ_ATTR_DECRYPT`. Para encontrar os atributos de uma chave, use o comando [**getAttribute**](key_mgmt_util-getAttribute.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="exportPrivateKey-syntax"></a>

```
exportPrivateKey -h

exportPrivateKey -k <private-key-handle>
                 -w <wrapping-key-handle>
                 -out <key-file>
                 [-m <wrapping-mechanism>]
                 [-wk <wrapping-key-file>]
```

## Exemplos
<a name="exportPrivateKey-examples"></a>

Este exemplo mostra como usar **exportPrivateKey** para exportar uma chave privada de um HSM.

**Example : Export a Private Key**  
Esse comando exporta uma chave privada com o identificador `15` usando uma chave de encapsulamento com o identificador `16` para um arquivo PEM chamado `exportKey.pem`. Quando o comando é bem-sucedido, **exportPrivateKey** retorna uma mensagem de êxito.  

```
Command: exportPrivateKey -k 15 -w 16 -out exportKey.pem

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

PEM formatted private key is written to exportKey.pem
```

## Parâmetros
<a name="exportPrivateKey-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-k`**  
Especifica o identificador de chave da chave privada a ser exportada.  
Obrigatório: Sim

**`-w`**  
Especifica o identificador de chave da chave de encapsulamento. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [**findKey**](key_mgmt_util-findKey.md).  
Para determinar se uma chave pode ser usada como uma chave de encapsulamento, use [**getAttribute**](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP` (262). Para criar uma chave de encapsulamento, use [**genSymKey**](key_mgmt_util-genSymKey.md) a fim de criar uma chave AES (digite 31).  
Se você usar o parâmetro `-wk` para especificar uma chave de desencapsulamento externa, a chave de encapsulamento `-w` será usada para encapsular, mas não para desencapsular, a chave durante a exportação.  
Obrigatório: Sim

**`-out`**  
Especifica o nome do arquivo no qual a chave privada exportada será gravada.  
Obrigatório: Sim

**`-m`**  
Especifica o mecanismo de encapsulamento com o qual encapsular a chave privada que está sendo exportada. O único valor válido é `4`, que representa `NIST_AES_WRAP mechanism.`  
Padrão: 4 (`NIST_AES_WRAP`)  
Obrigatório: não

**`-wk`**  
Especifica a chave a ser usada para desencapsular a chave que está sendo exportada. Insira o caminho e o nome de um arquivo que contém uma chave AES de texto simples.  
Durante a inclusão desse parâmetro. **exportPrivateKey** usa a chave no arquivo `-w` para encapsular a chave que está sendo exportada e usa a chave especificada no parâmetro `-wk` para desencapsulá-la.  
Padrão: use a chave de encapsulamento especificada no parâmetro `-w` para encapsular e desencapsular.  
Obrigatório: não

## Tópicos relacionados
<a name="exportPrivateKey-seealso"></a>
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)

# Exportar uma AWS CloudHSM chave pública usando KMU
<a name="key_mgmt_util-exportPubKey"></a>

Use o **exportPubKey** comando no AWS CloudHSM key\$1mgmt\$1util para exportar uma chave pública em um HSM para um arquivo. Você pode usá-lo para exportar chaves públicas que você gera em um HSM. Você também pode usar esse comando para exportar chaves públicas que foram importadas para um HSM, como as importadas com o comando **[**importPubKey**](key_mgmt_util-importPubKey.md)**.

A operação **exportPubKey** copia o material de chave emum arquivo especificado por você. Mas ele não remove a chave do HSM nem altera os [atributos de chave](key-attribute-table.md) ou impede que você use a chave em outras operações criptográficas. É possível exportar a mesma chave várias vezes.

Você só pode exportar chaves públicas que têm um valor `OBJ_ATTR_EXTRACTABLE` de `1`. Para encontrar os atributos de uma chave, use o comando **[getAttribute](key_mgmt_util-getAttribute.md)**.

Para executar um comando da `key_mgmt_util`, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="exportPubKey-syntax"></a>

```
exportPubKey -h

exportPubKey -k <public-key-handle>
             -out <key-file>
```

## Exemplos
<a name="exportPubKey-examples"></a>

Este exemplo mostra como usar **exportPubKey** para exportar uma chave pública de um HSM.

**Example : Export a Public Key**  
Esse comando exporta uma chave pública com identificador `10` para um arquivo chamado `public.pem`. Quando o comando é bem-sucedido, **exportPubKey** retorna uma mensagem de êxito.  

```
Command: exportPubKey -k 10 -out public.pem

PEM formatted public key is written to public.pem

Cfm3ExportPubKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="exportPubKey-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-k`**  
Especifica o identificador de chave da chave pública a ser exportada.  
Obrigatório: Sim

**`-out`**  
Especifica o nome do arquivo no qual a chave pública exportada será gravada.  
Obrigatório: Sim

## Tópicos relacionados
<a name="exportPubKey-seealso"></a>
+ [importPubKey](key_mgmt_util-importPubKey.md)
+ [Gerar chaves](generate-keys.md)

# Exportar uma cópia em texto simples de uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-exSymKey"></a>

Use o **exSymKey** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para exportar uma cópia em texto simples de uma chave simétrica do módulo de segurança de hardware (HSM) e salvá-la em um arquivo no disco. Para exportar uma cópia criptografada (encapsulada) de uma chave, use [wrapKey](key_mgmt_util-wrapKey.md). Para importar uma chave de texto simples, como as que `exSymKey` exportam, use. [imSymKey](key_mgmt_util-imSymKey.md)

Durante o processo de exportação, **exSymKey** usa uma chave AES que você especifica (a *chave de encapsulamento*) para *encapsular* (criptografar) e depois *desencapsular* (descriptografar) a chave a ser exportada. No entanto, o resultado da operação de exportação é uma chave em texto simples (*desencapsulada*) no disco.

Somente o proprietário de uma chave, ou seja, o usuário CU que a criou, pode exportá-la. Os usuários que compartilham a chave podem usá-la em operações de criptografia, mas não podem exportá-la.

A operação **exSymKey** copia o material da chave para um arquivo que você especifica, mas não remove a chave do HSM, altera seus [atributos de chave](key-attribute-table.md) ou impede que você a use em operações criptográficas. É possível exportar a mesma chave várias vezes.

**exSymKey** exporta apenas chaves simétricas. Para exportar chaves públicas, use [exportPubKey](key_mgmt_util-exportPubKey.md). Para exportar chaves privadas, use [exportPrivateKey](key_mgmt_util-exportPrivateKey.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

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

```
exSymKey -h

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

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

Esses exemplos mostram como usar para **exSymKey** exportar chaves simétricas que você possui do seu HSMs.

**Example : Exportar uma chave simétrica 3DES**  
Esse comando exporta uma chave simétrica Triple DES (3DES) (identificador de chave `7`). Ele usa uma chave AES existente (identificador de chave `6`) no HSM como chave de encapsulamento. Em seguida, ele grava o texto simples da chave 3DES no arquivo `3DES.key`.  
A saída mostra que a chave `7` (a tecla 3DES) foi encapsulada e desencapsulada com êxito e, em seguida, gravada no arquivo `3DES.key`.  
Embora a saída diga que uma "Chave simétrica encapsulada" foi gravada no arquivo de saída, este último contém uma chave em texto simples (desencapsulada).

```
        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 : Exportar com a chave de encapsulamento somente para sessão**  
Este exemplo mostra como usar uma chave que existe apenas na sessão como a chave de encapsulamento. Como a chave a ser exportada é encapsulada, imediatamente desencapsulada e fornecida como texto simples, não há necessidade de reter a chave de encapsulamento.  
Esta série de comandos exporta uma chave AES com o identificador de chave `8` do HSM. Ela usa uma chave de sessão AES criada especialmente para esse propósito.  
O primeiro comando é usado [genSymKey](key_mgmt_util-genSymKey.md)para criar uma chave AES de 256 bits. Ele usa o parâmetro `-sess` para criar uma chave que existe apenas na sessão atual.  
A saída mostra que o HSM cria a chave `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
```
Em seguida, o exemplo verifica se a chave `8`, a chave a ser exportada, é uma chave simétrica extraível. Ele também verifica se a chave de encapsulamento, `262168`, é uma chave AES que existe apenas na sessão. Você pode usar o comando [findKey](key_mgmt_util-findKey.md), mas esse exemplo exporta os atributos de ambas as chaves para arquivos e, em seguida, usa `grep` para encontrar valores de atributos relevantes no arquivo.  
Esses comandos usam `getAttribute` com um valor `-a` de `512` (tudo) para obter todos os atributos para as chaves `8` e `262168`. Para obter informações sobre os atributos de chaves, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  

```
getAttribute -o 8 -a 512 -out attributes/attr_8
getAttribute -o 262168 -a 512 -out attributes/attr_262168
```
Esses comandos usam `grep` para verificar os atributos da chave a ser exportada (chave `8`) e da chave de encapsulamento somente da sessão (chave `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
```
Por último, usamos um comando **exSymKey** para exportar a chave `8` usando a chave de sessão (chave `262168`) como a chave de encapsulamento.  
Quando a sessão terminar, a chave `262168` não existirá mais.  

```
        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 : Usar uma chave de desencapsulamento externa**  
Este exemplo mostra como usar uma chave de desencapsulamento externa para exportar uma chave do HSM.  
Ao exportar uma chave do HSM, você especifica uma chave AES no HSM para ser a chave de encapsulamento. Por padrão, essa chave de encapsulamento é usada para encapsular e desencapsular a chave a ser exportada. No entanto, você pode usar o parâmetro `-wk` para instruir **exSymKey** a usar uma chave externa em um arquivo no disco para desencapsulamento. Ao fazer isso, a chave especificada pelo parâmetro `-w` encapsula a chave de destino e a chave no arquivo especificado pelo parâmetro `-wk` desencapsula a chave.   
Como a chave de encapsulamento deve ser uma chave AES, que é simétrica, a chave de encapsulamento no HSM e a chave no disco devem ter o mesmo material de chave. Para fazer isso, você deve importar a chave de encapsulamento para o HSM ou exportá-la do HSM antes da operação de exportação.   
Esse exemplo cria uma chave fora do HSM e a importa para o HSM. Ele usa a cópia interna da chave para encapsular uma chave simétrica que está sendo exportada e usa a cópia dessa chave no arquivo para desencapsulá-la.  
O primeiro comando usa o OpenSSL para gerar uma chave AES de 256 bits. Ele salva a chave no arquivo `aes256-forImport.key`. O comando OpenSSL não retorna saída, mas você pode usar vários comandos para confirmar seu sucesso. Este exemplo usa a ferramenta **wc** (contagem de palavras), que confirma que o arquivo tem 32 bytes de dados.  

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

$ wc keys/aes256-forImport.key
 0  2 32 keys/aes256-forImport.key
```
Esse comando usa o comando [imSymKey](key_mgmt_util-imSymKey.md) para importar a chave AES do arquivo `aes256-forImport.key` para o HSM. Quando o comando é concluído, a chave existe no HSM com o identificador de chave `262167` e no arquivo `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
```
Esse comando usa a chave em uma operação de exportação. O comando usa **exSymKey** para exportar a chave `21`, uma chave AES de 192 bits. Para encapsular a chave, ele usa a chave `262167`, que é a cópia que foi importada para o HSM. Para desempacotar a chave, ela usa o mesmo material de chave no arquivo `aes256-forImport.key`. Quando o comando for concluído, a chave `21` será exportada para o arquivo `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"
```

## Parâmetros
<a name="exSymKey-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-k**  
Especifica o identificador de chave da chave a ser exportada. Esse parâmetro é obrigatório. Insira o identificador de chave de uma chave simétrica que você possui. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Para verificar se uma chave pode ser exportada, use o comando [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_EXTRACTABLE`, que é representado pela constante `354`. Além disso, você pode exportar apenas as chaves que você possui. Para encontrar o proprietário de uma chave, use o [getKeyInfo](key_mgmt_util-getKeyInfo.md)comando.  
Obrigatório: Sim

**-w**  
Especifica o identificador de chave da chave de encapsulamento. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Uma *chave de encapsulamento* é uma chave no HSM que é usada para criptografar (encapsular) e depois descriptografar (desencapsular) a chave a ser exportada. Somente as chaves AES podem ser usadas como chaves de encapsulamento.  
Você pode usar qualquer chave do AES (de qualquer tamanho) como uma chave de encapsulamento. Como a chave de encapsulamento encapsula e depois desencapsula imediatamente a chave de destino, você pode usar como chave AES somente de sessão como uma chave de encapsulamento. Para determinar se uma chave pode ser usada como uma chave de encapsulamento, use [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP`, que é representado pela constante `262`. Para criar uma chave de encapsulamento, use [genSymKey](key_mgmt_util-genSymKey.md) a fim de criar uma chave AES (digite 31).  
Se você usar o parâmetro `-wk` para especificar uma chave de desencapsulamento externa, a chave de encapsulamento `-w` será usada para encapsular, mas não para desencapsular, a chave durante a exportação.  
A chave 4 representa uma chave interna sem suporte. Recomendamos usar uma chave AES criada e gerenciada por você como a chave de encapsulamento.
Obrigatório: Sim

**-out**  
Especifica o caminho e o nome do arquivo de saída. Quando o comando é bem-sucedido, esse arquivo contém a chave exportada em texto simples. Se o arquivo já existir, o comando o sobrescreverá sem aviso prévio.  
Obrigatório: Sim

**-m**  
Especifica o mecanismo de encapsulamento. O único valor válido é `4`, que representa o mecanismo `NIST_AES_WRAP`.  
Obrigatório: não  
Padrão: 4

**-wk**  
Use a chave AES no arquivo especificado para desencapsular a chave que está sendo exportada. Insira o caminho e o nome de um arquivo que contém uma chave AES de texto simples.   
Durante a inclusão desse parâmetro. `exSymKey` usa a chave no arquivo no HSM especificada pelo parâmetro `-w` para encapsular a chave que está sendo exportada e usa a chave no arquivo `-wk` para desencapsulá-la. Os valores dos parâmetros `-w` e `-wk` devem ser resolvidos para a mesma chave de texto simples.  
Obrigatório: não  
Padrão: use a chave de encapsulamento no HSM para desencapsular.

## Tópicos relacionados
<a name="exSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)

# Extraia uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-extractMaskedObject"></a>

Use o **extractMaskedObject** comando no AWS CloudHSM key\$1mgmt\$1util para extrair uma chave de um módulo de segurança de hardware (HSM) e salvá-la em um arquivo como um objeto mascarado. Objetos mascarados são objetos *clonados* que só podem ser usados após serem inseridos novamente no cluster original usando o comando **[insertMaskedObject](key_mgmt_util-insertMaskedObject.md)**. Você só pode inserir um objeto mascarado no mesmo cluster do qual ele foi gerado ou em um clone desse cluster. Isso inclui quaisquer versões clonadas do cluster geradas ao [copiar um backup entre regiões](copy-backup-to-region.md) e [usar esse backup para criar um novo cluster](create-cluster-from-backup.md).

Objetos mascarados são uma maneira eficiente de descarregar e sincronizar chaves, incluindo chaves nonextractable (isto é, chaves que têm um [`OBJ_ATTR_EXTRACTABLE`](key-attribute-table.md) valor de `0`). [Dessa forma, as chaves podem ser sincronizadas com segurança entre clusters relacionados em diferentes regiões sem a necessidade de atualizar o AWS CloudHSM arquivo de configuração.](configure-tool.md)

**Importante**  
Na inserção, os objetos mascarados são descriptografados e recebem um identificador de chave diferente do identificador de chave da chave original. Um objeto mascarado inclui todos os metadados associados à chave original, inclusive atributos, informações de propriedade e compartilhamento e configurações de quórum. Se você precisa sincronizar as chaves em clusters em um aplicativo, use [syncKey](cloudhsm_mgmt_util-syncKey.md) cloudhsm\$1mgmt\$1util instead.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM. O comando **extractMaskedObject** pode ser usado pelo CU que possui a chave ou qualquer CO.

## Sintaxe
<a name="extractMaskedObject-syntax"></a>

```
extractMaskedObject -h

extractMaskedObject -o <object-handle>
                    -out <object-file>
```

## Exemplos
<a name="extractMaskedObject-examples"></a>

Este exemplo mostra como usar **extractMaskedObject** para extrair uma chave de um HSM como um objeto mascarado.

**Example : Extract a Masked Object**  
Esse comando extrai um objeto mascarado de um HSM a partir de uma chave com identificador `524295` e a salva como um arquivo chamado `maskedObj`. Quando o comando é bem-sucedido, **extractMaskedObject** retorna uma mensagem de êxito.  

```
Command: extractMaskedObject -o 524295 -out maskedObj

Object was masked and written to file "maskedObj"

        Cfm3ExtractMaskedObject returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="extractMaskedObject-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-o`**  
Especifica o identificador da chave a ser extraída como um objeto mascarado.  
Obrigatório: Sim

**`-out`**  
Especifica o nome do arquivo no qual o objeto mascarado será salvo.  
Obrigatório: Sim

## Tópicos relacionados
<a name="extractMaskedObject-seealso"></a>
+ [insertMaskedObject](key_mgmt_util-insertMaskedObject.md)
+ [syncKey](cloudhsm_mgmt_util-syncKey.md)
+ [Copiar um backup entre regiões](copy-backup-to-region.md)
+ [Criando um AWS CloudHSM cluster a partir de um backup anterior](create-cluster-from-backup.md)

# Pesquise AWS CloudHSM chaves por atributos usando KMU
<a name="key_mgmt_util-findKey"></a>

Use o **findKey** comando no AWS CloudHSM key\$1mgmt\$1util para pesquisar chaves pelos valores dos atributos da chave. Quando uma chave corresponder a todos os critérios que você definir, **findKey** retornará o identificador de chave. Sem parâmetros, **findKey** retorna os identificadores de chave de todas as chaves que você pode usar no HSM. Para encontrar os valores de atributo de uma determinada chave, use [getAttribute](key_mgmt_util-getAttribute.md).

Como todos os comandos de key\$1mgmt\$1util, **findKey** é específico do usuário. Ele retorna apenas as chaves que o usuário atual pode usar em operações criptográficas. Isso inclui chaves que o usuário atual possui e as chaves que foram compartilhadas com ele. 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="findKey-syntax"></a>

```
findKey -h 

findKey [-c <key class>] 
        [-t <key type>]
        [-l <key label>] 
        [-id <key ID>]
        [-sess (0 | 1)] 
        [-u <user-ids>]
        [-m <modulus>]
        [-kcv <key_check_value>]
```

## Exemplos
<a name="findKey-examples"></a>

Esses exemplos mostram como usar **findKey** para encontrar e identificar chaves em seu HSMs.

**Example : Encontrar todas as chaves**  
Esse comando encontra todas as chaves para o usuário atual no HSM. A saída inclui chaves que o usuário possui e compartilha, e todas as chaves públicas no HSMs.  
Para obter os atributos de uma chave com um identificador de chave específico, use [getAttribute](key_mgmt_util-getAttribute.md). Para determinar se o usuário atual possui ou compartilha uma chave específica, use [getKeyInfo](key_mgmt_util-getKeyInfo.md)ou [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)em cloudhsm\$1mgmt\$1util.  

```
Command: findKey

Total number of keys present 13

 number of keys matched from start index 0::12
6, 7, 524296, 9, 262154, 262155, 262156, 262157, 262158, 262159, 262160, 262161, 262162

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : Encontrar chaves por tipo, usuário e sessão**  
Este comando encontra chaves AES persistentes que o usuário atual e o usuário 3 podem usar. (O usuário 3 pode usar outras chaves que o usuário atual não pode ver.)  

```
Command: findKey -t 31 -sess 0 -u 3
```

**Example : Encontrar chaves por classe e rótulo**  
Este comando encontra todas as chaves públicas para o usuário atual com o rótulo `2018-sept`.  

```
Command: findKey -c 2 -l 2018-sept
```

**Example : Encontrar chaves RSA por módulo**  
Este comando encontra as chaves RSA (tipo 0) para o usuário atual que foram criadas usando o módulo no arquivo `m4.txt`.  

```
Command: findKey -t 0 -m m4.txt
```

## Parâmetros
<a name="findKey-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-t**  
Encontra chaves do tipo especificado. Insira a constante que representa a classe de chave. Por exemplo, para encontrar chaves 3DES, digite `-t 21`.  
Valores válidos:   
+ 0: [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem))
+ 1: [DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)
+ 3: [EC](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography)
+ 16: [GENERIC\$1SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962)
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4)
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES)
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Obrigatório: não

**-c**  
Localiza chaves na classe especificada. Insira a constante que representa a classe de chave. Por exemplo, para encontrar chaves públicas, digite `-c 2`.  
Valores válidos para cada tipo de chave:  
+ 2: Pública. Essa classe contém as chaves públicas dos pares de chaves públicas-privadas.
+ 3: Privada. Essa classe contém as chaves privadas dos pares de chaves públicas-privadas.
+ 4: Secreta. Essa classe contém todas as chaves simétricas.
Obrigatório: não

**-l**  
Encontra chaves com o rótulo especificado. Digite o rótulo exato. Você não pode usar caracteres curinga ou expressões regulares no valor `--l`.  
Obrigatório: não

**-id**  
Encontra a chave com o ID especificado. Digite a string de ID exata. Você não pode usar caracteres curinga ou expressões regulares no valor `-id`.  
Obrigatório: não

**-sess**  
Localiza chaves por status da sessão. Para encontrar as chaves válidas apenas na sessão atual, digite `1`. Para localizar chaves persistentes, digite `0`.  
Obrigatório: não

**-u**  
Encontra as chaves dos usuários especificados e o compartilhamento de usuários atual. Digite uma lista separada por vírgulas de usuários do HSM IDs, como ou. `-u 3` `-u 4,7` Para encontrar o número IDs de usuários em um HSM, use [ListUsers](key_mgmt_util-listUsers.md).  
Quando você especifica um ID de usuário, **findKey** retorna as chaves para esse usuário. Quando você especifica vários usuários IDs, **findKey** retorna as chaves que todos os usuários especificados podem usar.  
Como **findKey** simplesmente retorna as chaves que o usuário atual pode usar, os resultados de `-u` são sempre idênticos às, ou um subconjunto das, chaves do usuário atual. Para obter todas as chaves pertencentes a ou compartilhadas com qualquer usuário, os agentes criptográficos (COs) podem usar [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)em cloudhsm\$1mgmt\$1util.  
Obrigatório: não

**-m**  
Localiza as chaves que foram criadas usando o módulo RSA no arquivo especificado. Digite o caminho para o arquivo que armazena o módulo.  
-m especifica o arquivo binário que contém o módulo RSA a ser correspondido (opcional).  
Obrigatório: não

**-kcv**  
Encontra chaves com o valor de verificação de chave especificado.  
O *key check value* (KCV – valor de verificação de chave) é um hash de 3 bytes ou soma de verificação de uma chave gerada quando o HSM importa ou gera uma chave. Você também pode calcular um KCV fora do HSM, como depois de exportar uma chave. Em seguida, é possível comparar os valores do KCV para confirmar a identidade e a integridade da chave. Para obter o KCV de uma chave, use [getAttribute](key_mgmt_util-getAttribute.md).  
AWS CloudHSM usa o seguinte método padrão para gerar um valor de verificação de chave:  
+ **Chaves simétricas**: primeiros 3 bytes do resultado da criptografia de um bloco zero com a chave.
+ **Pares de chaves assimétricas**: primeiros 3 bytes do hash SHA-1 da chave pública.
+ **Chaves HMAC**: o KCV para chaves HMAC não é suportado no momento.
Obrigatório: não

## Output
<a name="findKey-output"></a>

A saída **findKey** mostra o número total de chaves correspondentes e seus identificadores de chave.

```
        Command:  findKey
Total number of keys present 10

 number of keys matched from start index 0::9
6, 7, 8, 9, 10, 11, 262156, 262157, 262158, 262159

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

## Tópicos relacionados
<a name="findKey-seealso"></a>
+ [findSingleKey](key_mgmt_util-findSingleKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)em cloudhsm\$1mgmt\$1util
+ [Referência de atributos de chave](key-attribute-table.md)

# Verifique uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-findSingleKey"></a>

Use o **findSingleKey** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para verificar se existe uma chave em todos os módulos de segurança de hardware (HSM) no cluster. AWS CloudHSM 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="findSingleKey-syntax"></a>

```
findSingleKey -h

findSingleKey -k <key-handle>
```

## Exemplo
<a name="findSingleKey-examples"></a>

**Example**  
Esse comando verifica se a chave `252136` existe em todos os três HSMs no cluster.  

```
Command: findSingleKey -k 252136
Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="findSingleKey-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-k**  
Especifica o identificador da chave no HSM. Esse parâmetro é obrigatório.   
Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-listUsers.md).  
Obrigatório: Sim

## Tópicos relacionados
<a name="findSingleKey-seealso"></a>
+ [findKey](key_mgmt_util-listUsers.md)
+ [getKeyInfo](key_mgmt_util-listUsers.md)
+ [getAttribute](key_mgmt_util-findKey.md)

# Gere um par de chaves AWS CloudHSM DSA usando KMU
<a name="key_mgmt_util-genDSAKeyPair"></a>

Use o **genDSAKeyPair** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para gerar um par de chaves do Algoritmo de [Assinatura Digital (DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)) em seus módulos de segurança de hardware (HSM). Você deve especificar o comprimento do módulo; o comando gera o valor do módulo. Você também pode atribuir um ID, compartilhar a chave com outros usuários do HSM e criar chaves não extraíveis que expiram quando a sessão termina. Quando o comando é bem-sucedido, ele retorna os *identificadores de chave* que o HSM atribui às chaves públicas e privadas. Você pode usar os identificadores de chave para identificar as chaves para outros comandos.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

**dica**  
Para encontrar os atributos de uma chave criada por você, como tipo, comprimento, rótulo e ID, use [getAttribute](key_mgmt_util-getAttribute.md). Para encontrar as chaves de um usuário específico, use [getKeyInfo](key_mgmt_util-getKeyInfo.md). Para encontrar chaves com base em seus valores de atributos, use [FindKey](key_mgmt_util-findKey.md). 

## Sintaxe
<a name="genDSAKeyPair-syntax"></a>

```
genDSAKeyPair -h

genDSAKeyPair -m <modulus length> 
              -l <label> 
              [-id <key ID>] 
              [-min_srv <minimum number of servers>] 
              [-m_value <0..8>]
              [-nex] 
              [-sess] 
              [-timeout <number of seconds> ]
              [-u <user-ids>] 
              [-attest]
```

## Exemplos
<a name="genDSAKeyPair-examples"></a>

Esses exemplos mostram como usar **genDSAKeyPair** para criar um par de chaves DSA.

**Example : Criar um par de chaves DSA**  
Esse comando cria um par de chaves DSA com um rótulo `DSA`. A saída mostra que o identificador da chave pública é `19` e o identificador da chave privada é `21`.  

```
Command: genDSAKeyPair -m 2048 -l DSA

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 19    private key handle: 21

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Criar um par de chaves DSA somente de sessão**  
Este comando cria um par de chaves DSA que é válido apenas na sessão atual. O comando atribui um ID exclusiva de `DSA_temp_pair`, além do rótulo (não exclusivo) requerido. Você pode querer criar um par de chaves como esse para assinar e verificar um token somente de sessão. A saída mostra que o identificador da chave pública é `12` e o identificador da chave privada é `14`.  

```
Command: genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Para confirmar que o par de chaves existe apenas na sessão, use o parâmetro `-sess` de [findKey](key_mgmt_util-findKey.md) com o valor de `1` (true).  

```
  Command: findKey -sess 1

  Total number of keys present 2

 number of keys matched from start index 0::1
12, 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : Criar um par de chaves DSA compartilhadas e não extraíveis**  
Esse comando cria um par de chaves DSA. A chave privada é compartilhada com outros três usuários e não pode ser exportada do HSM. Chaves públicas podem ser usadas por qualquer usuário e sempre podem ser extraídas.   

```
        Command:  genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 11    private key handle: 19

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Criar um par de chaves com controle de quorum**  
Esse comando cria um par de chaves DSA com o rótulo `DSA-mV2`. O comando usa o parâmetro `-u` para compartilhar a chave privada com os usuários 4 e 6. Ele usa o parâmetro `-m_value` para exigir um quorum de pelo menos duas aprovações para quaisquer operações criptográficas que usam a chave privada. O comando também usa o parâmetro `-attest` para verificar a integridade do firmware no qual o par de chaves é gerado.  
A saída mostra que o comando gera uma chave pública com o identificador de chave `12` e uma chave privada com o identificador de chave `17` e que a verificação de atestado no firmware do cluster foi aprovada.  

```
        Command:  genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 17

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Esse comando é usado [getKeyInfo](key_mgmt_util-getKeyInfo.md)na chave privada (identificador da chave`17`). A saída confirma que a chave pertence ao usuário atual (usuário 3) e que é compartilhada com os usuários 4 e 6 (e nenhum outro). A saída também mostra que a autenticação de quorum está habilitada e que o tamanho do quorum é dois.  

```
        Command:  getKeyInfo -k 17

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4
                 6
         2 Users need to approve to use/manage this key
```

## Parâmetros
<a name="genDSAKeyPair-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-m**  
Especifica o comprimento do módulo em bits. O único valor válido é `2048`.  
Obrigatório: Sim

**-l**  
Especifica o rótulo definido pelo usuário para o par de chaves. Digite uma string. O mesmo rótulo se aplica às duas chaves do par. O tamanho máximo para `label` é de 127 caracteres.  
É possível usar qualquer frase que ajude a identificar a chave. Como o rótulo não precisa ser exclusivo, é possível usá-lo para agrupar e categorizar chaves.   
Obrigatório: Sim

**-id**  
Especifica um rótulo definido pelo usuário para o par de chaves. Digite uma string exclusiva no cluster. O padrão é uma string vazia. O ID que você especifica se aplica às duas chaves do par.  
Padrão: sem valor de ID.  
Obrigatório: não

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-m\$1value**  
Especifica o número de usuários que devem aprovar qualquer operação criptográfica que use a chave privada no par. Digite um valor de `0` até `8`.  
Esse parâmetro estabelece um requisito de autenticação de quórum para a chave privada. O valor padrão, `0`, desativa o atributo de autenticação de quórum para a chave. Quando a autenticação de quórum está habilitada, o número especificado de usuários deve assinar um token para aprovar operações criptográficas que usam a chave privada e operações que compartilham ou descompartilham a chave privada.  
Para encontrar `m_value` a chave, use [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Esse parâmetro é válido somente quando o parâmetro `-u` no comando compartilha a chave com usuários o suficiente para atender ao requisito de `m_value`.  
Padrão: 0  
Obrigatório: não

**-nex**  
Torna a chave privada não extraível. A chave privada gerada não pode ser [exportada do HSM](export-keys.md). Chaves públicas sempre podem ser extraídas.  
Padrão: as chaves pública e privada no par de chaves podem ser extraídas.  
Obrigatório: não

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-u**  
Compartilha a chave privada no par com os usuários especificados. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar a chave privada em operações criptográficas. As chaves públicas podem ser usadas por qualquer usuário sem compartilhamento.  
Digite uma lista separada por vírgulas do usuário do HSM IDs, como -. `u 5,6` Não inclua o ID do usuário atual do HSM. [Para encontrar o usuário IDs do HSM CUs no HSM, use ListUsers.](key_mgmt_util-listUsers.md) Em seguida, para compartilhar ou descompartilhar uma chave existente, use [shareKey](cloudhsm_mgmt_util-shareKey.md) em cloudhsm\$1mgmt\$1util.   
Padrão: somente o usuário atual pode utilizar a chave importada.   
Obrigatório: não

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

## Tópicos relacionados
<a name="genDSAKeyPair-seealso"></a>
+ [2 gênios RSAKey Pair](key_mgmt_util-genRSAKeyPair.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [2 gênios ECCKey Pair](key_mgmt_util-genECCKeyPair.md)

# Gere um par de chaves AWS CloudHSM ECC usando KMU
<a name="key_mgmt_util-genECCKeyPair"></a>

Use o `genECCKeyPair` comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para gerar um par de chaves de [criptografia de curva elíptica (ECC) em seus módulos de segurança de hardware (](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography)HSM). Ao executar o comando `genECCKeyPair`, você deve especificar o identificador de curva elíptica e um rótulo para o par de chaves. Você também pode compartilhar a chave privada com outros usuários CU, criar chaves não extraíveis, chaves com controle de quorum e chaves que expiram quando a sessão termina. Quando o comando é bem-sucedido, ele retorna os identificadores de chave que o HSM atribui às chaves ECC públicas e privadas. Você pode usar os identificadores de chave para identificar as chaves para outros comandos.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

**dica**  
Para encontrar os atributos de uma chave criada por você, como tipo, comprimento, rótulo e ID, use [getAttribute](key_mgmt_util-getAttribute.md). Para encontrar as chaves de um usuário específico, use [getKeyInfo](key_mgmt_util-getKeyInfo.md). Para encontrar chaves com base em seus valores de atributos, use [FindKey](key_mgmt_util-findKey.md). 

## Sintaxe
<a name="genECCKeyPair-syntax"></a>

```
genECCKeyPair -h

genECCKeyPair -i <EC curve id> 
              -l <label> 
              [-id <key ID>]
              [-min_srv <minimum number of servers>]
              [-m_value <0..8>]
              [-nex]
              [-sess]
              [-timeout <number of seconds> ]
              [-u <user-ids>]
              [-attest]
```

## Exemplos
<a name="genECCKeyPair-examples"></a>

Os exemplos a seguir mostram como usar **genECCKeyPair** para criar pares de chaves ECC em seu HSMs.

**Example : Criar e examinar um par de chaves ECC**  
Esse comando usa uma curva elíptica NID\$1secp384r1 e um rótulo `ecc14` para criar um par de chaves ECC. A saída mostra que o identificador da chave privada é `262177` e o identificador da chave pública é `262179`. O rótulo aplica-se a chaves públicas e privadas.  

```
Command: genECCKeyPair -i 14 -l ecc14

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 262179    private key handle: 262177

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Depois de gerar a chave, você pode examinar seus atributos. Use [getAttribute](key_mgmt_util-getAttribute.md) para gravar todos os atributos (representados pela constante `512`) da nova chave privada ECC no arquivo `attr_262177`.  

```
Command: getAttribute -o 262177 -a 512 -out attr_262177
got all attributes of size 529 attr cnt 19
Attributes dumped into attr_262177

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
```
Em seguida, use o comando `cat` para visualizar o conteúdo do arquivo de atributo `attr_262177`. A saída mostra que a chave é uma chave privada de curva elíptica que pode ser usada para assinar, mas não para criptografar, descriptografar, encapsular, desencapsular ou verificar. A chave é persistente e exportável.  

```
$  cat attr_262177

OBJ_ATTR_CLASS
0x03
OBJ_ATTR_KEY_TYPE
0x03
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x00
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x01
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
ecc2
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x0000008a
OBJ_ATTR_KCV
0xbbb32a
OBJ_ATTR_MODULUS
044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5
OBJ_ATTR_MODULUS_BITS
0x0000019f
```

**Example Usar uma curva EEC inválida**  
Esse comando tenta criar um par de chaves ECC usando uma curva NID\$1X9\$162\$1prime192v1. Como essa curva elíptica não é válida para o modo FIPS HSMs, o comando falha. A mensagem informa que um servidor no cluster não está disponível, mas isso normalmente não indica um problema com o HSMs no cluster.  

```
Command:  genECCKeyPair -i 1 -l ecc1

        Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies

        Cluster Error Status
        Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable
```

## Parâmetros
<a name="genECCKeyPair-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-i **  
Especifica o identificador da curva elíptica. Insira um identificador.   
Valores válidos:   
+ **2**: NID\$1X9\$162\$1prime256v1
+ **14**: NID\$1secp384r1
+ **16**: NID\$1secp256k1
Obrigatório: Sim

**-l**  
Especifica o rótulo definido pelo usuário para o par de chaves. Digite uma string. O mesmo rótulo se aplica às duas chaves do par. O tamanho máximo para `label` é de 127 caracteres.  
É possível usar qualquer frase que ajude a identificar a chave. Como o rótulo não precisa ser exclusivo, é possível usá-lo para agrupar e categorizar chaves.   
Obrigatório: Sim

**-id**  
Especifica um rótulo definido pelo usuário para o par de chaves. Digite uma string exclusiva no cluster. O padrão é uma string vazia. O ID que você especifica se aplica às duas chaves do par.  
Padrão: sem valor de ID.  
Obrigatório: não

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-m\$1value**  
Especifica o número de usuários que devem aprovar qualquer operação criptográfica que use a chave privada no par. Digite um valor de `0` até `8`.  
Esse parâmetro estabelece um requisito de autenticação de quórum para a chave privada. O valor padrão, `0`, desativa o atributo de autenticação de quórum para a chave. Quando a autenticação de quórum está habilitada, o número especificado de usuários deve assinar um token para aprovar operações criptográficas que usam a chave privada e operações que compartilham ou descompartilham a chave privada.  
Para encontrar `m_value` a chave, use [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Esse parâmetro é válido somente quando o parâmetro `-u` no comando compartilha a chave com usuários o suficiente para atender ao requisito de `m_value`.  
Padrão: 0  
Obrigatório: não

**-nex**  
Torna a chave privada não extraível. A chave privada gerada não pode ser [exportada do HSM](export-keys.md). Chaves públicas sempre podem ser extraídas.  
Padrão: as chaves pública e privada no par de chaves podem ser extraídas.  
Obrigatório: não

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-u**  
Compartilha a chave privada no par com os usuários especificados. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar a chave privada em operações criptográficas. As chaves públicas podem ser usadas por qualquer usuário sem compartilhamento.  
Digite uma lista separada por vírgulas do usuário do HSM IDs, como -. `u 5,6` Não inclua o ID do usuário atual do HSM. [Para encontrar o usuário IDs do HSM CUs no HSM, use ListUsers.](key_mgmt_util-listUsers.md) Em seguida, para compartilhar ou descompartilhar uma chave existente, use [shareKey](cloudhsm_mgmt_util-shareKey.md) em cloudhsm\$1mgmt\$1util.   
Padrão: somente o usuário atual pode utilizar a chave importada.   
Obrigatório: não

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

## Tópicos relacionados
<a name="genECCKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [2 gênios RSAKey Pair](key_mgmt_util-genRSAKeyPair.md)
+ [2 gênios DSAKey Pair](key_mgmt_util-genDSAKeyPair.md)

# Gere um par de chaves AWS CloudHSM RSA usando KMU
<a name="key_mgmt_util-genRSAKeyPair"></a>

[Use o **genRSAKeyPair** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para gerar um par de chaves assimétrico RSA.](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) Você especifica o tipo de chave, o comprimento do módulo e um expoente público. O comando gera um módulo do comprimento especificado e cria o par de chaves. Você pode atribuir um ID, compartilhar a chave com outros usuários do HSM, criar chaves e chaves não extraíveis que expiram quando a sessão termina. Quando o comando for bem-sucedido, ele retornará um identificador de chave que o HSM atribui à chave. Você pode usar o identificador de chave para identificar as chaves para outros comandos.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

**dica**  
Para encontrar os atributos de uma chave criada por você, como tipo, comprimento, rótulo e ID, use [getAttribute](key_mgmt_util-getAttribute.md). Para encontrar as chaves de um usuário específico, use [getKeyInfo](key_mgmt_util-getKeyInfo.md). Para encontrar chaves com base em seus valores de atributos, use [FindKey](key_mgmt_util-findKey.md). 

## Sintaxe
<a name="genRSAKeyPair-syntax"></a>

```
genRSAKeyPair -h

genRSAKeyPair -m <modulus length>
              -e <public exponent> 
              -l <label> 
              [-id <key ID>] 
              [-min_srv <minimum number of servers>] 
              [-m_value <0..8>]
              [-nex] 
              [-sess] 
              [-timeout <number of seconds> ]
              [-u <user-ids>] 
              [-attest]
```

## Exemplos
<a name="genRSAKeyPair-examples"></a>

Esses exemplos mostram como usar **genRSAKeyPair** para criar pares de chaves assimétricas em seu. HSMs

**Example : Criar e examinar um par de chaves RSA**  
Esse comando cria um par de chaves RSA com um módulo de 2048 bits e um expoente de 65537. A saída mostra que o identificador de chave pública é `2100177` e o identificador de chave particular é `2100426`.  

```
Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_test 

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 2100177    private key handle: 2100426

        Cluster Status:
        Node id 0 status: 0x00000000 : HSM Return: SUCCESS
        Node id 1 status: 0x00000000 : HSM Return: SUCCESS
```
O próximo comando usa [getAttribute](key_mgmt_util-getAttribute.md) para obter os atributos da chave pública que acabamos de criar. Ele grava a saída no arquivo `attr_2100177`. Ele é seguido por um comando **cat** que obtém o conteúdo do arquivo de atributo. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  
Os valores hexadecimais resultantes confirmam que se trata de uma chave pública (`OBJ_ATTR_CLASS 0x02`) com um tipo de RSA (`OBJ_ATTR_KEY_TYPE 0x00`). Você pode usar essa chave pública para criptografar (`OBJ_ATTR_ENCRYPT 0x01`), mas não para descriptografar (`OBJ_ATTR_DECRYPT 0x00`). Os resultados também incluem o comprimento da chave (512, `0x200`), o módulo, o comprimento do módulo (2048, `0x800`) e o expoente público (65537, `0x10001`).  

```
Command:  getAttribute -o 2100177 -a 512 -out attr_2100177

Attribute size: 801, count: 26
Written to: attr_2100177 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

$  cat attr_2100177
OBJ_ATTR_CLASS
0x02
OBJ_ATTR_KEY_TYPE
0x00
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x01
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x00
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
rsa_test
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x00000200
OBJ_ATTR_KCV
0xc51c18
OBJ_ATTR_MODULUS
0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c
1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d
6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0
97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857
d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873
970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec
b3e4203294a96fae06f8f0db7982cb5d7f
OBJ_ATTR_MODULUS_BITS
0x00000800
OBJ_ATTR_PUBLIC_EXPONENT
0x010001
OBJ_ATTR_TRUSTED
0x00
OBJ_ATTR_WRAP_WITH_TRUSTED
0x00
OBJ_ATTR_DESTROYABLE
0x01
OBJ_ATTR_DERIVE
0x00
OBJ_ATTR_ALWAYS_SENSITIVE
0x00
OBJ_ATTR_NEVER_EXTRACTABLE
0x00
```

**Example : Gerar um par de chaves RSA compartilhado**  
Este comando gera um par de chaves RSA e compartilha a chave privada com o usuário 4, outro CU no HSM. O comando usa o parâmetro `m_value` para exigir pelo menos duas aprovações antes que a chave privada no par possa ser usada em uma operação criptográfica. Ao usar o parâmetro `m_value`, você também deve usar `-u` no comando, e `m_value` não pode exceder o número total de usuários (número de valores no `-u` \$1 proprietário).  

```
 Command:  genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 27    private key handle: 28

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="genRSAKeyPair-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-m**  
Especifica o comprimento do módulo em bits. O valor mínimo é 2048.   
Obrigatório: Sim

**-p**  
Especifica o expoente público. O valor deve ser um número ímpar maior que ou igual a 65537.  
Obrigatório: Sim

**-l**  
Especifica o rótulo definido pelo usuário para o par de chaves. Digite uma string. O mesmo rótulo se aplica às duas chaves do par. O tamanho máximo para `label` é de 127 caracteres.  
É possível usar qualquer frase que ajude a identificar a chave. Como o rótulo não precisa ser exclusivo, é possível usá-lo para agrupar e categorizar chaves.   
Obrigatório: Sim

**-id**  
Especifica um rótulo definido pelo usuário para o par de chaves. Digite uma string exclusiva no cluster. O padrão é uma string vazia. O ID que você especifica se aplica às duas chaves do par.  
Padrão: sem valor de ID.  
Obrigatório: não

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-m\$1value**  
Especifica o número de usuários que devem aprovar qualquer operação criptográfica que use a chave privada no par. Digite um valor de `0` até `8`.  
Esse parâmetro estabelece um requisito de autenticação de quórum para a chave privada. O valor padrão, `0`, desativa o atributo de autenticação de quórum para a chave. Quando a autenticação de quórum está habilitada, o número especificado de usuários deve assinar um token para aprovar operações criptográficas que usam a chave privada e operações que compartilham ou descompartilham a chave privada.  
Para encontrar `m_value` a chave, use [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Esse parâmetro é válido somente quando o parâmetro `-u` no comando compartilha a chave com usuários o suficiente para atender ao requisito de `m_value`.  
Padrão: 0  
Obrigatório: não

**-nex**  
Torna a chave privada não extraível. A chave privada gerada não pode ser [exportada do HSM](export-keys.md). Chaves públicas sempre podem ser extraídas.  
Padrão: as chaves pública e privada no par de chaves podem ser extraídas.  
Obrigatório: não

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-u**  
Compartilha a chave privada no par com os usuários especificados. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar a chave privada em operações criptográficas. As chaves públicas podem ser usadas por qualquer usuário sem compartilhamento.  
Digite uma lista separada por vírgulas do usuário do HSM IDs, como -. `u 5,6` Não inclua o ID do usuário atual do HSM. [Para encontrar o usuário IDs do HSM CUs no HSM, use ListUsers.](key_mgmt_util-listUsers.md) Em seguida, para compartilhar ou descompartilhar uma chave existente, use [shareKey](cloudhsm_mgmt_util-shareKey.md) em cloudhsm\$1mgmt\$1util.   
Padrão: somente o usuário atual pode utilizar a chave importada.   
Obrigatório: não

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

## Tópicos relacionados
<a name="genRSAKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [2 gênios DSAKey Pair](key_mgmt_util-genDSAKeyPair.md)
+ [2 gênios ECCKey Pair](key_mgmt_util-genECCKeyPair.md)

# Gere uma chave AWS CloudHSM simétrica usando KMU
<a name="key_mgmt_util-genSymKey"></a>

Use o **genSymKey** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para gerar uma chave simétrica em seus módulos de segurança de hardware (HSM). Você pode especificar o tipo de chave e o tamanho, atribuir um ID e um rótulo e compartilhar a chave com outros usuários do HSM. Você também pode criar chaves não extraíveis e chaves que expiram quando a sessão termina. Quando o comando for bem-sucedido, ele retornará um identificador de chave que o HSM atribui à chave. Você pode usar o identificador de chave para identificar as chaves para outros comandos.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="genSymKey-syntax"></a>

```
genSymKey -h

genSymKey -t <key-type>
          -s <key-size> 
          -l <label> 
          [-id <key-ID>] 
          [-min_srv <minimum-number-of-servers>] 
          [-m_value <0..8>]
          [-nex] 
          [-sess] 
          [-timeout <number-of-seconds> ]
          [-u <user-ids>] 
          [-attest]
```

## Exemplos
<a name="genSymKey-examples"></a>

Esses exemplos mostram como usar **genSymKey** para criar chaves simétricas em seu HSMs.

**dica**  
Para usar as chaves criadas com esses exemplos para operações HMAC, você deve definir `OBJ_ATTR_SIGN` e `OBJ_ATTR_VERIFY` para `TRUE` depois de gerar a chave. Para definir esses valores, use **setAttribute** no CloudHSM Management Utility (CMU). Para obter mais informações, consulte [setAttribute](cloudhsm_mgmt_util-setAttribute.md).

**Example : Gerar uma chave de AES**  
Esse comando cria uma chave AES de 256 bits com um rótulo `aes256`. A saída mostra que o identificador da nova chave é `6`.  

```
Command: genSymKey -t 31 -s 32 -l aes256

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 6

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Criar uma chave de sessão**  
Este comando cria uma chave AES de 192 bits não extraível que é válida apenas na sessão atual. Você talvez queira criar uma chave como essa para encapsular (e depois imediatamente desencapsular) uma chave que está sendo exportada.   

```
Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess 
```

**Example : Retornar rapidamente**  
Esse comando cria uma chave de 512 bytes genérica com um rótulo de `IT_test_key`. O comando não espera que a chave seja sincronizada com todos HSMs no cluster. Em vez disso, ele é retornado assim que a chave é criada em qualquer HSM (`-min_srv 1`) ou em 1 segundo (`-timeout 1`), o que for mais curto. Se a chave não estiver sincronizada com o número mínimo especificado HSMs antes da expiração do tempo limite, ela não será gerada. Você pode querer usar um comando como esse em um script que cria várias chaves, como o loop `for` no exemplo a seguir.   

```
Command: genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1

$  for i in {1..30}; 
     do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; 
 done;
```

**Example : Criar uma chave genérica autorizada de quorum**  
Esse comando cria uma chave secreta genérica de 2048 bits com o rótulo `generic-mV2`. O comando usa o parâmetro `-u` para compartilhar a chave com outro CU, o usuário 6. Ele usa o parâmetro `-m_value` para exigir um quorum de pelo menos duas aprovações para quaisquer operações criptográficas que usam a chave. O comando também usa o parâmetro `-attest` para verificar a integridade do firmware no qual a chave é gerada.  
A saída mostra que o comando gerou uma chave com o identificador de chave `9` e que a verificação de comprovação no firmware de cluster foi aprovada.  

```
                Command:  genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 9

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Criar e examinar uma chave**  
Esse comando cria uma chave DES Tripla com um rótulo `3DES_shared` e um ID de `IT-02`. A chave pode ser usada pelo usuário atual e pelos usuários 4 e 5. O comando falhará se o ID não for exclusivo no cluster ou se o usuário atual for o usuário 4 ou 5.   
A saída mostra que a nova chave tem o identificador de chave `7`.  

```
Command: genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5

       Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 7

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Para verificar se a nova chave 3DES é de propriedade do usuário atual e compartilhada com os usuários 4 e 5, use **[getKeyInfo](key_mgmt_util-getKeyInfo.md)**. O comando usa o identificador que foi atribuído à nova chave (`Key Handle: 7`).  
A saída confirma que a chave é de propriedade do usuário 3 e está compartilhada com os usuários 4 e 5.  

```
Command:  getKeyInfo -k 7

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4, 5
```
Para confirmar as outras propriedades da chave, use [getAttribute](key_mgmt_util-getAttribute.md). O primeiro comando usa `getAttribute` para obter todos os atributos (`-a 512`) do identificador de chave 7 (`-o 7`). Ele os grava no arquivo `attr_7`. O segundo comando usa `cat` para obter o conteúdo do arquivo `attr_7`.   
Esse comando confirma que a chave 7 é uma chave simétrica de 192 bits (`OBJ_ATTR_VALUE_LEN 0x00000018` ou 24 bytes) 3DES (`OBJ_ATTR_KEY_TYPE 0x15`) (`OBJ_ATTR_CLASS 0x04`) com rótulo `3DES_shared` (`OBJ_ATTR_LABEL 3DES_shared`) e ID `IT_02` (`OBJ_ATTR_ID IT-02`). A chave é persistente (`OBJ_ATTR_TOKEN 0x01`) e extraível (`OBJ_ATTR_EXTRACTABLE 0x01`) e pode ser usada para criptografia, descriptografia e encapsulamento.   
Para encontrar os atributos de uma chave criada por você, como tipo, comprimento, rótulo e ID, use [getAttribute](key_mgmt_util-getAttribute.md). Para encontrar as chaves de um usuário específico, use [getKeyInfo](key_mgmt_util-getKeyInfo.md). Para encontrar chaves com base em seus valores de atributos, use [FindKey](key_mgmt_util-findKey.md). 
Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  

```
Command:  getAttribute -o 7 -a 512 -out attr_7

got all attributes of size 444 attr cnt 17
Attributes dumped into attr_7 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS


$  cat attr_7

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
3DES_shared
OBJ_ATTR_ID
IT-02
OBJ_ATTR_VALUE_LEN
0x00000018
OBJ_ATTR_KCV
0x59a46e
```
Para usar as chaves criadas com esses exemplos para operações HMAC, você deve definir `OBJ_ATTR_SIGN` e `OBJ_ATTR_VERIFY` para `TRUE` depois de gerar a chave. Para definir esses valores, use **setAttribute** no CMU. Para obter mais informações, consulte [setAttribute](cloudhsm_mgmt_util-setAttribute.md).

## Parâmetros
<a name="genSymKey-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-t**  
Especifica o tipo da chave simétrica. Insira a constante que representa o tipo de chave. Por exemplo, para criar uma chave AES, digite `-t 31`.  
Valores válidos:   
+ 16: [GENERIC\$1SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962). Uma *chave secreta genérica* é uma matriz de bytes que não está em conformidade com nenhum padrão específico, como os requisitos para uma chave AES. 
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4). RC4 as chaves não são válidas no modo FIPS HSMs
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES). De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte [Conformidade com o FIPS 140: suspensão do mecanismo de 2024](compliance-dep-notif.md#compliance-dep-notif-1).
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Obrigatório: Sim

**-s**  
Especifica o tamanho da chave em bytes. Por exemplo, para criar uma chave de 192 bits, digite `24`.   
Valores válidos para cada tipo de chave:  
+ AES: 16 (128 bits), 24 (192 bits), 32 (256 bits)
+ 3DES: 24 (192 bits)
+ Segredo genérico: <3584 (28.672 bits)
Obrigatório: Sim

**-l**  
Especifica o rótulo da chave privada definida pelo usuário para a chave. Digite uma string.  
É possível usar qualquer frase que ajude a identificar a chave. Como o rótulo não precisa ser exclusivo, é possível usá-lo para agrupar e categorizar chaves.   
Obrigatório: Sim

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

**-id**  
Especifica o identificador da chave definida pelo usuário. Digite uma string exclusiva no cluster. O padrão é uma string vazia.   
Padrão: sem valor de ID.  
Obrigatório: não

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-m\$1value**  
Especifica o número de usuários que devem aprovar qualquer operação criptográfica que use a chave importada. Digite um valor de `0` até `8`.  
Esse parâmetro estabelece um requisito de autenticação de quórum para a chave. O valor padrão, `0`, desativa o atributo de autenticação de quórum para a chave. Quando a autenticação de quórum está habilitada, o número especificado de usuários deve assinar um token para aprovar operações criptográficas que usam a chave e operações que compartilham ou descompartilham a chave.  
Para encontrar `m_value` a chave, use [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Esse parâmetro é válido somente quando o parâmetro `-u` no comando compartilha a chave com usuários o suficiente para atender ao requisito de `m_value`.  
Padrão: 0  
Obrigatório: não

**-nex**  
Torna a chave não extraível. A chave gerada não pode ser [exportada do HSM](export-keys.md).  
Padrão: a chave é extraível.  
Obrigatório: não

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-u**  
Compartilha a chave com o usuário especificado. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar essa chave em operações criptográficas.  
Digite uma lista separada por vírgulas do usuário do HSM IDs, como -. `u 5,6` Não inclua o ID do usuário atual do HSM. [Para encontrar o usuário IDs do HSM CUs no HSM, use ListUsers.](key_mgmt_util-listUsers.md) Em seguida, para compartilhar ou descompartilhar uma chave existente, use [shareKey](cloudhsm_mgmt_util-shareKey.md) em cloudhsm\$1mgmt\$1util.   
Padrão: somente o usuário atual pode utilizar a chave.   
Obrigatório: não

## Tópicos relacionados
<a name="genSymKey-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [2 gênios RSAKey Pair](key_mgmt_util-genRSAKeyPair.md)
+ [2 gênios DSAKey Pair](key_mgmt_util-genDSAKeyPair.md)
+ [2 gênios ECCKey Pair](key_mgmt_util-genECCKeyPair.md)
+ [setAttribute](cloudhsm_mgmt_util-setAttribute.md)

# Obtenha um AWS CloudHSM atributo-chave usando KMU
<a name="key_mgmt_util-getAttribute"></a>

Use o **getAttribute** comando no AWS CloudHSM key\$1mgmt\$1util para gravar um ou todos os valores de atributo de uma chave em um arquivo. AWS CloudHSM Se o atributo que você especificar não existir para o tipo de chave, como o módulo de uma chave AES, **getAttribute** retornará um erro. 

*Atributos de chave* são propriedades de uma chave. Eles incluem características, como o tipo de chave, a classe, o rótulo e o ID, e valores que representam ações que você pode realizar com a chave, como criptografar, descriptografar, encapsular, assinar e verificar. 

Você só pode usar **getAttribute** nas chaves que você possui e em chaves que são compartilhadas com você. Você pode executar esse comando ou o comando [getAttribute](cloudhsm_mgmt_util-getAttribute.md) em cloudhsm\$1mgmt\$1util, que obtém um valor de atributo de uma chave de tudo HSMs em um cluster e o grava em stdout ou em um arquivo. 

Para obter uma lista de atributos e das constantes que os representam, use o comando [listAttributes](key_mgmt_util-listAttributes.md). Para alterar os valores de atributo de chaves existentes, use [setAttribute](key_mgmt_util-setAttribute.md) na key\$1mgmt\$1util e [setAttribute](cloudhsm_mgmt_util-setAttribute.md) na cloudhsm\$1mgmt\$1util. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="getAttribute-syntax"></a>

```
getAttribute -h 

getAttribute -o <key handle> 
             -a <attribute constant> 
             -out <file>
```

## Exemplos
<a name="getAttribute-examples"></a>

Esses exemplos mostram como usar **getAttribute** para obter os atributos das chaves em seu HSMs.

**Example : Obter o tipo de chave**  
Esse exemplo obtém o tipo de chave, como uma chave AES, 3DES ou genérica, ou um par de chaves RSA ou de curva elíptica.  
O primeiro comando executa [listAttributes](key_mgmt_util-listAttributes.md), que obtém os principais atributos e as constantes que os representam. A saída mostra que a constante para o tipo de chave é `256`. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  

```
Command: listAttributes

Description
===========
The following are all of the possible attribute values for getAttributes.

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_KEY_TYPE               = 256
      OBJ_ATTR_ID                     = 258
      OBJ_ATTR_SENSITIVE              = 259
      OBJ_ATTR_ENCRYPT                = 260
      OBJ_ATTR_DECRYPT                = 261
      OBJ_ATTR_WRAP                   = 262
      OBJ_ATTR_UNWRAP                 = 263
      OBJ_ATTR_SIGN                   = 264
      OBJ_ATTR_VERIFY                 = 266
      OBJ_ATTR_LOCAL                  = 355
      OBJ_ATTR_MODULUS                = 288
      OBJ_ATTR_MODULUS_BITS           = 289
      OBJ_ATTR_PUBLIC_EXPONENT        = 290
      OBJ_ATTR_VALUE_LEN              = 353
      OBJ_ATTR_EXTRACTABLE            = 354
      OBJ_ATTR_KCV                    = 371
```
O segundo comando executa **getAttribute**. Ele solicita o tipo de chave (atributo `256`) para o identificador de chave `524296` e o grava no arquivo `attribute.txt`.   

```
Command: getAttribute -o 524296 -a 256 -out attribute.txt
Attributes dumped into attribute.txt file
```
O comando final obtém o conteúdo do arquivo de chave. A saída revela que o tipo de chave é `0x15` ou `21`, que é uma chave Triple DES (3DES). Para as definições dos valores da classe e tipo, consulte a [Referência de atributos de chave](key-attribute-table.md).  

```
$  cat attribute.txt
OBJ_ATTR_KEY_TYPE
0x00000015
```

**Example : Obter todos os atributos de uma chave**  
Este comando obtém todos os atributos da chave com o identificador de chave `6` e os grava no arquivo `attr_6`. Ele usa um valor de atributo de `512`, que representa todos os atributos.   

```
Command: getAttribute -o 6 -a 512 -out attr_6
        
got all attributes of size 444 attr cnt 17
Attributes dumped into attribute.txt file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS>
```
Esse comando mostra o conteúdo de um arquivo de atributo de amostra com todos os valores de atributos. Entre os valores, ele informa que a chave é uma chave AES de 256 bits com um ID de `test_01` e um rótulo de `aes256`. A chave é extraível e persistente, ou seja, não é uma chave somente de sessão. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  

```
$  cat attribute.txt

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x01
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
aes256
OBJ_ATTR_ID
test_01
OBJ_ATTR_VALUE_LEN
0x00000020
OBJ_ATTR_KCV
0x1a4b31
```

## Parâmetros
<a name="getAttribute-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-o**  
Especifica o identificador da chave de destino. Você pode especificar apenas uma chave em cada comando. Para obter o identificador de chave de uma chave, use [findKey](key_mgmt_util-findKey.md).  
Além disso, você deve ter a chave especificada ou ela deve ser compartilhada com você. Para encontrar os usuários de uma chave, use [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Obrigatório: Sim

**-a**  
Identifica o atributo. Insira uma constante que represente um atributo, ou `512`, que represente todos os atributos. Por exemplo, para obter o tipo de chave, digite `256`, que é a constante para o atributo `OBJ_ATTR_KEY_TYPE`.  
Para listar os atributos e suas constantes, use [listAttributes](key_mgmt_util-listAttributes.md). Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  
Obrigatório: Sim

**-out**  
Grava a saída no arquivo especificado. Digite um caminho de arquivo. Você não pode gravar a saída em `stdout`.   
Se o arquivo especificado existir, **getAttribute** substitui o arquivo sem aviso prévio.  
Obrigatório: Sim

## Tópicos relacionados
<a name="getAttribute-seealso"></a>
+ [getAttribute](cloudhsm_mgmt_util-getAttribute.md) em cloudhsm\$1mgmt\$1util
+ [listAttributes](key_mgmt_util-listAttributes.md)
+ [setAttribute](key_mgmt_util-setAttribute.md)
+ [findKey](key_mgmt_util-findKey.md)
+ [Referência de atributos de chave](key-attribute-table.md)

# Exporte uma AWS CloudHSM chave para um formato PEM falso usando KMU
<a name="key_mgmt_util-getCaviumPrivKey"></a>

Use o comando **getCaviumPrivKey** no AWS CloudHSM key\$1mgmt\$1util para exportar uma chave privada de um módulo de segurança de hardware (HSM) em formato PEM falso. O arquivo PEM falso, que não contém o material real da chave privada, mas faz referência à chave privada no HSM, pode então ser usado para estabelecer o SSL/TLS descarregamento do seu servidor web para. AWS CloudHSM Para obter mais informações, consulte [SSL/TLS Offload on Linux using Tomcat](third-offload-linux-jsse.md) ou [SSL/TLS Offload on Linux using NGINX or Apache](third-offload-linux-openssl.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="getCaviumPrivKey-syntax"></a>

```
getCaviumPrivKey -h

getCaviumPrivKey -k <private-key-handle>
                 -out <fake-PEM-file>
```

## Exemplos
<a name="getCaviumPrivKey-examples"></a>

Este exemplo mostra como usar **getCaviumPrivKey** para exportar uma chave privada em um formato PEM falso.

**Example : Export a Fake PEM File**  
Este comando cria e exporta uma versão PEM falsa de uma chave privada com identificador `15` e salva-a em um arquivo chamado `cavKey.pem`. Quando o comando é bem-sucedido, **exportPrivateKey** retorna uma mensagem de êxito.  

```
Command: getCaviumPrivKey -k 15 -out cavKey.pem

Private Key Handle is written to cavKey.pem in fake PEM format

        getCaviumPrivKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="getCaviumPrivKey-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-k`**  
Especifica o identificador de chave da chave privada a ser exportada no formato PEM falso.  
Obrigatório: Sim

**`-out`**  
Especifica o nome do arquivo no qual a chave PEM falsa será gravada.  
Obrigatório: Sim

## Tópicos relacionados
<a name="getCaviumPrivKey-seealso"></a>
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [Descarregamento de SSL/TLS no Linux usando Tomcat](third-offload-linux-jsse.md)
+ [Descarregamento de SSL/TLS no Linux usando NGINX ou Apache](third-offload-linux-openssl.md)

# Obtenha certificados de partição HSM usando AWS CloudHSM KMU
<a name="key_mgmt_util-getCert"></a>

Use o **getCert** comando no AWS CloudHSM key\$1mgmt\$1util para recuperar os certificados de partição de um módulo de segurança de hardware (HSM) e salvá-los em um arquivo. Ao executar o comando, você designa o tipo de certificado a ser recuperado. Para fazer isso, você usa um dos números inteiros correspondentes, conforme descrito na seção [Parâmetros](#kmu-getCert-parameters) a seguir. Para saber sobre a função de cada um desses certificados, consulte [Verificar a identidade do HSM](verify-hsm-identity.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="kmu-getCert-syntax"></a>

```
getCert -h 

getCert -f <file-name> 
        -t <certificate-type>
```

## Exemplo
<a name="kmu-getCert-examples"></a>

Este exemplo mostra como usar **getCert** para recuperar um certificado raiz do cliente do cluster e salvá-lo como um arquivo.

**Example : recuperar um certificado raiz do cliente**  
Este comando exporta um certificado raiz do cliente (representado pelo inteiro `4`) e salva-o em um arquivo chamado `userRoot.crt`. Quando o comando é bem-sucedido, **getCert** retorna uma mensagem de êxito.  

```
Command: getCert -f userRoot.crt -s 4

Cfm3GetCert() returned 0 :HSM Return: SUCCESS
```

## Parâmetros
<a name="kmu-getCert-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-f`**  
Especifica o nome do arquivo no qual o certificado recuperado será salvo.  
Obrigatório: Sim

**-s**  
Um inteiro que especifica o tipo do certificado de partição a ser recuperado. Os inteiros e seus tipos de certificado correspondentes são os seguintes:  
+ **1** – certificado raiz do fabricante
+ **2** – certificado de hardware do fabricante
+ **4** – certificado raiz do cliente
+ **8** – certificado do cluster (assinado pelo certificado raiz do cliente)
+ **16** – certificado do cluster (encadeado ao certificado raiz do fabricante)
Obrigatório: Sim

## Tópicos relacionados
<a name="kmu-getCert-seealso"></a>
+ [Verificar a identidade do HSM](verify-hsm-identity.md)

# Obtenha os usuários de uma AWS CloudHSM chave usando o KMU
<a name="key_mgmt_util-getKeyInfo"></a>

Use o **getKeyInfo** comando no AWS CloudHSM key\$1mgmt\$1util para retornar o usuário do módulo de segurança de hardware (HSM) IDs dos usuários que podem usar a chave, incluindo o proprietário e os usuários criptográficos (UC) com os quais a chave é compartilhada. Quando a autenticação de quorum está habilitada em uma chave, **getKeyInfo** também retorna o número de usuários que devem aprovar as operações criptográficas que usam essa chave. Você pode executar **getKeyInfo** somente nas chaves que possui e em chaves que são compartilhadas com você.

Quando você executa **getKeyInfo** em chaves públicas, **getKeyInfo** retorna apenas o proprietário da chave, mesmo que todos os usuários do HSM possam usar a chave pública. Para encontrar o usuário HSM IDs dos usuários em seu HSMs, use [ListUsers](key_mgmt_util-listUsers.md). Para encontrar as chaves de um usuário específico, use [findKey](key_mgmt_util-findKey.md) `-u`.

Você possui as chaves que cria. Você pode compartilhar uma chave com outros usuários ao criá-la. Em seguida, para compartilhar ou descompartilhar uma chave existente, use [shareKey](cloudhsm_mgmt_util-shareKey.md) em cloudhsm\$1mgmt\$1util.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="getKeyInfo-syntax"></a>

```
getKeyInfo -h

getKeyInfo -k <key-handle>
```

## Exemplos
<a name="getKeyInfo-examples"></a>

Esses exemplos mostram como usar **getKeyInfo** para obter informações sobre os usuários de uma chave.

**Example : obter usuários para uma chave simétrica**  
Esse comando obtém os usuários que podem usar a chave AES (simétrica) com o identificador de chave `9`. A saída mostra que o usuário 3 possui a chave e a compartilhou com o usuário 4.  

```
Command:  getKeyInfo -k 9

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 1 user(s):

                4
```

**Example : obter os usuários para um par de chaves assimétricas**  
Esses comandos usam **getKeyInfo** para obter os usuários que podem usar as chaves em um par de chaves RSA (assimétrico). A chave pública possui o identificador de chave `21`. A chave privada possui o identificador de chave `20`.   
Quando você **getKeyInfo** executa a chave privada (`20`), ela retorna o proprietário da chave (3) e os usuários criptográficos (CUs) 4 e 5, com os quais a chave é compartilhada.   

```
Command:  getKeyInfo -k 20

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 2 user(s):

                4
                5
```
Quando você executa **getKeyInfo** na chave pública (`21`), ele retorna apenas o proprietário da chave (3).   

```
Command:  getKeyInfo -k 21

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3
```
Para confirmar que o usuário 4 pode usar a chave pública (e todas as chaves públicas no HSM), use o parâmetro `-u` de [findKey](key_mgmt_util-findKey.md).   
A saída mostra que o usuário 4 pode usar tanto a chave pública (`21`) quanto a privada (`20`) no par de chaves. O Usuário 4 também pode usar todas as outras chaves públicas e quaisquer chaves privadas que ele tenha criado ou que tenha sido compartilhada com ele.   

```
Command:  findKey -u 4
Total number of keys present 8

 number of keys matched from start index 0::7
11, 12, 262159, 262161, 262162, 19, 20, 21

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : obter o valor de autenticação de quorum (m\$1value) para uma chave**  
Esse exemplo mostra como obter o `m_value` para uma chave, ou seja, o número de usuários no quorum que devem aprovar todas as operações criptográficas que usam a chave.  
Quando a autenticação de quorum está habilitada em uma chave, um quorum de usuários deve aprovar todas as operações criptográficas que usam essa chave. Para habilitar a autenticação de quorum e definir o tamanho do quorum, use o parâmetro `-m_value` ao criar a chave.  
Esse comando usa [gen RSAKey Pair para criar um par](key_mgmt_util-genRSAKeyPair.md) de chaves RSA que é compartilhado com o usuário 4. Ele usa o parâmetro `m_value` para habilitar a autenticação de quorum na chave privada no par e definir o tamanho do quorum para dois usuários. O número de usuários deve ser grande o suficiente para fornecer as aprovações necessárias.  
A saída mostra que o comando criou a chave pública `27` e a chave privada `28`.  

```
 Command:  genRSAKeyPair -m 2048 -e 195193 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 27    private key handle: 28

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```
Esse comando usa **getKeyInfo** para obter informações sobre os usuários da chave privada. A saída mostra que a chave é de propriedade do usuário 3 e compartilhada com o usuário 4. Também mostra que um quorum de dois usuários deve aprovar todas as operações criptográficas que usam a chave.  

```
Command:  getKeyInfo -k 28

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 1 user(s):

                 4
         2 Users need to approve to use/manage this key
```

## Parâmetros
<a name="getKeyInfo-parameters"></a>

**-h**  
Exibe a ajuda da linha de comando para o comando.   
Obrigatório: Sim

**-k**  
Especifica o identificador da chave no HSM. Insira o identificador de uma chave que você possui ou compartilha. Esse parâmetro é obrigatório.   
Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-listUsers.md).  
Obrigatório: Sim

## Tópicos relacionados
<a name="getKeyInfo-seealso"></a>
+ [getKeyInfo](cloudhsm_mgmt_util-getKeyInfo.md)em cloudhsm\$1mgmt\$1util
+ [listUsers](key_mgmt_util-listUsers.md)
+ [findKey](key_mgmt_util-findKey.md)
+ [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md)em cloudhsm\$1mgmt\$1util

# Exibir informações de ajuda para o AWS CloudHSM KMU
<a name="key_mgmt_util-help"></a>

Use o **help** comando no AWS CloudHSM key\$1mgmt\$1util para exibir informações sobre todos os comandos key\$1mgmt\$1util disponíveis.

Antes de executar **help**, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start).

## Sintaxe
<a name="help-syntax"></a>

```
help
```

## Exemplo
<a name="help-examples"></a>

Este exemplo mostra a saída do comando `help`.

**Example**  

```
Command:  help

Help Commands Available:

Syntax: <command> -h


   Command               Description
   =======               ===========

   exit                   Exits this application
   help                   Displays this information

        Configuration and Admin Commands
   getHSMInfo             Gets the HSM Information
   getPartitionInfo       Gets the Partition Information
   listUsers              Lists all users of a partition
   loginStatus            Gets the Login Information
   loginHSM               Login to the HSM
   logoutHSM              Logout from the HSM

        M of N commands
   getToken               Initiate an MxN service and get Token
   delToken               delete Token(s)
   approveToken           Approves an MxN service
   listTokens             List all Tokens in the current partition

        Key Generation Commands

        Asymmetric Keys:
   genRSAKeyPair          Generates an RSA Key Pair
   genDSAKeyPair          Generates a DSA Key Pair
   genECCKeyPair          Generates an ECC Key Pair

        Symmetric Keys:
   genPBEKey              Generates a PBE DES3 key
   genSymKey              Generates a Symmetric keys

        Key Import/Export Commands
   createPublicKey        Creates an RSA public key
   importPubKey           Imports RSA/DSA/EC Public key
   exportPubKey           Exports RSA/DSA/EC Public key
   importPrivateKey       Imports RSA/DSA/EC private key
   exportPrivateKey       Exports RSA/DSA/EC private key
   imSymKey               Imports a Symmetric key
   exSymKey               Exports a Symmetric key
   wrapKey                Wraps a key from from HSM using the specified handle
   unWrapKey              UnWraps a key into HSM using the specified handle

        Key Management Commands
   deleteKey              Delete Key
   setAttribute           Sets an attribute of an object
   getKeyInfo             Get Key Info about shared users/sessions
   findKey                Find Key
   findSingleKey          Find single Key
   getAttribute           Reads an attribute from an object

        Certificate Setup Commands
   getCert                Gets Partition Certificates stored on HSM

        Key Transfer Commands
   insertMaskedObject     Inserts a masked object
   extractMaskedObject    Extracts a masked object

        Management Crypto Commands
   sign                   Generates a signature
   verify                 Verifies a signature
   aesWrapUnwrap          Does NIST AES Wrap/Unwrap

        Helper Commands
   Error2String           Converts Error codes to Strings
                          save key handle in fake PEM format
   getCaviumPrivKey       Saves an RSA private key handle
                          in fake PEM format
   IsValidKeyHandlefile   Checks if private key file has
                          an HSM key handle or a real key
   listAttributes         List all attributes for getAttributes
   listECCCurveIds        List HSM supported ECC CurveIds
```

## Parâmetros
<a name="loginHSM-parameters"></a>

Não há parâmetros para esse comando.

## Tópicos relacionados
<a name="loginHSM-seealso"></a>
+ [loginHSM e logoutHSM](key_mgmt_util-loginHSM.md)

# Importar uma chave privada usando o AWS CloudHSM KMU
<a name="key_mgmt_util-importPrivateKey"></a>

Use o **importPrivateKey** comando no AWS CloudHSM key\$1mgmt\$1util para importar uma chave privada assimétrica de um arquivo para um módulo de segurança de hardware (HSM). O HSM não permite a importação direta de chaves em texto não criptografado. O comando criptografa a chave privada usando uma chave de empacotamento AES que você especifica e desempacota a chave dentro do HSM. Se você estiver tentando associar uma AWS CloudHSM chave a um certificado, consulte [este tópico](ksp-library-associate-key-certificate.md).

**nota**  
Não é possível importar uma chave PEM protegida por senha usando uma chave simétrica ou privada.

Você deve especificar uma chave de empacotamento AES que tenha `OBJ_ATTR_UNWRAP` e `OBJ_ATTR_ENCRYPT` de valor de atributo `1`. Para encontrar os atributos de uma chave, use o comando [**getAttribute**](key_mgmt_util-getAttribute.md).

**nota**  
 Esse comando não oferece a opção de marcar as chaves importadas como não exportáveis. 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="importPrivateKey-syntax"></a>

```
importPrivateKey -h

importPrivateKey -l <label>
                 -f <key-file>
                 -w <wrapping-key-handle>
                 [-sess]
                 [-id <key-id>]
                 [-m_value <0...8>]
                 [min_srv <minimum-number-of-servers>]
                 [-timeout <number-of-seconds>]
                 [-u <user-ids>]
                 [-wk <wrapping-key-file>]
                 [-attest]
```

## Exemplos
<a name="importPrivateKey-examples"></a>

Este exemplo mostra como usar **importPrivateKey** para importar uma chave privada para um HSM.

**Example : importar uma chave privada**  
Esse comando importa a chave privada a partir de um arquivo chamado `rsa2048.key` com o rótulo `rsa2048-imported` e uma chave de encapsulamento com identificador `524299`. Quando o comando for bem-sucedido, **importPrivateKey** retornará um identificador de chave para a chave importada e uma mensagem de êxito.  

```
Command: importPrivateKey -f rsa2048.key -l rsa2048-imported -w 524299

BER encoded key length is 1216

Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

Private Key Unwrapped.  Key Handle: 524301

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="importPrivateKey-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-l`**  
Especifica o rótulo da chave privada definida pelo usuário.  
Obrigatório: Sim

**`-f`**  
Especifica o nome do arquivo da chave a ser importada.  
Obrigatório: Sim

**`-w`**  
Especifica o identificador de chave da chave de encapsulamento. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [**findKey**](key_mgmt_util-findKey.md).  
Para determinar se uma chave pode ser usada como uma chave de encapsulamento, use [**getAttribute**](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP` (262). Para criar uma chave de encapsulamento, use [**genSymKey**](key_mgmt_util-genSymKey.md) a fim de criar uma chave AES (digite 31).  
Se você usar o parâmetro `-wk` para especificar uma chave de desencapsulamento externa, a chave de encapsulamento `-w` será usada para encapsular, mas não para desencapsular, a chave durante a importação.  
Obrigatório: Sim

**`-sess`**  
Especifica a chave importada como uma chave de sessão.  
Padrão: a chave importada é mantida como uma chave persistente (token) no cluster.  
Obrigatório: não

**`-id`**  
Especifica o ID da chave a ser importada.  
Padrão: sem valor de ID.  
Obrigatório: não

**`-m_value`**  
Especifica o número de usuários que devem aprovar qualquer operação criptográfica que use a chave importada. Insira um valor de **0** a **8**.  
Esse parâmetro é válido somente quando o parâmetro `-u` no comando compartilha a chave com usuários o suficiente para atender ao requisito de `m_value`.  
Padrão: 0  
Obrigatório: não

**`-min_srv`**  
Especifica o número mínimo HSMs no qual a chave importada é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**`-timeout`**  
Especifica o número de segundos de espera até que a chave seja sincronizada HSMs quando o `min-serv` parâmetro é incluído. Se nenhum número for especificado, a sondagem continuará para sempre.  
Padrão: sem limite  
Obrigatório: não

**`-u`**  
Especifica a lista de usuários com os quais compartilhar a chave privada importada. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar a chave importada em operações criptográficas.  
Insira uma lista separada por vírgulas de usuários do HSM IDs, como. `-u 5,6` Não inclua o ID do usuário atual do HSM. [Para encontrar o usuário IDs do HSM CUs no HSM, use ListUsers.](key_mgmt_util-listUsers.md)  
Padrão: somente o usuário atual pode utilizar a chave importada.  
Obrigatório: não

**`-wk`**  
Especifica a chave a ser usada para encapsular a chave que está sendo importada. Insira o caminho e o nome de um arquivo que contém uma chave AES de texto simples.  
Quando você inclui esse parâmetro, **importPrivateKey** usa a chave no arquivo `-wk` para encapsular a chave que está sendo importada. Ele também usa a chave especificada pelo parâmetro `-w` para desencapsulá-la.  
Padrão: use a chave de encapsulamento especificada no parâmetro `-w` para encapsular e desencapsular.  
Obrigatório: não

**`-attest`**  
Executa uma verificação de declaração na resposta do firmware para garantir que o firmware no qual o cluster é executado não tenha sido comprometido.  
Obrigatório: não

## Tópicos relacionados
<a name="importPrivateKey-seealso"></a>
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)

# Importar uma chave pública usando o AWS CloudHSM KMU
<a name="key_mgmt_util-importPubKey"></a>

Use o **importPubKey** comando no AWS CloudHSM key\$1mgmt\$1util para importar uma chave pública no formato PEM para um módulo de segurança de hardware (HSM). Você pode usá-lo para importar chaves públicas que foram geradas fora do HSM. Você também pode usar o comando para importar chaves que foram exportadas de um HSM, como as exportadas pelo comando [exportPubKey](key_mgmt_util-exportPubKey.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="importPubKey-syntax"></a>

```
importPubKey -h

importPubKey -l <label>
             -f <key-file>
             [-sess]
             [-id <key-id>]
             [min_srv <minimum-number-of-servers>]
             [-timeout <number-of-seconds>]
```

## Exemplos
<a name="importPubKey-examples"></a>

Este exemplo mostra como usar **importPubKey** para importar uma chave pública para um HSM.

**Example : Import a Public Key**  
Esse comando importa uma chave pública de um arquivo chamado `public.pem` com o rótulo `importedPublicKey`. Quando o comando for bem-sucedido, **importPubKey** retornará um identificador de chave para a chave importada e uma mensagem de êxito.  

```
Command: importPubKey -l importedPublicKey -f public.pem

Cfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS

Public Key Handle: 262230

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="importPubKey-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-l`**  
Especifica o rótulo da chave pública definido pelo usuário.  
Obrigatório: Sim

**`-f`**  
Especifica o nome do arquivo da chave a ser importada.  
Obrigatório: Sim

**`-sess`**  
Designa a chave importada como uma chave de sessão.  
Padrão: a chave importada é mantida como uma chave persistente (token) no cluster.  
Obrigatório: não

**`-id`**  
Especifica o ID da chave a ser importada.  
Padrão: sem valor de ID.  
Obrigatório: não

**`-min_srv`**  
Especifica o número mínimo com o qual HSMs a chave importada é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**`-timeout`**  
Especifica o número de segundos de espera até que a chave seja sincronizada HSMs quando o `min-serv` parâmetro é incluído. Se nenhum número for especificado, a sondagem continuará para sempre.  
Padrão: sem limite  
Obrigatório: não

## Tópicos relacionados
<a name="importPubKey-seealso"></a>
+ [exportPubKey](key_mgmt_util-exportPubKey.md)
+ [Gerar chaves](generate-keys.md)

# Importe uma chave simétrica de texto simples usando KMU AWS CloudHSM
<a name="key_mgmt_util-imSymKey"></a>

Use o **imSymKey** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para importar uma cópia em texto simples de uma chave simétrica de um arquivo para o módulo de segurança de hardware (HSM). Você pode usá-lo para importar chaves geradas por qualquer método fora do HSM e chaves que foram exportadas de um HSM, como as chaves que o [exSymKey](key_mgmt_util-exSymKey.md)comando grava em um arquivo. 

Durante o processo de importação, **imSymKey** usa uma chave AES que você seleciona (a *chave de encapsulamento*) para *encapsular* (criptografar) e depois *desencapsular* (descriptografar) a chave a ser importada. No entanto, **imSymKey** funciona apenas em arquivos que contenham chaves em texto simples. Para exportar e importar chaves criptografadas, use o [WrapKey](key_mgmt_util-wrapKey.md) e [unWrapKey](key_mgmt_util-unwrapKey.md)os comandos. 

Além disso, o comando **imSymKey** importa apenas chaves simétricas. Para importar chaves públicas, use [importPubKey](key_mgmt_util-importPubKey.md). Para importar chaves privadas, use [importPrivateKey](key_mgmt_util-importPrivateKey.md)ou [wrapKey](key_mgmt_util-wrapKey.md). 

**nota**  
Não é possível importar uma chave PEM protegida por senha usando uma chave simétrica ou privada.

As chaves importadas funcionam muito como as chaves geradas no HSM. No entanto, o valor do [atributo OBJ\$1ATTR\$1LOCAL](key-attribute-table.md) é zero, o que indica que não foi gerado localmente. Você pode usar o comando a seguir para compartilhar uma chave simétrica ao importá-la. Você pode usar o comando `shareKey` em [cloudhsm\$1mgmt\$1util](cloudhsm_mgmt_util.md) para compartilhar a chave após ela ser importada. 

```
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
```

Depois de importar uma chave, certifique-se de marcar ou excluir o arquivo de chave. Esse comando não impede que você importe o mesmo material de chave várias vezes. O resultado, várias chaves com identificadores de chave distintos e o mesmo material de chave, dificultam o rastreamento do uso do material de chave e impedem que ela exceda seus limites criptográficos. 

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="imSymKey-syntax"></a>

```
imSymKey -h

imSymKey -f <key-file>
         -w <wrapping-key-handle>  
         -t <key-type>
         -l <label>
         [-id <key-ID>]
         [-sess]
         [-wk <wrapping-key-file> ]
         [-attest]
         [-min_srv <minimum-number-of-servers>]
         [-timeout <number-of-seconds> ]
         [-u <user-ids>]
```

## Exemplos
<a name="imSymKey-examples"></a>

Esses exemplos mostram como usar **imSymKey** para importar chaves simétricas para o seu HSMs.

**Example : Importar uma chave simétrica AES**  
Este exemplo usa **imSymKey** para importar uma chave simétrica AES para o. HSMs   
O primeiro comando usa o OpenSSL para gerar uma chave AES simétrica aleatória de 256 bits. Ele salva a chave no arquivo `aes256.key`.  

```
$  openssl rand -out aes256.key 32
```
O segundo comando é usado **imSymKey** para importar a chave AES do `aes256.key` arquivo para HSMs o. Ele usa a chave 20, uma chave AES no HSM, como a chave de encapsulamento e especifica um rótulo de `imported`. Ao contrário do ID, o rótulo não precisa ser exclusivo no cluster. O valor do parâmetro `-t` (tipo) é `31`, que representa o AES.   
A saída mostra que a chave no arquivo foi encapsulada e desencapsulada, e depois importada para o HSM, onde recebeu o identificador de chave 262180.  

```
Command:  imSymKey -f aes256.key -w 20 -t 31 -l imported

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 262180

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```
O próximo comando usa [getAttribute](key_mgmt_util-getAttribute.md) para obter o atributo OBJ\$1ATTR\$1LOCAL ([atributo 355](key-attribute-table.md)) da chave recém-importada e o grava no arquivo `attr_262180`.  

```
Command:  getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
```
Ao examinar o arquivo de atributo, você pode ver que o valor do atributo `OBJ_ATTR_LOCAL` é zero, o que indica que o material de chave não foi gerado no HSM.   

```
$  cat attributes/attr_262180_local
OBJ_ATTR_LOCAL
0x00000000
```

**Example : mover uma chave simétrica entre clusters**  
Este exemplo mostra como usar [exSymKey](key_mgmt_util-exSymKey.md) e **imSymKey** para mover uma chave AES de texto simples entre clusters. Você pode usar um processo como esse para criar um encapsulamento AES que exista nos HSMs dois clusters. Depois que a chave de empacotamento compartilhada estiver em vigor, você poderá usar [WrapKey [unWrapKey](key_mgmt_util-unwrapKey.md)](key_mgmt_util-wrapKey.md)e mover chaves criptografadas entre os clusters.  
O usuário da UC que executa essa operação deve ter permissão para fazer login no em ambos os clusters. HSMs   
O primeiro comando usa [exSymKey](key_mgmt_util-exSymKey.md) para exportar a chave 14, uma chave AES de 32 bits, do cluster 1 para o arquivo `aes.key`. Ele usa a chave 6, uma chave AES HSMs no cluster 1, como chave de empacotamento.   

```
Command: exSymKey -k 14 -w 6 -out aes.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "aes.key"
```
Em seguida, o usuário faz login no key\$1mgmt\$1util no cluster 2 e executa um **imSymKey** comando para importar a chave no `aes.key` arquivo para o cluster 2. HSMs Esse comando usa a chave 252152, uma chave AES HSMs no cluster 2, como chave de encapsulamento.   
Como as chaves de encapsulamento usadas por [exSymKey](key_mgmt_util-exSymKey.md) e **imSymKey** encapsulam e imediatamente desencapsulam as chaves de destino, as chaves de encapsulamento nos diferentes clusters não precisam ser iguais.   
A saída mostra que a chave foi importada com sucesso no cluster 2 e recebeu um identificador de chave de 21.   

```
Command:  imSymKey -f aes.key -w 262152 -t 31 -l xcluster

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 21

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```
Para provar que a chave 14 no cluster 1 e a chave 21 no cluster 2 possuem o mesmo material de chave, obtenha o valor de verificação de chave (KCV) de cada uma. Se os valores do KCV forem iguais, o material da chave é o mesmo.  
O seguinte comando usa [getAttribute](key_mgmt_util-getAttribute.md) no cluster 1 para gravar o valor do atributo KCV (atributo 371) da chave 14 no arquivo `attr_14_kcv`. Em seguida, ele usa um comando **cat** para obter o conteúdo do arquivo `attr_14_kcv`.  

```
Command:  getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file

$  cat attr_14_kcv
OBJ_ATTR_KCV
0xc33cbd
```
Esse comando semelhante usa [getAttribute](key_mgmt_util-getAttribute.md) no cluster 2 para gravar o valor do atributo KCV (atributo 371) da chave 21 no arquivo `attr_21_kcv`. Em seguida, ele usa um comando **cat** para obter o conteúdo do arquivo `attr_21_kcv`.  

```
Command:  getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file

$  cat attr_21_kcv
OBJ_ATTR_KCV
0xc33cbd
```
A saída mostra que os valores KCV das duas chaves são os mesmos, o que prova que o material de chave é o mesmo.  
Como o mesmo material HSMs de chave existe nos dois clusters, agora você pode compartilhar chaves criptografadas entre os clusters sem nunca expor a chave de texto simples. Por exemplo, você pode usar o comando `wrapKey` com a chave de encapsulamento 14 para exportar uma chave criptografada do cluster 1 e, em seguida, usar `unWrapKey` com a chave de encapsulamento 21 para importar a chave criptografada para o cluster 2.

**Example : Importar uma chave de sessão**  
Esse comando usa os parâmetros `-sess` de **imSymKey** para importar uma chave Triple DES de 192 bits que é válida apenas na sessão atual.   
O comando usa o parâmetro `-f` para especificar o arquivo que contém a chave a ser importada, o parâmetro `-t` para especificar o tipo de chave e o parâmetro `-w` para especificar a chave de encapsulamento. Ele usa o parâmetro `-l` para especificar um rótulo que categoriza a chave e o parâmetro `-id` para criar um identificador amigável, mas exclusivo, para ela. Ele também usa o parâmetro `-attest` para verificar o firmware que está importando a chave.   
A saída mostra que a chave foi encapsulada e desencapsulada com sucesso, importada para o HSM e recebeu o identificador de chave 37. Além disso, a verificação de atestado foi aprovada, o que indica que o firmware não foi adulterado.  

```
Command:  imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 37

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Em seguida, você pode usar os comandos [getAttribute](key_mgmt_util-getAttribute.md) ou [findKey](key_mgmt_util-findKey.md) para verificar os atributos da chave recém-importada. O comando a seguir usa **findKey** para verificar se a chave 37 possui o tipo, o rótulo e o ID especificados pelo comando e se ela é uma chave de sessão. Como mostrado na linha 5 da saída, **findKey** informa que a única chave que corresponde a todos os atributos é a chave 37.   

```
Command:  findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1

 number of keys matched from start index 0::0
37

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="imSymKey-params"></a>

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

**-f**  
Especifica o arquivo que contém essa chave a ser importada.  
O arquivo deve conter uma cópia em texto simples de uma chave AES ou DES tripla do tamanho especificado. RC4 e as chaves DES não são válidas no modo FIPS HSMs.  
+ **AES**: 16, 24 ou 32 bytes
+ **Triple DES (3DES)**: 24 bytes
Obrigatório: Sim

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-id**  
Especifica o identificador da chave definida pelo usuário. Digite uma string exclusiva no cluster. O padrão é uma string vazia.   
Padrão: sem valor de ID.  
Obrigatório: não

**-l**  
Especifica o rótulo da chave privada definida pelo usuário para a chave. Digite uma string.  
É possível usar qualquer frase que ajude a identificar a chave. Como o rótulo não precisa ser exclusivo, é possível usá-lo para agrupar e categorizar chaves.   
Obrigatório: Sim

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-t**  
Especifica o tipo da chave simétrica. Insira a constante que representa o tipo de chave. Por exemplo, para criar uma chave AES, insira `-t 31`.  
Valores válidos:   
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES).
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
Obrigatório: Sim

**-u**  
Compartilha a chave que você está importando com usuários especificados. Esse parâmetro dá permissão a outros usuários de criptografia do HSM (CUs) para usar essa chave em operações criptográficas.   
Digite um ID ou uma lista separada por vírgulas do usuário do HSM IDs, como -u. `5,6` Não inclua o ID do usuário atual do HSM. Para encontrar um ID, você pode usar o comando [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_mgmt_util-listUsers.html) na ferramenta de linha de comando cloudhsm\$1mgmt\$1util ou o comando [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/key_mgmt_util-listUsers.html) na ferramenta de linha de comando key\$1mgmt\$1util.   
Obrigatório: não

**-w**  
Especifica o identificador de chave da chave de encapsulamento. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Uma *chave de encapsulamento* é uma chave no HSM que é usada para criptografar (encapsular) e depois descriptografar (desencapsular) a chave durante o processo de importação. Somente as chaves AES podem ser usadas como chaves de encapsulamento.  
Você pode usar qualquer chave do AES (de qualquer tamanho) como uma chave de encapsulamento. Como a chave de encapsulamento encapsula e depois desencapsula imediatamente a chave de destino, você pode usar como chave AES somente de sessão como uma chave de encapsulamento. Para determinar se uma chave pode ser usada como uma chave de encapsulamento, use [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP` (262). Para criar uma chave de encapsulamento, use [genSymKey](key_mgmt_util-genSymKey.md) a fim de criar uma chave AES (digite 31).  
Se você usar o parâmetro `-wk` para especificar uma chave de encapsulamento externa, a chave de encapsulamento `-w` será usada para desencapsular, mas não para encapsular, a chave que está sendo importada.  
A chave 4 é uma chave interna sem suporte. Recomendamos usar uma chave AES criada e gerenciada por você como a chave de encapsulamento.
Obrigatório: Sim

**-wk**  
Use a chave AES no arquivo especificado para encapsular a chave que está sendo importada. Insira o caminho e o nome de um arquivo que contém uma chave AES de texto simples.   
Durante a inclusão desse parâmetro. **imSymKey** usa a chave no arquivo `-wk` para encapsular a chave que está sendo importada e usa a chave no HSM que é especificada pelo parâmetro `-w` para desencapsulá-la. Os valores dos parâmetros `-w` e `-wk` devem ser resolvidos para a mesma chave de texto simples.  
Padrão: use a chave de encapsulamento no HSM para desencapsular.  
Obrigatório: não

## Tópicos relacionados
<a name="imSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)
+ [exportPubKey](key_mgmt_util-exportPubKey.md)

# Inserir um objeto mascarado usando o AWS CloudHSM KMU
<a name="key_mgmt_util-insertMaskedObject"></a>

Use o **insertMaskedObject** comando no AWS CloudHSM key\$1mgmt\$1util para inserir um objeto mascarado de um arquivo em um módulo de segurança de hardware (HSM) designado. Objetos mascarados são objetos *clonados* que são extraídos de um HSM usando o comando [**extractMaskedObject**](key_mgmt_util-extractMaskedObject.md). Eles só podem ser usados após inseri-los novamente no cluster original. Você só pode inserir um objeto mascarado no mesmo cluster do qual ele foi gerado ou em um clone desse cluster. Isso inclui quaisquer versões clonadas do cluster original geradas ao [copiar um backup entre regiões](copy-backup-to-region.md) e [usar esse backup para criar um novo cluster](create-cluster-from-backup.md).

Objetos mascarados são uma maneira eficiente de descarregar e sincronizar chaves, incluindo chaves nonextractable (isto é, chaves que têm um [`OBJ_ATTR_EXTRACTABLE`](key-attribute-table.md) valor de `0`). [Dessa forma, as chaves podem ser sincronizadas com segurança entre clusters relacionados em diferentes regiões sem a necessidade de atualizar o AWS CloudHSM arquivo de configuração.](configure-tool.md)

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="insertMaskedObject-syntax"></a>

```
insertMaskedObject -h

insertMaskedObject -f <filename>
                   [-min_srv <minimum-number-of-servers>]
                   [-timeout <number-of-seconds>]
```

## Exemplos
<a name="insertMaskedObject-examples"></a>

Este exemplo mostra como usar **insertMaskedObject** para inserir um arquivo de objeto mascarado em um HSM.

**Example : Insert a Masked Object**  
Esse comando insere um objeto mascarado em um HSM de um arquivo denominado `maskedObj`. Quando o comando for bem-sucedido, **insertMaskedObject** retornará um identificador de chave para a chave descriptografada do objeto mascarado e uma mensagem de êxito.  

```
Command: insertMaskedObject -f maskedObj

Cfm3InsertMaskedObject returned: 0x00 : HSM Return: SUCCESS
        New Key Handle: 262433

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="insertMaskedObject-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-f`**  
Especifica o nome do arquivo do objeto mascarado a ser inserido.  
Obrigatório: Sim

**`-min_srv`**  
Especifica o número mínimo de servidores nos quais o objeto mascarado inserido é sincronizado antes da expiração do valor do parâmetro `-timeout`. Se o objeto não for sincronizado com o número especificado de servidores na hora alocada, ela não será inserido.  
Padrão: 1  
Obrigatório: não

**`-timeout`**  
Especifica o número de segundos a aguardar a sincronização da chave entre os servidores quando o parâmetro `min-serv` é incluído. Se nenhum número for especificado, a sondagem continuará para sempre.  
Padrão: sem limite  
Obrigatório: não

## Tópicos relacionados
<a name="insertMaskedObject-seealso"></a>
+ [extractMaskedObject](key_mgmt_util-extractMaskedObject.md)
+ [syncKey](cloudhsm_mgmt_util-syncKey.md)
+ [Copiar um backup entre regiões](copy-backup-to-region.md)
+ [Criando um AWS CloudHSM cluster a partir de um backup anterior](create-cluster-from-backup.md)

# Valide o arquivo de chave usando AWS CloudHSM o KMU
<a name="key_mgmt_util-IsValidKeyHandlefile"></a>

Use o **IsValidKeyHandlefile** comando no AWS CloudHSM key\$1mgmt\$1util para descobrir se um arquivo de chave contém uma chave privada real ou uma chave RSA PEM falsa. Um arquivo PEM falso não contém o material da chave privada real, mas, em vez disso, faz referência à chave privada no HSM. Esse arquivo pode ser usado para estabelecer o SSL/TLS descarregamento do seu servidor web para o. AWS CloudHSM Para obter mais informações, consulte [SSL/TLS Offload on Linux using Tomcat](third-offload-linux-jsse.md) ou [SSL/TLS Offload on Linux using NGINX or Apache](third-offload-linux-openssl.md).

**nota**  
**IsValidKeyHandlefile** funciona apenas para chaves RSA.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="IsValidKeyHandlefile-syntax"></a>

```
IsValidKeyHandlefile -h

IsValidKeyHandlefile -f <rsa-private-key-file>
```

## Exemplos
<a name="IsValidKeyHandlefile-examples"></a>

Esses exemplos mostram como usar **IsValidKeyHandlefile** para determinar se um determinado arquivo de chave contém o material de chave real ou o material de chave PEM falsa.

**Example : Validate a Real Private Key**  
Esse comando confirma que o arquivo chamado `privateKey.pem` contém o material de chave real.  

```
Command: IsValidKeyHandlefile -f privateKey.pem

Input key file has real private key
```

**Example : Invalidate a Fake PEM Key**  
Esse comando confirma que o arquivo chamado `caviumKey.pem` contém o material de chave PEM falsa feito no identificador de chave `15`.  

```
Command: IsValidKeyHandlefile -f caviumKey.pem
            
Input file has invalid key handle: 15
```

## Parâmetros
<a name="IsValidKeyHandlefile-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-h`**  
Exibe a ajuda da linha de comando para o comando.  
Obrigatório: Sim

**`-f`**  
Especifica o nome do arquivo de chave privada RSA a ser verificado para ver se há material de chave válido.  
Obrigatório: Sim

## Tópicos relacionados
<a name="IsValidKeyHandlefile-seealso"></a>
+ [getCaviumPrivChave](key_mgmt_util-getCaviumPrivKey.md)
+ [Descarregamento de SSL/TLS no Linux usando Tomcat](third-offload-linux-jsse.md) 
+ [Descarregamento de SSL/TLS no Linux usando NGINX ou Apache](third-offload-linux-openssl.md)

# Listar os atributos de uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-listAttributes"></a>

Use o **listAttributes** comando no AWS CloudHSM key\$1mgmt\$1util para listar os atributos de uma AWS CloudHSM chave e as constantes que os representam. Você usa essas constantes para identificar os atributos nos comandos [getAttribute](key_mgmt_util-getAttribute.md) e [setAttribute](key_mgmt_util-setAttribute.md). Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="listAttributes-syntax"></a>

Este comando não possui parâmetros.

```
listAttributes
```

## Exemplo
<a name="listAttributes-examples"></a>

Este comando lista os principais atributos que você pode obter e alterar em key\$1mgmt\$1util, bem como as constantes que os representam. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md). 

Para representar todos os atributos no comando [getAttribute](key_mgmt_util-getAttribute.md) em key\$1mgmt\$1util, use `512`.

```
Command: listAttributes

Following are the possible attribute values for getAttributes:

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_KEY_TYPE               = 256
      OBJ_ATTR_ENCRYPT                = 260
      OBJ_ATTR_DECRYPT                = 261
      OBJ_ATTR_WRAP                   = 262
      OBJ_ATTR_UNWRAP                 = 263
      OBJ_ATTR_SIGN                   = 264
      OBJ_ATTR_VERIFY                 = 266
      OBJ_ATTR_LOCAL                  = 355
      OBJ_ATTR_MODULUS                = 288
      OBJ_ATTR_MODULUS_BITS           = 289
      OBJ_ATTR_PUBLIC_EXPONENT        = 290
      OBJ_ATTR_VALUE_LEN              = 353
      OBJ_ATTR_EXTRACTABLE            = 354
      OBJ_ATTR_KCV                    = 371
```

## Tópicos relacionados
<a name="listAttributes-seealso"></a>
+ [listAttributes](cloudhsm_mgmt_util-listAttributes.md) em cloudhsm\$1mgmt\$1util
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [setAttribute](key_mgmt_util-setAttribute.md)
+ [Referência de atributos de chave](key-attribute-table.md)

# Listar todos os AWS CloudHSM usuários usando KMU
<a name="key_mgmt_util-listUsers"></a>

Use o **listUsers** comando no AWS CloudHSM key\$1mgmt\$1util para colocar os usuários nos módulos de segurança de hardware (HSM), junto com o tipo de usuário e outros atributos.

Em key\$1mgmt\$1util, ListUsers retorna uma saída que representa HSMs tudo no cluster, mesmo que não sejam consistentes. Para obter informações sobre os usuários em cada HSM, use o comando [listUsers](#key_mgmt_util-listUsers) em cloudhsm\$1mgmt\$1util.

Os comandos do usuário em key\$1mgmt\$1util **listUsers** e [getKeyInfo](key_mgmt_util-getKeyInfo.md), são comandos somente para leitura que os usuários criptográficos () têm permissão para executar. CUs Os comandos de gerenciamento de usuários restantes fazem parte da cloudhsm\$1mgmt\$1util. Eles são administrados por responsáveis pela criptografia (CO) que têm permissões de gerenciamento de usuários.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="listUsers-syntax"></a>

```
listUsers 

listUsers -h
```

## Exemplo
<a name="listUsers-examples"></a>

Esse comando lista os usuários HSMs do cluster e seus atributos. Você pode usar o `User ID` atributo para identificar usuários em outros comandos, como [FindKey](key_mgmt_util-findKey.md)[,](key_mgmt_util-getAttribute.md) getAttribute e. [getKeyInfo](key_mgmt_util-getKeyInfo.md)

```
Command:  listUsers

        Number Of Users found 4

        Index       User ID     User Type       User Name           MofnPubKey    LoginFailureCnt         2FA
        1                1      PCO             admin                     NO               0               NO
        2                2      AU              app_user                  NO               0               NO
        3                3      CU              alice                     YES              0               NO
        4                4      CU              bob                       NO               0               NO
        5                5      CU              trent                     YES              0               NO

        Cfm3ListUsers returned: 0x00 : HSM Return: SUCCESS
```

A saída inclui os seguintes atributos do usuário:
+ **User ID**: identifica o usuário em comandos da key\$1mgmt\$1util e do [cloudhsm\$1mgmt\$1util](cloudhsm_mgmt_util.md).
+ [User type](understanding-users-cmu.md): determina as operações que o usuário pode executar no HSM.
+ **User Name**: exibe o nome amigável definido pelo usuário para o usuário.
+ **MofnPubKey**: indica se o usuário registrou um par de chaves para assinar tokens de [autenticação de quórum](quorum-authentication.md).
+ **LoginFailureCnt**: indica o número de vezes que o usuário fez login sem sucesso. 
+ **2FA**: indica que o usuário habilitou a autenticação multifator. 

## Parâmetros
<a name="listUsers-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

## Tópicos relacionados
<a name="listUsers-seealso"></a>
+ [ListUsers](#key_mgmt_util-listUsers) em cloudhsm\$1mgmt\$1util
+ [findKey](key_mgmt_util-findKey.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)

# Faça login e saia de um HSM usando AWS CloudHSM KMU
<a name="key_mgmt_util-loginHSM"></a>

Use os comandos **loginHSM** e **logoutHSM** no key\$1mgmt\$1util do AWS CloudHSM para fazer login e logout dos módulos de segurança de hardware (HSM) em um cluster. Depois de fazer login no HSMs, você pode usar key\$1mgmt\$1util para realizar uma variedade de operações de gerenciamento de chaves, incluindo geração, sincronização e agrupamento de chaves públicas e privadas.

Antes de executar qualquer comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start). [Para gerenciar chaves com key\$1mgmt\$1util, você deve fazer login no HSMs como usuário criptográfico (CU).](understanding-users-cmu.md#crypto-user-cmu)

**nota**  
Se você exceder cinco tentativas incorretas de login, sua conta será bloqueada. Se você criou seu cluster antes de fevereiro de 2018, sua conta será bloqueada após 20 tentativas incorretas de login. Para desbloquear a conta, um responsável pela criptografia (CO) precisará redefinir sua senha usando o comando [changePswd](cloudhsm_mgmt_util-changePswd.md) no cloudhsm\$1mgmt\$1util.  
Se você tiver mais de um HSM no cluster, pode ser que mais tentativas de login sejam permitidas antes de a sua conta ser bloqueada. Isso ocorre porque o cliente CloudHSM equilibra a carga em vários. HSMs Sendo assim, pode ser que as tentativas de login não comecem sempre no mesmo HSM. Se você estiver testando essa funcionalidade, recomendamos fazer isso em um cluster com apenas um HSM ativo. 

## Sintaxe
<a name="loginHSM-syntax"></a>

```
loginHSM -h

loginHSM -u <user type>
         { -p | -hpswd } <password>
         -s <username>
```

## Exemplo
<a name="loginHSM-examples"></a>

Este exemplo mostra como fazer login e sair do HSMs em um cluster com os `logoutHSM` comandos `loginHSM` e.

**Example : Faça login no HSMs**  
Esse comando conecta você HSMs como usuário criptográfico (`CU`) com o nome de usuário `example_user` e a senha`aws`. A saída mostra que você fez login em tudo HSMs no cluster.  

```
Command:  loginHSM -u CU -s example_user -p aws

Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Faça login com uma senha oculta**  
Esse comando é o mesmo do exemplo acima, exceto que, desta vez, você especifica que o sistema deve ocultar a senha.  

```
Command:  loginHSM -u CU -s example_user -hpswd
```
O sistema solicita que você forneça sua senha. Você insere a senha, o sistema oculta a senha e a saída mostra que o comando foi bem-sucedido e que você se conectou ao HSMs.  

```
Enter password: 

Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

Command:
```

**Example : Sair do HSMs**  
Esse comando desconecta você do HSMs. A saída mostra que você se desconectou de tudo HSMs no cluster.  

```
Command: logoutHSM

Cfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="loginHSM-parameters"></a>

**-h**  
Exibe a ajuda referente a esse comando.

**-u**  
Especifica o tipo de usuário de login. Para usar a key\$1mgmt\$1util, você deve fazer login como um CU.  
Obrigatório: Sim

**-s**  
Especifica o nome de usuário de login.  
Obrigatório: Sim

**\$1-p \$1 -hpswd\$1**  
Especifique a senha de login com `-p`. A senha aparece em texto sem formatação quando você a digita. Para ocultar sua senha, use o `-hpswd`parâmetro opcional no lugar da senha`-p` e siga as instruções.  
Obrigatório: Sim

## Tópicos relacionados
<a name="loginHSM-seealso"></a>
+ [exit](key_mgmt_util-exit.md)

# Defina os atributos das AWS CloudHSM chaves usando o KMU
<a name="key_mgmt_util-setAttribute"></a>

Use o **setAttribute** comando no AWS CloudHSM key\$1mgmt\$1util para converter uma chave válida somente na sessão atual em uma chave persistente que existe até você excluí-la. Ele faz isso alterando o valor do atributo de token da chave (`OBJ_ATTR_TOKEN`) de false (`0`) para true (`1`). Você só pode alterar os atributos das chaves que possui.

Você também pode usar o comando **setAttribute** em cloudhsm\$1mgmt\$1util para alterar os atributos de rótulos, encapsulamento, desencapsulamento, criptografia e descriptografia.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="setAttribute-syntax"></a>

```
setAttribute -h 

setAttribute -o <object handle> 
             -a 1
```

## Exemplo
<a name="setAttribute-examples"></a>

Este exemplo mostra como converter uma chave de sessão em uma chave persistente. 

O primeiro comando usa o `-sess` parâmetro de [genSymKey](key_mgmt_util-genSymKey.md)para criar uma chave AES de 192 bits que é válida somente na sessão atual. A saída mostra que o identificador da nova chave de sessão é `262154`.

```
Command: genSymKey -t 31 -s 24 -l tmpAES -sess
      
        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 262154

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```

Esse comando usa [findKey](key_mgmt_util-findKey.md) para encontrar as chaves de sessão na sessão atual. A saída verifica que a chave `262154` é uma chave de sessão.

```
Command:  findKey -sess 1

Total number of keys present 1

 number of keys matched from start index 0::0
262154

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

Esse comando usa **setAttribute** para converter a chave `262154` de uma chave de sessão em uma chave persistente. Para fazer isso, ele muda o valor do atributo de token (`OBJ_ATTR_TOKEN`) da chave de `0` (false) para `1` (true). Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).

O comando usa o parâmetro `-o` para especificar o identificador de chave (`262154`) e o parâmetro `-a` para especificar a constante que representa o atributo de token (`1`). Quando você executa o comando, ele solicita um valor para o atributo de token. O único valor válido é `1` (true); o valor de uma chave persistente.

```
Command: setAttribute -o 262154 -a 1
         This attribute is defined as a boolean value.
          Enter the boolean attribute value (0 or 1):1

        Cfm3SetAttribute returned: 0x00 : HSM Return: SUCCESS

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

Para confirmar que a chave `262154` agora é persistente, esse comando usa **findKey** para procurar chaves de sessão (`-sess 1`) e chaves persistentes (`-sess 0`). Dessa vez, o comando não encontra nenhuma chave de sessão, mas retorna `262154` na lista de chaves persistentes.

```
Command: findKey -sess 1

Total number of keys present 0

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS



Command: findKey -sess 0

Total number of keys present 5

 number of keys matched from start index 0::4
6, 7, 524296, 9, 262154

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="setAttribute-parameters"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-o**  
Especifica o identificador da chave de destino. Você pode especificar apenas uma chave em cada comando. Para obter o identificador de chave de uma chave, use [findKey](key_mgmt_util-findKey.md).  
Obrigatório: Sim

**-a**  
Especifica a constante que representa o atributo que você deseja alterar. O único valor válido é `1`, que representa o atributo de token, `OBJ_ATTR_TOKEN`.  
Para obter os atributos e seus valores inteiros, use [listAttributes](key_mgmt_util-listAttributes.md).  
Obrigatório: Sim

## Tópicos relacionados
<a name="setAttribute-seealso"></a>
+ [setAttribute](cloudhsm_mgmt_util-setAttribute.md) em cloudhsm\$1mgmt\$1util
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [listAttributes](key_mgmt_util-listAttributes.md)
+ [Referência de atributos de chave](key-attribute-table.md)

# Gere uma assinatura usando o AWS CloudHSM KMU
<a name="key_mgmt_util-sign"></a>

Use o **sign** comando no AWS CloudHSM key\$1mgmt\$1util para usar uma chave privada escolhida para gerar uma assinatura para um arquivo.

Para usar **sign**, primeiro você deve ter uma chave privada no HSM. Você pode gerar uma chave privada com os comandos **[genSymKey](key_mgmt_util-genSymKey.md)**, **[genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)** ou **[genECCKeyPair](key_mgmt_util-genECCKeyPair.md)**. Você também pode importar uma com o comando **[importPrivateKey](key_mgmt_util-importPrivateKey.md)**. Para mais informações, consulte [Gerar chaves](generate-keys.md).

O comando **sign** usa um mecanismo de assinatura designada pelo usuário, representado por um número inteiro, para assinar um arquivo de mensagem. Para obter uma lista de possíveis mecanismos de assinatura, consulte [Parâmetros](#sign-parameters).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="sign-syntax"></a>

```
sign -h

sign -f <file name>
     -k <private key handle>
     -m <signature mechanism>
     -out <signed file name>
```

## Exemplo
<a name="sign-examples"></a>

Este exemplo mostra como usar **sign** para assinar um arquivo.

**Example : Sign a file**  
Esse comando assina um arquivo chamado `messageFile` com uma chave privada com identificador `266309`. Ele usa o mecanismo de assinatura `SHA256_RSA_PKCS` (`1`) e salva o arquivo assinado resultante como `signedFile`.  

```
Command: sign -f messageFile -k 266309 -m 1 -out signedFile

Cfm3Sign returned: 0x00 : HSM Return: SUCCESS

signature is written to file signedFile

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="sign-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-f`**  
O nome do arquivo a ser assinado.  
Obrigatório: Sim

**`-k`**  
O identificador da chave privada a ser usada para assinatura.  
Obrigatório: Sim

**`-m`**  
Um inteiro que representa o mecanismo de assinatura a ser usado para assinatura. Os mecanismos possíveis correspondem aos seguintes números inteiros:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-sign.html)
Obrigatório: Sim

**`-out`**  
O nome do arquivo no qual o arquivo assinado será salvo.  
Obrigatório: Sim

## Tópicos relacionados
<a name="sign-seealso"></a>
+ [verify](key_mgmt_util-verify.md)
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [2 gênios RSAKey Pair](key_mgmt_util-genRSAKeyPair.md)
+ [2 gênios ECCKey Pair](key_mgmt_util-genECCKeyPair.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [Gerar chaves](generate-keys.md)

# Desembrulhe uma AWS CloudHSM chave usando KMU
<a name="key_mgmt_util-unwrapKey"></a>

Use o **unWrapKey** comando na ferramenta AWS CloudHSM key\$1mgmt\$1util para importar uma chave simétrica ou privada encapsulada (criptografada) de um arquivo para o HSM. Ele é projetado para importar chaves criptografadas que foram encapsuladas pelo comando [wrapKey](key_mgmt_util-wrapKey.md) em key\$1mgmt\$1util, mas também pode ser usado para desencapsular chaves que foram encapsuladas com outras ferramentas. No entanto, nessas situações, recomendamos usar as bibliotecas de software [PKCS\$111](pkcs11-library.md) ou [JCE](java-library.md) para desencapsular a chave.

As chaves importadas funcionam como as chaves geradas por AWS CloudHSM. No entanto, o valor de seu [atributo OBJ\$1ATTR\$1LOCAL](key-attribute-table.md) é zero, o que indica que não foi gerada localmente.

Depois de importar uma chave, certifique-se de marcar ou excluir o arquivo de chave. Esse comando não impede que você importe o mesmo material de chave várias vezes. O resultado, várias chaves com identificadores de chave distintos e o mesmo material de chave, dificultam o rastreamento do uso do material de chave e impedem que elas excedam seus limites de criptografia.

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="unwrapKey-syntax"></a>

```
unWrapKey -h

unWrapKey -f <key-file-name> 
          -w <wrapping-key-handle> 
          [-sess]
          [-min_srv <minimum-number-of-HSMs>]          
          [-timeout <number-of-seconds>]
          [-aad <additional authenticated data filename>]
          [-tag_size <tag size>]
          [-iv_file <IV file>]
          [-attest]
          [-m <wrapping-mechanism>]
          [-t <hash-type>]
          [-nex]
          [-u <user id list>]
          [-m_value <number of users needed for approval>]
          [-noheader]
          [-l <key-label>]
          [-id <key-id>]
          [-kt <key-type>]
          [-kc <key-class>]
          [-i <unwrapping-IV>]
```

## Exemplo
<a name="unwrapKey-examples"></a>

Esses exemplos mostram como usar **unWrapKey** para importar uma chave encapsulada de um arquivo para HSMs o. No primeiro exemplo, desencapsulamos uma chave que foi encapsulada com o comando **[wrapKey](key_mgmt_util-wrapKey.md)** key\$1mgmt\$1util e que, portanto, tem um cabeçalho. No segundo exemplo, desencapsulamos uma chave que foi encapsulada fora da key\$1mgmt\$1util e que, portanto, não tem um cabeçalho.

**Example : desencapsular uma chave (com cabeçalho)**  
Esse comando importa uma cópia encapsulada de uma chave simétrica 3DES em um HSM. A chave é desencapsulada com uma chave AES com rótulo `6`, que é criptograficamente idêntica a que foi usada para encapsular a chave 3DES. A saída mostra que a chave no arquivo foi desencapsulada e importada, e que o identificador da chave importada é `29`.  

```
        Command:  unWrapKey -f 3DES.key -w 6 -m 4

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Key Unwrapped.  Key Handle: 29

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : desencapsular uma chave (sem cabeçalho)**  
Esse comando importa uma cópia encapsulada de uma chave simétrica 3DES em um HSM. A chave é desencapsulada com uma chave AES com rótulo `6`, que é criptograficamente idêntica a que foi usada para encapsular a chave 3DES. Como essa chave 3DES não foi encapsulada com key\$1mgmt\$1util, o parâmetro `noheader` é especificado, juntamente com seus parâmetros de acompanhamento necessários: um rótulo de chave (`unwrapped3DES`), uma classe de chave (`4`) e um tipo de chave (`21`). A saída mostra que a chave no arquivo foi desencapsulada e importada, e que o identificador da chave importada é `8`.  

```
Command: unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4
      
      Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS
       Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS

       Key Unwrapped. Key Handle: 8

       Cluster Error Status
       Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
       Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

## Parâmetros
<a name="unwrapKey-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-f**  
O caminho e o nome do arquivo que contém a chave encapsulada.  
Obrigatório: Sim

**-w**  
Especifica a chave de empacotamento. Insira o identificador de uma chave AES ou chave RSA no HSM. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Para criar uma chave de agrupamento, use [genSymKey](key_mgmt_util-genSymKey.md)para gerar uma chave AES (tipo 31) ou [gen RSAKey Pair para gerar um par](key_mgmt_util-genRSAKeyPair.md) de chaves RSA (tipo 0). Se você estiver usando um par de chaves RSA, certifique-se de encapsular a chave com uma das chaves e desencapsular com a outra. Para determinar se uma chave pode ser usada como uma chave de empacotamento, use [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP`, que é representado pela constante `262`.  
Obrigatório: Sim

**-sess**  
Cria uma chave que existe apenas na sessão atual. A chave não pode ser recuperada após o término da sessão.  
Use esse parâmetro quando precisar de uma chave apenas brevemente, como uma chave de encapsulamento que criptografa e, em seguida, descriptografa rapidamente outra chave. Não use uma chave de sessão para criptografar dados que você talvez precise descriptografar após o término da sessão.  
Para transformar uma chave de sessão em uma chave persistente (token), use [setAttribute](key_mgmt_util-setAttribute.md).  
Padrão: a chave é persistente.   
Obrigatório: não

**-min\$1srv**  
Especifica o número mínimo HSMs no qual a chave é sincronizada antes que o valor do `-timeout` parâmetro expire. Se a chave não for sincronizada com o número especificado de servidores na hora alocada, ela não será criada.  
AWS CloudHSM sincroniza automaticamente todas as chaves com cada HSM no cluster. Para acelerar seu processo, defina o valor de `min_srv` como menor que o número de HSMs no cluster e defina um valor de tempo limite baixo. No entanto, algumas solicitações talvez não gerem uma chave.  
Padrão: 1  
Obrigatório: não

**-timeout**  
Especifica por quanto tempo (em segundos) o comando espera que uma chave seja sincronizada com o número HSMs especificado pelo parâmetro. `min_srv`   
Este parâmetro é válido somente quando o parâmetro `min_srv` também é usado no comando.  
Padrão: sem limite de tempo. O comando espera indefinidamente e retorna somente quando a chave é sincronizada com o número mínimo de servidores.  
Obrigatório: não

**-attest**  
Executa uma verificação de integridade que verifica se o firmware no qual o cluster é executado não foi adulterado.  
Padrão: sem verificação de atestado.  
Obrigatório: não

**-nex**  
Torna a chave não extraível. A chave gerada não pode ser [exportada do HSM](export-keys.md).  
Padrão: a chave é extraível.  
Obrigatório: não

**-m**  
O valor que representa o mecanismo de encapsulamento. O CloudHSM é compatível com os seguintes mecanismos:       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-unwrapKey.html)
Obrigatório: Sim  
Ao usar o mecanismo de `RSA_OAEP` agrupamento, o tamanho máximo da chave que você pode agrupar é determinado pelo módulo da chave RSA e pelo comprimento do hash especificado da seguinte forma: Tamanho máximo da chave = modulusLengthIn Bytes- (hashLengthIn2\$1 Bytes) -2.  
Ao usar o mecanismo de encapsulamento RSA\$1PKCS, o tamanho máximo da chave que você pode encapsular é determinado pelo módulo da chave RSA da seguinte forma: Tamanho máximo da chave = (Bytes -11). modulusLengthIn

**-t**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-unwrapKey.html)
Obrigatório: não

**-noheader**  
Se estiver desencapsulando uma chave que foi encapsulada fora de key\$1mgmt\$1util, você deverá especificar esse parâmetro e todos os outros parâmetros associados.  
Obrigatório: não  
Se especificar esse parâmetro, você** também **deverá especificar os seguintes parâmetros `-noheader`:
+ **-l**

  Especifica o rótulo a ser adicionado à chave desencapsulada.

  Obrigatório: Sim
+ **-kc**

  Especifica a classe da chave a ser desencapsulada. Os seguintes valores são aceitáveis:

  3 = chave privada de um par de chaves pública/privada

  4 = chave secreta (simétrica).

  Obrigatório: Sim
+ **-kt**

  Especifica o tipo da chave a ser desencapsulada. Os seguintes valores são aceitáveis:

  0 = `RSA`

  1 = `DSA`

  3 = `ECC`

  16 = `GENERIC_SECRET`

  21 = `DES3`

  31 = `AES`

  Obrigatório: Sim
Você também pode **opcionalmente** especificar os seguintes parâmetros `-noheader` :  
+ **-id**

  O ID a ser adicionado à chave desencapsulada.

  Obrigatório: não
+ **-i**

  O desencapsulamento do vetor de inicialização (IV) a ser usado.

  Obrigatório: não

[1] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte [Conformidade com o FIPS 140: suspensão do mecanismo de 2024](compliance-dep-notif.md#compliance-dep-notif-1).

## Tópicos relacionados
<a name="unwrapKey-seealso"></a>
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)

# Verifique a assinatura de um arquivo usando o AWS CloudHSM KMU
<a name="key_mgmt_util-verify"></a>

Use o **verify** comando no AWS CloudHSM key\$1mgmt\$1util para confirmar se um arquivo foi assinado ou não por uma determinada chave. Para fazer isso, o comando **verify** compara um arquivo assinado com um arquivo de origem e analisa se eles estão criptograficamente relacionados com base em uma determinada chave pública e no mecanismo de assinatura. Os arquivos podem ser conectados AWS CloudHSM com a **[sign](key_mgmt_util-sign.md)** operação.

Os mecanismos de assinatura são representados pelos inteiros listados na seção de [parâmetros](#verify-parameters).

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU).

## Sintaxe
<a name="verify-syntax"></a>

```
verify -h

verify -f <message-file>
       -s <signature-file>
       -k <public-key-handle>
       -m <signature-mechanism>
```

## Exemplo
<a name="verify-examples"></a>

Esses exemplos mostram como usar **verify** para verificar se uma determinada chave pública foi usada para assinar um determinado arquivo.

**Example : Verificar a assinatura de um arquivo**  
Esse comando tenta verificar se um arquivo chamado `hardwarCert.crt` foi assinado pela chave pública `262276` usando o mecanismo de assinatura `SHA256_RSA_PKCS` para produzir o arquivo assinado `hardwareCertSigned`. Como os parâmetros fornecidos representam um relacionamento de assinatura verdadeiro, o comando retorna uma mensagem de êxito.  

```
Command: verify -f hardwareCert.crt -s hardwareCertSigned -k 262276 -m 1

Signature verification successful

Cfm3Verify returned: 0x00 : HSM Return: SUCCESS
```

**Example : provar relacionamento de assinatura falso**  
Esse comando verifica se um arquivo chamado `hardwareCert.crt` foi assinado pela chave pública `262276` usando o mecanismo de assinatura `SHA256_RSA_PKCS` para produzir o arquivo assinado `userCertSigned`. Como os parâmetros fornecidos não formam um relacionamento de assinatura verdadeiro, o comando retorna uma mensagem de erro.  

```
Command: verify -f hardwarecert.crt -s usercertsigned -k 262276 -m 1
Cfm3Verify returned: 0x1b

CSP Error: ERR_BAD_PKCS_DATA
```

## Parâmetros
<a name="verify-parameters"></a>

Esse comando usa os seguintes parâmetros.

**`-f`**  
O nome do arquivo de mensagens de origem.  
Obrigatório: Sim

**`-s`**  
O nome do arquivo assinado.  
Obrigatório: sim

**`-k`**  
O identificador da chave pública que é considerado para ser usado para assinar o arquivo.  
Obrigatório: Sim

**`-m`**  
Um inteiro que representa o mecanismo de assinatura proposto usado para assinar o arquivo. Os mecanismos possíveis correspondem aos seguintes números inteiros:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-verify.html)
Obrigatório: Sim

## Tópicos relacionados
<a name="verify-seealso"></a>
+ [sign](key_mgmt_util-sign.md)
+ [getCert](key_mgmt_util-genECCKeyPair.md)
+ [Gerar chaves](generate-keys.md)

# Exportar uma AWS CloudHSM chave usando o KMU
<a name="key_mgmt_util-wrapKey"></a>

Use o **wrapKey** comando no AWS CloudHSM key\$1mgmt\$1util para exportar uma cópia criptografada de uma chave simétrica ou privada do módulo de segurança de hardware (HSM) para um arquivo. Ao executar **wrapKey**, você especifica a chave a ser exportada, uma chave no HSM para criptografar (encapsular) a chave que deseja exportar e o arquivo de saída.

O comando `wrapKey` grava a chave criptografada em um arquivo que você especifica, mas não remove a chave do HSM ou impede que você a use em operações de criptografia. É possível exportar a mesma chave várias vezes. 

Somente o proprietário de uma chave, ou seja, o usuário CU que a criou, pode exportá-la. Os usuários que compartilham a chave podem usá-la em operações de criptografia, mas não podem exportá-la.

Para importar a chave criptografada novamente no HSM, use [unWrapKey](key_mgmt_util-unwrapKey.md). Para exportar uma chave de texto simples de um HSM, use [exSymKey](key_mgmt_util-exSymKey.md)ou [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)conforme apropriado. O [aesWrapUnwrap](key_mgmt_util-aesWrapUnwrap.md)comando não pode descriptografar (desempacotar) as chaves que criptografam. **wrapKey**

Antes de executar um comando key\$1mgmt\$1util, você deve [iniciar key\$1mgmt\$1util](key_mgmt_util-setup.md#key_mgmt_util-start) e [fazer login](key_mgmt_util-log-in.md) no HSM como um usuário de criptografia (CU). 

## Sintaxe
<a name="wrapKey-syntax"></a>

```
wrapKey -h

wrapKey -k <exported-key-handle>
        -w <wrapping-key-handle>
        -out <output-file>
        [-m <wrapping-mechanism>]
        [-aad <additional authenticated data filename>]
        [-t <hash-type>]
        [-noheader]
        [-i <wrapping IV>]  
        [-iv_file <IV file>]
        [-tag_size <num_tag_bytes>>]
```

## Exemplo
<a name="wrapKey-examples"></a>

**Example**  
Esse comando exporta uma chave simétrica Triple DES (3DES) de 192 bits (identificador de chave `7`). Ele usa uma chave AES de 256 bits no HSM (identificador de chave `14`) para encapsular a chave `7`. Em seguida, ele grava a chave 3DES criptografada no arquivo `3DES-encrypted.key`.  
A saída mostra que a chave `7` (3DES) foi encapsulada e gravada com sucesso no arquivo especificado. A chave criptografada tem 307 bytes de comprimento.  

```
        Command:  wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4

        Key Wrapped.

        Wrapped Key written to file "3DES-encrypted.key length 307

        Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS
```

## Parâmetros
<a name="wrapKey-params"></a>

**-h**  
Exibe a ajuda referente ao comando.   
Obrigatório: Sim

**-k**  
O identificador da chave que você deseja exportar. Digite o identificador da uma chave simétrica ou particular de sua propriedade. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Para verificar se uma chave pode ser exportada, use o comando [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_EXTRACTABLE`, que é representado pela constante `354`. Para obter ajuda sobre a interpretação dos principais atributos, consulte [AWS CloudHSM referência de atributo-chave para KMU](key-attribute-table.md).  
Você pode exportar apenas as chaves que você possui. Para encontrar o proprietário de uma chave, use o [getKeyInfo](key_mgmt_util-getKeyInfo.md)comando.  
Obrigatório: Sim

**-w**  
Especifica a chave de empacotamento. Insira o identificador de uma chave AES ou chave RSA no HSM. Esse parâmetro é obrigatório. Para encontrar os identificadores de chave, use o comando [findKey](key_mgmt_util-findKey.md).  
Para criar uma chave de empacotamento, use [genSymKey](key_mgmt_util-genSymKey.md)para gerar uma chave AES (tipo 31) ou [gen RSAKey Pair para gerar um par](key_mgmt_util-genRSAKeyPair.md) de chaves RSA (tipo 0). Se você estiver usando um par de chaves RSA, certifique-se de encapsular a chave com uma das chaves e desencapsular com a outra. Para determinar se uma chave pode ser usada como uma chave de empacotamento, use [getAttribute](key_mgmt_util-getAttribute.md) para obter o valor do atributo `OBJ_ATTR_WRAP`, que é representado pela constante `262`.  
Obrigatório: Sim

**-out**  
O caminho e o nome do arquivo de saída. Quando o comando é bem-sucedido, esse arquivo contém uma cópia criptografada da chave exportada. Se o arquivo já existir, o comando o sobrescreverá sem aviso prévio.  
Obrigatório: Sim

**-m**  
O valor que representa o mecanismo de encapsulamento. O CloudHSM é compatível com os seguintes mecanismos:       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-wrapKey.html)
Obrigatório: Sim  
Ao usar o mecanismo de `RSA_OAEP` agrupamento, o tamanho máximo da chave que você pode agrupar é determinado pelo módulo da chave RSA e pelo comprimento do hash especificado da seguinte forma: Tamanho máximo da chave = (modulusLengthInBytes-2\$1 Bytes-2). hashLengthIn  
Ao usar o mecanismo de encapsulamento RSA\$1PKCS, o tamanho máximo da chave que você pode encapsular é determinado pelo módulo da chave RSA da seguinte forma: Tamanho máximo da chave = (Bytes -11). modulusLengthIn

**-t**  
O valor que representa o algoritmo hash. O CloudHSM é compatível com os seguintes algoritmos:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/key_mgmt_util-wrapKey.html)
Obrigatório: não

**-aad**  
O nome do arquivo que contém `AAD`.  
Válido apenas para os mecanismos `AES_GCM` e `CLOUDHSM_AES_GCM`.
Obrigatório: não

**-noheader**  
Omite o cabeçalho que especifica os [atributos de chave](key_mgmt_util-reference.md) específicos do CloudHSM. Use este parâmetro *somente* se desejar desencapsular a chave com ferramentas fora da key\$1mgmt\$1util.  
Obrigatório: não

**-i**  
O vetor de inicialização (IV) (valor hexadecimal).  
Válido somente quando passado com o parâmetro `-noheader` para mecanismos `CLOUDHSM_AES_KEY_WRAP` e `NIST_AES_WRAP`.
Obrigatório: não

**-iv\$1file**  
O arquivo no qual você deseja gravar o valor IV obtido em resposta.  
Válido somente quando passado com o parâmetro `-noheader` para o mecanismo `AES_GCM`.
Obrigatório: não

**-tag\$1size**  
O tamanho da tag a ser salva junto com o blob encapsulado.  
Válido somente quando passado com o parâmetro `-noheader` para mecanismos `AES_GCM` e `CLOUDHSM_AES_GCM`. O tamanho mínimo da tag é oito.
Obrigatório: não

[1] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte [Conformidade com o FIPS 140: suspensão do mecanismo de 2024](compliance-dep-notif.md#compliance-dep-notif-1).

## Tópicos relacionados
<a name="wrapKey-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)

# AWS CloudHSM referência de atributo-chave para KMU
<a name="key-attribute-table"></a>

Os comandos AWS CloudHSM key\$1mgmt\$1util usam constantes para representar os atributos das chaves em um módulo de segurança de hardware (HSM). Este tópico pode ajudá-lo a identificar os atributos, encontrar as constantes que os representam nos comandos e entender seus valores. 

Você define os atributos de uma chave ao criá-la. Para alterar o atributo de token, que indica se uma chave é persistente ou existe apenas na sessão, use o comando [setAttribute](key_mgmt_util-setAttribute.md) na key\$1mgmt\$1util . Para alterar os atributos de rótulos, encapsulamento, desencapsulamento, criptografia e descriptografia, use o comando `setAttribute` em cloudhsm\$1mgmt\$1util.

Para obter uma lista de atributos e suas constantes, use [listAttributes](key_mgmt_util-listAttributes.md). Para obter os valores dos atributos de uma chave, use [getAttribute](key_mgmt_util-getAttribute.md).

A tabela a seguir lista os atributos-chave, suas constantes e seus valores válidos.


| Atributo | Constante | Valores | 
| --- | --- | --- | 
|  OBJ\$1ATTR\$1ALL  |  512  |  Representa todos os atributos.  | 
|  OBJ\$1ATTR\$1ALWAYS\$1SENSITIVE  |  357  |  **0**: False.  **1**: True.   | 
|  OBJ\$1ATTR\$1CLASS  |  0  | **2**: Chave pública em um par de chaves privadapública.3: Chave privada em um par de chaves privadapública.**4**: Chave secreta (simétrica). | 
|  OBJ\$1ATTR\$1DECRYPT  |  261  |  **0**: False.  **1**: True. A chave pode ser usada para descriptografar dados.  | 
|  OBJ\$1ATTR\$1DERIVE  |  268  |  **0**: False. **1**: True. A função gera a chave.   | 
|  OBJ\$1ATTR\$1DESTROYABLE  |  370  |  **0**: False.  **1**: True.   | 
|  OBJ\$1ATTR\$1ENCRYPT  |  260  |  **0**: False.  **1**: True. A chave pode ser usada para criptografar dados.   | 
|  OBJ\$1ATTR\$1EXTRACTABLE  |  354  |  **0**: False.  **1**: True. A chave pode ser exportada do HSMs.  | 
|  OBJ\$1ATTR\$1ID  | 258 |  String definida pelo usuário. Deve ser exclusivo no cluster. O padrão é uma string vazia. | 
|  OBJ\$1ATTR\$1KCV  |  371  |  Valor de verificação da chave. Para obter mais informações, consulte [Detalhes adicionais](#key-attribute-table-details).  | 
|  OBJ\$1ATTR\$1KEY\$1TYPE  | 256 |  **0**: RSA.**1**: DSA.**3**: EC. **16**: Segredo genérico. **18**: RC4. **21**: Triple DES (3DES). **31**: AES. | 
|  OBJ\$1ATTR\$1LABEL  |  3  | String definida pelo usuário. Ele não precisa ser exclusivo no cluster. | 
|  OBJ\$1ATTR\$1LOCAL  |  355  |  **0**. Falso. A chave foi importada para HSMs o. **1**: True.   | 
|  OBJ\$1ATTR\$1MODULUS  |  288  |  O módulo que foi usado para gerar um par de chaves RSA. Para chaves EC, esse valor representa a codificação DER do valor ANSI X9.62 “Q” em formato ECPoint hexadecimal. Para outros tipos de chave, esse atributo não existe.  | 
|  OBJ\$1ATTR\$1MODULUS\$1BITS  |  289  |  O comprimento do módulo utilizado para gerar um par de chaves RSA. Para chaves EC, isso representa o ID da curva elíptica usada para gerar a chave. Para outros tipos de chave, esse atributo não existe.  | 
|  OBJ\$1ATTR\$1NEVER\$1EXTRACTABLE  |  356  |  **0**: False.  **1**: True. A chave não pode ser exportada do HSMs.   | 
|  OBJ\$1ATTR\$1PUBLIC\$1EXPONENT  |  290  |  O expoente público usado para gerar um par de chaves RSA. Para outros tipos de chave, esse atributo não existe.  | 
|  OBJ\$1ATTR\$1PRIVATE  |  2  |  **0**: False.  **1**: True. Este atributo indica se os usuários não autenticados podem listar os atributos da chave. Como o provedor PKCS\$111 do CloudHSM atualmente não oferece suporte a sessões públicas, todas as chaves (incluindo chaves públicas em um par de chaves públicas/privadas) têm esse atributo definido como 1.  | 
|  OBJ\$1ATTR\$1SENSITIVE  |  259  |  **0**: False. Chave pública em um par de chaves privada-pública. **1**: True.   | 
|  OBJ\$1ATTR\$1SIGN  |  264  |  **0**: False.  **1**: True. A chave pode ser usada para assinatura (chaves privadas).  | 
|  OBJ\$1ATTR\$1TOKEN  |  1  |  **0**: False. Chave de sessão. **1**: True. Chave persistente.  | 
|  OBJ\$1ATTR\$1TRUSTED  |  134  |  **0**: False. **1**: True.  | 
|  OBJ\$1ATTR\$1UNWRAP  |  263  |  **0**: False.  **1**: True. A chave pode ser usada para descriptografar chaves.  | 
|  OBJ\$1ATTR\$1UNWRAP\$1TEMPLATE  |  1073742354  |  Os valores devem usar o modelo de atributo aplicado a todas as chaves desencapsuladas com essa chave de encapsulamento.   | 
|  OBJ\$1ATTR\$1VALUE\$1LEN  |  353  |  Tamanho da chave em bytes.  | 
|  OBJ\$1ATTR\$1VERIFY  |  266  |  **0**: False.  **1**: True. A chave pode ser usada para verificação (chaves públicas).  | 
|  OBJ\$1ATTR\$1WRAP  |  262  |  **0**: False.  **1**: True. A chave pode ser usada para criptografar chaves.  | 
|  OBJ\$1ATTR\$1WRAP\$1TEMPLATE  |  1073742353  |  Os valores devem usar o modelo de atributo para corresponder à chave agrupada usando essa chave de agrupamento.   | 
|  OBJ\$1ATTR\$1WRAP\$1WITH\$1TRUSTED  |  528  |  **0**: False.  **1**: True.   | 

## Detalhes adicionais
<a name="key-attribute-table-details"></a>

**Valor de verificação de chave (KCV)**  
O *key check value* (KCV – valor de verificação de chave) é um hash de 3 bytes ou soma de verificação de uma chave gerada quando o HSM importa ou gera uma chave. Você também pode calcular um KCV fora do HSM, como depois de exportar uma chave. Em seguida, é possível comparar os valores do KCV para confirmar a identidade e a integridade da chave. Para obter o KCV de uma chave, use [getAttribute](key_mgmt_util-getAttribute.md).  
AWS CloudHSM usa o seguinte método padrão para gerar um valor de verificação de chave:  
+ **Chaves simétricas**: primeiros 3 bytes do resultado da criptografia de um bloco zero com a chave.
+ **Pares de chaves assimétricas**: primeiros 3 bytes do hash SHA-1 da chave pública.
+ **Chaves HMAC**: o KCV para chaves HMAC não é suportado no momento.