

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

# Importar chaves
<a name="keys-import"></a>

**Importante**  
 Os exemplos exigem a versão mais recente da AWS CLI V2. Antes de começar, verifique se você atualizou para a [versão mais recente](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). 

**Contents**
+ [Introdução à importação de chaves](#keys-import-introduction)
+ [Importar chaves simétricas](#keys-import-symmetric)
  + [Importar chaves usando técnicas assimétricas (TR-34)](#keys-import-tr34)
  + [Importe chaves usando técnicas assimétricas (ECDH)](#keys-import-ecdh)
  + [Importe chaves usando técnicas assimétricas (RSA Unwrap)](#keys-import-rsaunwrap)
  + [Importe chaves simétricas usando uma chave de troca de chaves preestabelecida (TR-31)](#keys-import-tr31)
+ [Importação de chaves públicas assimétricas (RSA, ECC)](#keys-import-asymmetric)
  + [Importar chaves públicas RSA](#keys-import-rsapublickey)
  + [Importação de chaves públicas ECC](#keys-import-eccpublickey)

## Introdução à importação de chaves
<a name="keys-import-introduction"></a>

**nota**  
Ao importar chaves usando blocos de chaves X9.143, TR-31 ou TR-34, a criptografia de AWS pagamento normalmente retém (mas não utiliza) nenhum cabeçalho opcional. O cabeçalho HM (tipo de hash HMAC) é usado durante operações criptográficas. O cabeçalho KP (KCV da chave de empacotamento) é específico para o processo de importação e não é retido. 

Ao trocar chaves com uma contraparte, normalmente é necessário primeiro trocar uma chave de troca de chaves (KEK). Essa chave será então usada para proteger as chaves subsequentes. Usando formatos eletrônicos, o KEK pode ser trocado usando técnicas assimétricas, como TR-34, ECDH ou RSA wrap. As chaves subsequentes serão trocadas usando uma troca de chaves simétrica, como TR-31. Esse KEK terá vida longa e só poderá ser atualizado a cada poucos anos com base na política e no período criptográfico definido. 

Se apenas uma ou duas chaves estiverem sendo trocadas, você também poderá optar por usar técnicas assimétricas para trocar diretamente essa chave, como um BDK. AWS A criptografia de pagamento suporta os dois métodos de troca de chaves.

## Importar chaves simétricas
<a name="keys-import-symmetric"></a>

### Importar chaves usando técnicas assimétricas (TR-34)
<a name="keys-import-tr34"></a>

![\[AWS Processo de importação de chave de criptografia de chave de criptografia de pagamento\]](http://docs.aws.amazon.com/pt_br/payment-cryptography/latest/userguide/images/keyimport-process-kek-import.png)


 O TR-34 usa criptografia assimétrica RSA para criptografar e assinar chaves simétricas para troca. Isso garante a confidencialidade (criptografia) e a integridade (assinatura) da chave encapsulada. 

 Para importar suas próprias chaves, confira o projeto de amostra AWS de criptografia de pagamento em [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service/tree/main/key-import-export). Para obter instruções sobre como obter import/export chaves de outras plataformas, o código de amostra está disponível [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service/tree/main/key-import-export)ou consulte o guia do usuário dessas plataformas. 

1. 

****Chame o comando Initialize Import****  
Chame `get-parameters-for-import` para inicializar o processo de importação. Essa API gera um par de chaves para importações de chaves, assina a chave e retorna o certificado e a raiz do certificado. Criptografe a chave a ser exportada usando essa chave. Na terminologia do TR-34, isso é conhecido como Certificado de KRD. Esses certificados são codificados em base64, têm vida curta e são destinados somente para essa finalidade. Salve o `ImportToken` valor. 

   ```
   $ aws payment-cryptography get-parameters-for-import \
       --key-material-type TR34_KEY_BLOCK \
       --wrapping-key-algorithm RSA_2048
   ```

   ```
   {
       "ImportToken": "import-token-bwxli6ocftypneu5",
       "ParametersValidUntilTimestamp": 1698245002.065,
       "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....",
       "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....",
       "WrappingKeyAlgorithm": "RSA_2048"
   }
   ```

1. 

****Instale o certificado público no sistema de origem da chave****  
Com a maioria HSMs, você precisa instalar, carregar ou confiar no certificado público gerado na etapa 1 para exportar as chaves usando-o. Isso pode incluir toda a cadeia de certificados ou apenas o certificado raiz da etapa 1, dependendo do HSM. 

1. 

****Gere um par de chaves no sistema de origem e forneça uma cadeia de certificados para criptografia AWS de pagamento****  
Para garantir a integridade da carga transmitida, a parte remetente (Key Distribution Host ou KDH) a assina. Gere uma chave pública para essa finalidade e crie um certificado de chave pública (X509) para devolver à criptografia de AWS pagamento. 

    Ao transferir chaves de um HSM, crie um par de chaves nesse HSM. O HSM, um terceiro ou um serviço como esse CA Privada da AWS pode gerar o certificado. 

   Carregue o certificado raiz na criptografia AWS de pagamento usando o `importKey` comando com KeyMaterialType de `RootCertificatePublicKey` e KeyUsageType de`TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE`. 

   Para certificados intermediários, use o `importKey` comando with KeyMaterialType of `TrustedCertificatePublicKey` e KeyUsageType of`TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE`. Repita esse processo para vários certificados intermediários. Use o `KeyArn` último certificado importado na cadeia como entrada para os comandos de importação subsequentes. 
**nota**  
Não importe o certificado de folha. Forneça-o diretamente durante o comando de importação.

1. 

****Exportar chave do sistema de origem****  
Muitos HSMs sistemas relacionados suportam a exportação de chaves usando a norma TR-34. Especifique a chave pública da etapa 1 como o certificado KRD (criptografia) e a chave da etapa 3 como o certificado KDH (assinatura). Para importar para a criptografia AWS de pagamento, especifique o formato como formato de duas passagens TR-34.2012 não CMS, que também pode ser chamado de formato TR-34 Diebold. 

1. 

****Chave de importação de chamadas****  
Chame a API importKey com um KeyMaterialType de. `TR34_KEY_BLOCK` Use o KeyArn da última CA importada na etapa 3 para`certificate-authority-public-key-identifier`, o material de chave empacotado da etapa 4 para `key-material` e o certificado de folha da etapa 3 para. `signing-key-certificate` Inclua o token de importação da etapa 1. 

   ```
   $ aws payment-cryptography import-key \
       --key-material='{"Tr34KeyBlock": { \
       "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", \
       "ImportToken": "import-token-bwxli6ocftypneu5", \
       "KeyBlockFormat": "X9_TR34_2012", \
       "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", \
       "WrappedKeyBlock": "308205A106092A864886F70D010702A08205923082058E020101310D300B0609608648016503040201308203..."} \
       }'
   ```

   ```
   {
     "Key": {
       "CreateTimestamp": "2023-06-13T16:52:52.859000-04:00",
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
       "KeyAttributes": {
         "KeyAlgorithm": "TDES_3KEY",
         "KeyClass": "SYMMETRIC_KEY",
         "KeyModesOfUse": {
           "Decrypt": true,
           "DeriveKey": false,
           "Encrypt": true,
           "Generate": false,
           "NoRestrictions": false,
           "Sign": false,
           "Unwrap": true,
           "Verify": false,
           "Wrap": true
         },
         "KeyUsage": "TR31_K1_KEY_ENCRYPTION_KEY"
       },
       "KeyCheckValue": "CB94A2",
       "KeyCheckValueAlgorithm": "ANSI_X9_24",
       "KeyOrigin": "EXTERNAL",
       "KeyState": "CREATE_COMPLETE",
       "UsageStartTimestamp": "2023-06-13T16:52:52.859000-04:00"
     }
   }
   ```

1. 

****Use a chave importada para operações criptográficas ou importação subsequente****  
Se o importado KeyUsage foi TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY, você pode usar essa chave para importações de chaves subsequentes usando TR-31. Para outros tipos de chave (como TR31 \$1D0\$1SYMMETRIC\$1DATA\$1ENCRYPTION\$1KEY), você pode usar a chave diretamente para operações criptográficas. 

### Importe chaves usando técnicas assimétricas (ECDH)
<a name="keys-import-ecdh"></a>

![\[AWS Processo de importação de chave de criptografia de chave de criptografia de pagamento usando ECDH\]](http://docs.aws.amazon.com/pt_br/payment-cryptography/latest/userguide/images/keyimport-ecdh-import.png)


O Elliptic Curve Diffie-Hellman (ECDH) usa criptografia assimétrica ECC para estabelecer uma chave compartilhada entre duas partes sem exigir chaves pré-trocadas. As chaves ECDH são efêmeras, portanto, a criptografia de AWS pagamento não as armazena. Nesse processo, um [KBPK/KEK](terminology.md#terms.kbpk) único é derivado usando ECDH. Essa chave derivada é usada imediatamente para agrupar a chave real que você deseja transferir, que pode ser outro KBPK, uma chave IPEK ou outros tipos de chave. 

Ao importar, o sistema de envio é comumente conhecido como Parte U (Iniciador) e a Criptografia de AWS Pagamento é conhecida como Parte V (Respondente). 

**nota**  
 Embora o ECDH possa ser usado para trocar qualquer tipo de chave simétrica, é a única abordagem que pode transferir chaves AES-256 com segurança. 

1. 

****Gerar par de chaves ECC****  
Ligue `create-key` para criar um par de chaves ECC para esse processo. Essa API gera um par de chaves para importações ou exportações de chaves. Na criação, especifique quais tipos de chaves podem ser derivadas usando essa chave ECC. Ao usar ECDH para trocar (empacotar) outras chaves, use um valor de. `TR31_K1_KEY_BLOCK_PROTECTION_KEY`
**nota**  
 Embora o ECDH de baixo nível gere uma chave derivada que pode ser usada para qualquer finalidade, a criptografia de AWS pagamento limita a reutilização acidental de uma chave para várias finalidades, permitindo que uma chave seja usada apenas para um único tipo de chave derivada. 

   ```
   $ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT,KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}' --derive-key-usage "TR31_K1_KEY_BLOCK_PROTECTION_KEY"
   ```

   ```
   {
                     "Key": {
                         "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv",
                         "KeyAttributes": {
                             "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT",
                             "KeyClass": "ASYMMETRIC_KEY_PAIR",
                             "KeyAlgorithm": "ECC_NIST_P256",
                             "KeyModesOfUse": {
                                 "Encrypt": false,
                                 "Decrypt": false,
                                 "Wrap": false,
                                 "Unwrap": false,
                                 "Generate": false,
                                 "Sign": false,
                                 "Verify": false,
                                 "DeriveKey": true,
                                 "NoRestrictions": false
                             }
                         },
                         "KeyCheckValue": "2432827F",
                         "KeyCheckValueAlgorithm": "CMAC",
                         "Enabled": true,
                         "Exportable": true,
                         "KeyState": "CREATE_COMPLETE",
                         "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                         "CreateTimestamp": "2025-03-28T22:03:41.087000-07:00",
                         "UsageStartTimestamp": "2025-03-28T22:03:41.068000-07:00"
                     }
                 }
   ```

1. 

****Obtenha o certificado de chave pública****  
Ligue `get-public-key-certificate` para receber a chave pública como um certificado X.509 assinado pela CA da sua conta que é específico para criptografia de AWS pagamento em uma região específica.  
**Example**  

   ```
   $ aws payment-cryptography get-public-key-certificate \
                    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv
   ```

   ```
   {
               "KeyCertificate": "LS0tLS1CRUdJTi...",
               "KeyCertificateChain": "LS0tLS1CRUdJT..."
         }
   ```

1. 

****Instalar certificado público no sistema de contraparte (Parte U)****  
Com muitos HSMs, você precisa instalar, carregar ou confiar no certificado público gerado na etapa 1 para exportar as chaves usando-o. Isso pode incluir toda a cadeia de certificados ou apenas o certificado raiz da etapa 1, dependendo do HSM. Consulte a documentação do HSM para obter mais informações.

1. 

****Gere o par de chaves ECC no sistema de origem e forneça uma cadeia de certificados para criptografia AWS de pagamento****  
No ECDH, cada parte gera um par de chaves e concorda com uma chave comum. Para que a criptografia de AWS pagamento obtenha a chave, ela precisa da chave pública da contraparte no formato de chave pública X.509.

   Ao transferir chaves de um HSM, crie um par de chaves nesse HSM. Para HSMs esses blocos de teclas de suporte, o cabeçalho da chave será semelhante `D0144K3EX00E0000` a. Ao criar o certificado, você geralmente gera uma CSR no HSM e, em seguida, o HSM, um terceiro ou um serviço como o CA Privada da AWS pode gerar o certificado.

   Carregue o certificado raiz na criptografia AWS de pagamento usando o `importKey` comando com KeyMaterialType de `RootCertificatePublicKey` e KeyUsageType de`TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE`.

   Para certificados intermediários, use o `importKey` comando with KeyMaterialType of `TrustedCertificatePublicKey` e KeyUsageType of`TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE`. Repita esse processo para vários certificados intermediários. Use o `KeyArn` último certificado importado na cadeia como entrada para os comandos de importação subsequentes.
**nota**  
Não importe o certificado de folha. Forneça-o diretamente durante o comando de importação.

1. 

****Derive uma chave única usando ECDH no HSM da Parte U****  
Muitos HSMs sistemas relacionados oferecem suporte ao estabelecimento de chaves usando ECDH. Especifique a chave pública da etapa 1 como chave pública e a chave da etapa 3 como chave privada. Para opções permitidas, como métodos de derivação, consulte o guia da [API](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportDiffieHellmanTr31KeyBlock.html). 
**nota**  
 Os parâmetros de derivação, como tipo de hash, devem corresponder exatamente nos dois lados. Caso contrário, você gerará uma chave diferente. 

1. 

****Exportar chave do sistema de origem****  
Por fim, exporte a chave que você deseja transportar para a Criptografia AWS de Pagamento usando os comandos TR-31 padrão. Especifique a chave derivada do ECDH como o KBPK. A chave a ser exportada pode ser qualquer chave TDES ou AES sujeita às combinações válidas do TR-31, desde que a chave de empacotamento seja pelo menos tão forte quanto a chave a ser exportada. 

1. 

****Chave de importação de chamadas****  
Chame a `import-key` API com um KeyMaterialType de`DiffieHellmanTr31KeyBlock`. Use o keyArn da última CA importada na etapa 3 `certificate-authority-public-key-identifier` para, o material de chave empacotado da etapa 4 `key-material` para e o certificado folha da etapa 3 para. `public-key-certificate` Inclua o ARN da chave privada da etapa 1.

   ```
   $ aws payment-cryptography import-key \
             --key-material='{
               "DiffieHellmanTr31KeyBlock": {
                 "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5",
                 "DerivationData": {
                   "SharedInformation": "1234567890"
                 },
                 "DeriveKeyAlgorithm": "AES_256",
                 "KeyDerivationFunction": "NIST_SP800",
                 "KeyDerivationHashAlgorithm": "SHA_256",
                 "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv",
                 "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN....",
                 "WrappedKeyBlock": "D0112K1TB00E0000D603CCA8ACB71517906600FF8F0F195A38776A7190A0EF0024F088A5342DB98E2735084A7841CB00E16D373A70857E9A"
               }
             }'
   ```

   ```
   {
           "Key": {
             "CreateTimestamp": "2025-03-13T16:52:52.859000-04:00",
             "Enabled": true,
             "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
             "KeyAttributes": {
               "KeyAlgorithm": "TDES_3KEY",
               "KeyClass": "SYMMETRIC_KEY",
               "KeyModesOfUse": {
                 "Decrypt": true,
                 "DeriveKey": false,
                 "Encrypt": true,
                 "Generate": false,
                 "NoRestrictions": false,
                 "Sign": false,
                 "Unwrap": true,
                 "Verify": false,
                 "Wrap": true
               },
               "KeyUsage": "TR31_K1_KEY_ENCRYPTION_KEY"
             },
             "KeyCheckValue": "CB94A2",
             "KeyCheckValueAlgorithm": "ANSI_X9_24",
             "KeyOrigin": "EXTERNAL",
             "KeyState": "CREATE_COMPLETE",
             "UsageStartTimestamp": "2025-03-13T16:52:52.859000-04:00"
           }
         }
   ```

1. 

****Use a chave importada para operações criptográficas ou importação subsequente****  
Se o importado KeyUsage foi TR31 \$1K0\$1KEY\$1ENCRYPTION\$1KEY, você pode usar essa chave para importações de chaves subsequentes usando TR-31. Para outros tipos de chave (como TR31 \$1D0\$1SYMMETRIC\$1DATA\$1ENCRYPTION\$1KEY), você pode usar a chave diretamente para operações criptográficas.

### Importe chaves usando técnicas assimétricas (RSA Unwrap)
<a name="keys-import-rsaunwrap"></a>

 Visão geral: a criptografia AWS de pagamento suporta RSA wrap/unwrap para troca de chaves quando o TR-34 não é viável. Como o TR-34, essa técnica usa criptografia assimétrica RSA para criptografar chaves simétricas para troca. No entanto, ao contrário do TR-34, esse método não faz com que a parte remetente assine a carga. Além disso, essa técnica de encapsulamento de RSA não mantém a integridade dos metadados da chave durante a transferência porque não inclui blocos de chaves. 

**nota**  
 Você pode usar o RSA wrap para importar ou exportar chaves TDES e AES-128. 

1. 

****Chame o comando Initialize Import****  
Ligue **get-parameters-for-import** para inicializar o processo de importação com um `KeyMaterialType` de`KEY_CRYPTOGRAM`. Use `RSA_2048` para o `WrappingKeyAlgorithm` ao trocar chaves TDES. Use `RSA_3072` ou `RSA_4096` ao trocar chaves TDES ou AES-128. Essa API gera um par de chaves para importações de chaves, assina a chave usando uma raiz de certificado e retorna tanto o certificado quanto a raiz do certificado. Criptografe a chave a ser exportada usando essa chave. Esses certificados são de curta duração e se destinam apenas a essa finalidade. 

   ```
   $ aws payment-cryptography get-parameters-for-import \
       --key-material-type KEY_CRYPTOGRAM \
       --wrapping-key-algorithm RSA_4096
   ```

   ```
   {
     "ImportToken": "import-token-bwxli6ocftypneu5",
     "ParametersValidUntilTimestamp": 1698245002.065,
     "WrappingKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0....",
     "WrappingKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0....",
     "WrappingKeyAlgorithm": "RSA_4096"
   }
   ```

1. 

****Instale o certificado público no sistema de origem da chave****  
Com muitos HSMs, você precisa instalar, carregar ou confiar no certificado público (e/ou em sua raiz) gerado na etapa 1 para exportar as chaves usando-o. 

1. 

****Exportar chave do sistema de origem****  
Muitos HSMs sistemas relacionados oferecem suporte à exportação de chaves usando o RSA wrap. Especifique a chave pública da etapa 1 como o certificado de criptografia (`WrappingKeyCertificate`). Se você precisar da cadeia de confiança, use `WrappingKeyCertificateChain` a etapa 1. Ao exportar a chave do seu HSM, especifique o formato como RSA, com Padding Mode = PKCS \$11 v2.2 OAEP (com SHA 256 ou SHA 512). 

1. 

****Ligue **import-key******  
Chame a **import-key** API com um `KeyMaterialType` de`KeyMaterial`. Você precisa `ImportToken` do passo 1 e do `key-material` (material chave embrulhado) do passo 3. Forneça os principais parâmetros (como Uso da chave) porque o RSA wrap não usa blocos de chaves. 

   ```
   $ cat import-key-cryptogram.json 
   ```

   ```
   {
     "KeyMaterial": {
       "KeyCryptogram": {
         "Exportable": true,
         "ImportToken": "import-token-bwxli6ocftypneu5",
         "KeyAttributes": {
           "KeyAlgorithm": "AES_128",
           "KeyClass": "SYMMETRIC_KEY",
           "KeyModesOfUse": {
             "Decrypt": true,
             "DeriveKey": false,
             "Encrypt": true,
             "Generate": false,
             "NoRestrictions": false,
             "Sign": false,
             "Unwrap": true,
             "Verify": false,
             "Wrap": true
           },
           "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY"
         },
         "WrappedKeyCryptogram": "18874746731....",
         "WrappingSpec": "RSA_OAEP_SHA_256"
       }
     }
   }
   ```

   ```
   $ aws payment-cryptography import-key --cli-input-json file://import-key-cryptogram.json
   ```

   ```
   {
     "Key": {
       "KeyOrigin": "EXTERNAL",
       "Exportable": true,
       "KeyCheckValue": "DA1ACF",
       "UsageStartTimestamp": 1697643478.92,
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h",
       "CreateTimestamp": 1697643478.92,
       "KeyState": "CREATE_COMPLETE",
       "KeyAttributes": {
         "KeyAlgorithm": "AES_128",
         "KeyModesOfUse": {
           "Encrypt": true,
           "Unwrap": true,
           "Verify": false,
           "DeriveKey": false,
           "Decrypt": true,
           "NoRestrictions": false,
           "Sign": false,
           "Wrap": true,
           "Generate": false
         },
         "KeyUsage": "TR31_K0_KEY_ENCRYPTION_KEY",
         "KeyClass": "SYMMETRIC_KEY"
       },
       "KeyCheckValueAlgorithm": "CMAC"
     }
   }
   ```

1. 

****Use a chave importada para operações criptográficas ou importação subsequente****  
Se o importado `KeyUsage` foi `TR31_K0_KEY_ENCRYPTION_KEY` ou`TR31_K1_KEY_BLOCK_PROTECTION_KEY`, você pode usar essa chave para importações de chaves subsequentes usando TR-31. Se o tipo de chave for de qualquer outro tipo (como`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`), você poderá usar a chave diretamente para operações criptográficas. 

### Importe chaves simétricas usando uma chave de troca de chaves preestabelecida (TR-31)
<a name="keys-import-tr31"></a>

![\[AWS Processo de importação de chave simétrica de criptografia de pagamento\]](http://docs.aws.amazon.com/pt_br/payment-cryptography/latest/userguide/images/keyimport-process-wk-import.png)


Ao trocar várias chaves ou oferecer suporte à rotação de chaves, os parceiros normalmente trocam primeiro uma chave de criptografia de chave inicial (KEK). Você pode fazer isso usando técnicas como componentes de chave de papel ou, para criptografia de AWS pagamento, usando o [TR-34](#keys-import-tr34).

 Depois de estabelecer uma KEK, você pode usá-la para transportar chaves subsequentes (incluindo outras KEKs). AWS A criptografia de pagamento suporta essa troca de chaves usando o ANSI TR-31, que é amplamente usado e suportado por fornecedores de HSM. 

1. 

****Chave de importação: chave de criptografia (KEK)****  
Verifique se você já importou seu KEK e tem o KeyArn (ou KeyAlias) disponível.

1. 

****Crie uma chave na plataforma de origem****  
Se a chave não existir, crie-a na plataforma de origem. Como alternativa, você pode criar a chave na criptografia AWS de pagamento e usar o **export** comando. 

1. 

****Exportar chave da plataforma de origem****  
Ao exportar, especifique o formato de exportação como TR-31. A plataforma de origem solicitará a chave a ser exportada e a chave de criptografia a ser usada. 

1. 

****Importar para criptografia AWS de pagamento****  
Ao chamar o **import-key** comando, use o keyArn (ou alias) da sua chave de criptografia de chave para. `WrappingKeyIdentifier` Use a saída da plataforma de origem para`WrappedKeyBlock`.   
**Example**  

   ```
   $ aws payment-cryptography import-key \
       --key-material='{"Tr31KeyBlock": { \
       "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \
       "WrappedKeyBlock": "D0112B0AX00E00002E0A3D58252CB67564853373D1EBCC1E23B2ADE7B15E967CC27B85D5999EF58E11662991FF5EB1381E987D744334B99D"} \
       }'
   ```

   ```
   {
     "Key": {
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h",
       "KeyAttributes": {
         "KeyUsage": "TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY",
         "KeyClass": "SYMMETRIC_KEY",
         "KeyAlgorithm": "AES_128",
         "KeyModesOfUse": {
           "Encrypt": true,
           "Decrypt": true,
           "Wrap": true,
           "Unwrap": true,
           "Generate": false,
           "Sign": false,
           "Verify": false,
           "DeriveKey": false,
           "NoRestrictions": false
         }
       },
       "KeyCheckValue": "0A3674",
       "KeyCheckValueAlgorithm": "CMAC",
       "Enabled": true,
       "Exportable": true,
       "KeyState": "CREATE_COMPLETE",
       "KeyOrigin": "EXTERNAL",
       "CreateTimestamp": "2023-06-02T07:38:14.913000-07:00",
       "UsageStartTimestamp": "2023-06-02T07:38:14.857000-07:00"
     }
   }
   ```

## Importação de chaves públicas assimétricas (RSA, ECC)
<a name="keys-import-asymmetric"></a>

Todos os certificados importados devem ser pelo menos tão fortes quanto o certificado de emissão (predecessor) na cadeia. Isso significa que uma CA RSA\$12048 só pode ser usada para proteger um certificado preliminar RSA\$12048 e um certificado ECC deve ser protegido por outro certificado ECC de força equivalente. Um certificado ECC P384 só pode ser emitido por uma CA P384 ou P521. Todos os certificados não devem estar expirados no momento da importação. 

### Importar chaves públicas RSA
<a name="keys-import-rsapublickey"></a>

AWS A criptografia de pagamento suporta a importação de chaves RSA públicas como certificados X.509. Para importar um certificado, primeiro importe seu certificado raiz. Todos os certificados não devem estar expirados no momento da importação. O certificado deve estar no formato PEM e codificado em base64. 

1. 

****Importar certificado raiz para criptografia AWS de pagamento****  
Use o comando a seguir para importar o certificado raiz:  
**Example**  

   ```
   $ aws payment-cryptography import-key \
       --key-material='{"RootCertificatePublicKey": { \
       "KeyAttributes": { \
       "KeyAlgorithm": "RSA_2048", \
       "KeyClass": "PUBLIC_KEY", \
       "KeyModesOfUse": { \
       "Verify": true}, \
       "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \
       "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURKVENDQWcyZ0F3SUJBZ0lCWkRBTkJna3Foa2lHOXcwQkFR..."} \
       }'
   ```

   ```
   {
     "Key": {
       "CreateTimestamp": "2023-08-08T18:52:01.023000+00:00",
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl",
       "KeyAttributes": {
         "KeyAlgorithm": "RSA_2048",
         "KeyClass": "PUBLIC_KEY",
         "KeyModesOfUse": {
           "Decrypt": false,
           "DeriveKey": false,
           "Encrypt": false,
           "Generate": false,
           "NoRestrictions": false,
           "Sign": false,
           "Unwrap": false,
           "Verify": true,
           "Wrap": false
         },
         "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"
       },
       "KeyOrigin": "EXTERNAL",
       "KeyState": "CREATE_COMPLETE",
       "UsageStartTimestamp": "2023-08-08T18:52:01.023000+00:00"
     }
   }
   ```

1. 

****Importar certificado de chave pública para criptografia AWS de pagamento****  
Agora, você pode importar uma chave pública. Como o TR-34 e o ECDH dependem da aprovação do certificado leaf em tempo de execução, essa opção só é usada ao criptografar dados usando uma chave pública de outro sistema. KeyUsage será definido como TR31 \$1D1\$1ASYMMETRIC\$1KEY\$1FOR\$1DATA\$1ENCRYPTION.  
**Example**  

   ```
   $ aws payment-cryptography import-key \
       --key-material='{"Tr31KeyBlock": { \
       "WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza", \
       "WrappedKeyBlock": "D0112B0AX00E00002E0A3D58252CB67564853373D1EBCC1E23B2ADE7B15E967CC27B85D5999EF58E11662991FF5EB1381E987D744334B99D"} \
       }'
   ```

   ```
   {
     "Key": {
       "CreateTimestamp": "2023-08-08T18:55:46.815000+00:00",
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk",
       "KeyAttributes": {
         "KeyAlgorithm": "RSA_4096",
         "KeyClass": "PUBLIC_KEY",
         "KeyModesOfUse": {
           "Decrypt": false,
           "DeriveKey": false,
           "Encrypt": false,
           "Generate": false,
           "NoRestrictions": false,
           "Sign": false,
           "Unwrap": false,
           "Verify": true,
           "Wrap": false
         },
         "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"
       },
       "KeyOrigin": "EXTERNAL",
       "KeyState": "CREATE_COMPLETE",
       "UsageStartTimestamp": "2023-08-08T18:55:46.815000+00:00"
     }
   }
   ```

### Importação de chaves públicas ECC
<a name="keys-import-eccpublickey"></a>

AWS A criptografia de pagamento suporta a importação de chaves ECC públicas como certificados X.509. Para importar um certificado, primeiro importe seu certificado CA raiz e quaisquer certificados intermediários. Todos os certificados não devem estar expirados no momento da importação. O certificado deve estar no formato PEM e codificado em base64.

1. 

****Importe o certificado raiz ECC para a criptografia AWS de pagamento****  
Use o comando a seguir para importar o certificado raiz:  
**Example**  

   ```
   $ aws payment-cryptography import-key \
       --key-material='{"RootCertificatePublicKey": { \
       "KeyAttributes": { \
       "KeyAlgorithm": "ECC_NIST_P521", \
       "KeyClass": "PUBLIC_KEY", \
       "KeyModesOfUse": { \
       "Verify": true}, \
       "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \
       "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNQekNDQWFDZ0F3SUJBZ0lDSjNVd0NnWUlLb1pJemowRUF3UXdNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnAKWjI1bFpFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNQjRYRFRJMU1ETXlPREF3TURBdwpNRm9YRFRJMk1ETXlPREF3TURBd01Gb3dNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnBaMjVsWkVObGNuUnBabWxqCllYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNSUdiTUJBR0J5cUdTTTQ5QWdFR0JTdUJCQUFqQTRHR0FBUUEKRDVEUXc5RW1Tb1lJVkRnbUpmRm1wL1pzMXp1M0ZobThrdUdkYlA4NWgwNTdydkhHZ3VISW03V3N1aTlpdXNvNApFWEZnV3ZUdy85amhZcVJrMi9yY1RHb0JrS2NpV3Q2UHMxVmpSUVZhVEZmbmxPdjRNTURQUEFEUWthVU45cVNNCkF5MTF0RklKNlFGWDR0aGx3RzBaZkFwd0NMV1ZyMzFrRU45RDJhVUh6Mjg5WlM2all6QmhNQjhHQTFVZEl3UVkKTUJhQUZFMjhnay9QZnZ3NklsNm9yQzNwRmJtK280emxNQjBHQTFVZERnUVdCQlJOdklKUHozNzhPaUplcUt3dAo2Ulc1dnFPTTVUQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUVBd0lDeERBS0JnZ3Foa2pPClBRUURCQU9CakFBd2dZZ0NRZ0ZRRit5VUVSYTZoQ0RwSDVHeVhlaVFYYU0wc25Fd3o2TmlmOHlSTlF1dzJ5MUoKdTNoKzZYa2N6Y3lVT01NSzhaRnhBVDhFOERMVUtpdjM1VmdzSkFDN09RSkNBSWMzdEVNV01tZTVCV3ZXTFVxSQpnV3h5U3UxWDdRSTJrR2dUK1FqRGlhQ2E4b091NVlJTmZscW4reUswR29yNGJzMTBZaUh4SHhpV2t0UVRSdVp4CkhIU3UKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="} \
       }'
   ```

   ```
   {
     "Key": {
       "CreateTimestamp": "2023-08-08T18:52:01.023000+00:00",
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wv4gb6h3xcqjk6sm",
       "KeyAttributes": {
         "KeyAlgorithm": "ECC_NIST_P521",
         "KeyClass": "PUBLIC_KEY",
         "KeyModesOfUse": {
           "Decrypt": false,
           "DeriveKey": false,
           "Encrypt": false,
           "Generate": false,
           "NoRestrictions": false,
           "Sign": false,
           "Unwrap": false,
           "Verify": true,
           "Wrap": false
         },
         "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"
       },
       "KeyOrigin": "EXTERNAL",
       "KeyState": "CREATE_COMPLETE",
       "UsageStartTimestamp": "2025-03-08T18:52:01.023000+00:00"
     }
   }
   ```

1. 

****Importar certificado intermediário para criptografia AWS de pagamento****  
Use o comando a seguir para importar um certificado intermediário:  
**Example**  

   ```
   $ aws payment-cryptography import-key \
                   --key-material='{"TrustedCertificatePublicKey": { \
                   --certificate-authority-public-key-identifier='"arn:aws:payment-cryptography:us-east-2:111122223333:key/wv4gb6h3xcqjk6sm"  \
       "KeyAttributes": { \
       "KeyAlgorithm": "ECC_NIST_P521", \
       "KeyClass": "PUBLIC_KEY", \
       "KeyModesOfUse": { \
       "Verify": true}, \
       "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"}, \
       "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNLekNDQVkyZ0F3SUJBZ0lDVDAwd0NnWUlLb1pJemowRUF3UXdNakVlTUJ3R0ExVUVDd3dWVTJWc1psTnAKWjI1bFpFTmxjblJwWm1sallYUmxNUkF3RGdZRFZRUUREQWRMUkVnZ1EwRXhNQjRYRFRJMU1ETXlPREF3TURBdwpNRm9YRFRJMk1ETXlPREF3TURBd01Gb3dNREVlTUJ3R0ExVUVBd3dWUzBSSUlFbHVkR1Z5YldWa2FXRjBaU0JEClFTQXhNUTR3REFZRFZRUUZFd1V4TURJd01UQ0JtekFRQmdjcWhrak9QUUlCQmdVcmdRUUFJd09CaGdBRUFPOGwKZFM4c09YQlNWQlVINWxmRWZkNTZxYVVIenExZVN3VGZKdnI5eEFmb2hRNTNWZ2hLUlZoNzhNR2tJTjVCNTBJTAozbmhaU1JnUnRoS20xNkxwc084NEFGa1Z0ZEpOaEJpYUlQZlRlYXltOHh6OU44KzFWZ3RMTDZBcTBtNkwwMUFwCkUvUmxzUUJ3NWxoakM4VHVOWU1QaUpMYUNPbjJrZVh6SU5SSm01SjJtR3Q1bzFJd1VEQWZCZ05WSFNNRUdEQVcKZ0JSbklBNi9Vc3RMYUpzTzlpYjg1Zm9DWEcwRk96QWRCZ05WSFE0RUZnUVVaeUFPdjFMTFMyaWJEdlltL09YNgpBbHh0QlRzd0RnWURWUjBQQVFIL0JBUURBZ2JBTUFvR0NDcUdTTTQ5QkFNRUE0R0xBRENCaHdKQ0FmTnJjdXBkClpQd3ZqTGdVeFZiN1NtSXNhY2Z6MVZrNWZFYXZHNlVzdU95Y1lGbHlQQTlJZGgyK0lOcW5jSVg4VEo2cDFJRWkKN3RCTHpPb1l0ZWd2Q1dsL0FrRkRzWHFsWkI5bU93WnNEQy9HZEpEcm5uQ0ZkR29hM1NwZytqbGdhOGdQTmxLbAo1dE9IU0lVZnZxcFhEcWYrdXV6SEc1Z3FjdUhnQU8wOUhuMloyNUc4eVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="} \
       }'
   ```

   ```
   {
     "Key": {
       "CreateTimestamp": "2025-03-20T18:52:01.023000+00:00",
       "Enabled": true,
       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5",
       "KeyAttributes": {
         "KeyAlgorithm": "ECC",
         "KeyClass": "PUBLIC_KEY",
         "KeyModesOfUse": {
           "Decrypt": false,
           "DeriveKey": false,
           "Encrypt": false,
           "Generate": false,
           "NoRestrictions": false,
           "Sign": false,
           "Unwrap": false,
           "Verify": true,
           "Wrap": false
         },
         "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"
       },
       "KeyOrigin": "EXTERNAL",
       "KeyState": "CREATE_COMPLETE",
       "UsageStartTimestamp": "2025-03-25T18:52:01.023000+00:00"
     }
   }
   ```

1. 

****Importar certificado de chave pública (Leaf) para criptografia AWS de pagamento****  
 Embora você possa importar um certificado ECC de folha, atualmente não há funções definidas na criptografia de AWS pagamento para ele além do armazenamento. Isso ocorre porque, ao usar funções ECDH, o certificado leaf é passado em tempo de execução. 