

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

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