

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