

# Exemplos do plano de dados AWS Payment Cryptography usando a AWS CLI
<a name="cli_payment-cryptography-data_code_examples"></a>

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando a AWS Command Line Interface com o plano de dados AWS Payment Cryptography.

*Ações* são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

**Topics**
+ [Ações](#actions)

## Ações
<a name="actions"></a>

### `decrypt-data`
<a name="payment-cryptography-data_DecryptData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `decrypt-data`.

**AWS CLI**  
**Como descriptografar texto cifrado**  
O exemplo `decrypt-data` a seguir descriptografa dados de texto cifrado usando uma chave simétrica. Para essa operação, a chave deve ter `KeyModesOfUse` definido como `Decrypt` e `KeyUsage` definido como `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`.  

```
aws payment-cryptography-data decrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --cipher-text 33612AB9D6929C3A828EB6030082B2BD \
    --decryption-attributes 'Symmetric={Mode=CBC}'
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "PlainText": "31323334313233343132333431323334"
}
```
Para obter mais informações, consulte [Descriptografar dados](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html) no *Guia do usuário do AWSPayment Cryptography*.  
+  Para ver detalhes da API, consulte [DecryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/decrypt-data.html) na *Referência de comandos da AWS CLI*. 

### `encrypt-data`
<a name="payment-cryptography-data_EncryptData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `encrypt-data`.

**AWS CLI**  
**Como criptografar dados**  
O exemplo `encrypt-data` a seguir criptografa dados de texto simples usando uma chave simétrica. Para essa operação, a chave deve ter `KeyModesOfUse` definido como `Encrypt` e `KeyUsage` definido como `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`.  

```
aws payment-cryptography-data encrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --plain-text 31323334313233343132333431323334 \
    --encryption-attributes 'Symmetric={Mode=CBC}'
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```
Para obter mais informações, consulte [Criptografar dados](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [EncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/encrypt-data.html) na *Referência de comandos da AWS CLI*. 

### `generate-card-validation-data`
<a name="payment-cryptography-data_GenerateCardValidationData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `generate-card-validation-data`.

**AWS CLI**  
**Como gerar um CVV**  
O exemplo `generate-card-validation-data` a seguir gera um CVV/CVV2.  

```
aws payment-cryptography-data generate-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```
Para obter mais informações, consulte [Gerar dados de cartões](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [GenerateCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-card-validation-data.html) na *Referência de comandos da AWS CLI*. 

### `generate-mac`
<a name="payment-cryptography-data_GenerateMac_cli_topic"></a>

O código de exemplo a seguir mostra como usar `generate-mac`.

**AWS CLI**  
**Como gerar um MAC**  
O exemplo `generate-card-validation-data` a seguir gera um código de autenticação de mensagens por hash (HMAC) para autenticação de dados do cartão usando o algoritmo HMAC\$1SHA256 e a chave de criptografia HMAC. A chave deve ter `KeyUsage` definido como `TR31_M7_HMAC_KEY` e `KeyModesOfUse` como `Generate`.  

```
aws payment-cryptography-data generate-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \
    --generation-attributes Algorithm=HMAC_SHA256
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h,
    "KeyCheckValue": "2976E7",
    "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C"
}
```
Para obter mais informações, consulte [Gerar MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-mac.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-mac.html) na *Referência de comandos da AWS CLI*. 

### `generate-pin-data`
<a name="payment-cryptography-data_GeneratePinData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `generate-pin-data`.

**AWS CLI**  
**Como gerar um PIN**  
O exemplo `generate-card-validation-data` a seguir gera um novo PIN aleatório usando o esquema de PIN Visa.  

```
aws payment-cryptography-data generate-pin-data \
    --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \
    --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --primary-account-number 171234567890123 \
    --pin-block-format ISO_FORMAT_0 \
    --generation-attributes VisaPin={PinVerificationKeyIndex=1}
```
Resultado:  

```
{
    "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
    "GenerationKeyCheckValue": "7F2363",
    "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
    "EncryptionKeyCheckValue": "7CC9E2",
    "EncryptedPinBlock": "AC17DC148BDA645E",
    "PinData": {
        "VerificationValue": "5507"
    }
}
```
Para obter mais informações, consulte [Gerar dados de PIN](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [GeneratePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-pin-data.html) na *Referência de comandos da AWS CLI*. 

### `re-encrypt-data`
<a name="payment-cryptography-data_ReEncryptData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `re-encrypt-data`.

**AWS CLI**  
**Como recriptografar dados com uma chave diferente**  
O exemplo `re-encrypt-data` a seguir descriptografa o texto cifrado que foi criptografado usando uma chave simétrica AES e o recriptografa usando uma chave do tipo DUKPT (Chave Derivada Exclusiva por Transação).  

```
aws payment-cryptography-data re-encrypt-data \
    --incoming-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/hyvv7ymboitd4vfy \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen \
    --cipher-text 4D2B0BDBA192D5AEFEAA5B3EC28E4A65383C313FFA25140101560F75FE1B99F27192A90980AB9334 \
    --incoming-encryption-attributes "Dukpt={Mode=ECB,KeySerialNumber=0123456789111111}" \
    --outgoing-encryption-attributes '{"Symmetric": {"Mode": "ECB"}}'
```
Resultado:  

```
{
    "CipherText": "F94959DA30EEFF0C035483C6067667CF6796E3C1AD28C2B61F9CFEB772A8DD41C0D6822931E0D3B1",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen",
    "KeyCheckValue": "2E8CD9"
}
```
Para obter mais informações, consulte [Criptografar e descriptografar dados](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops.encryptdecrypt.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [ReEncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/re-encrypt-data.html) na *Referência de comandos da AWS CLI*. 

### `translate-pin-data`
<a name="payment-cryptography-data_TranslatePinData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `translate-pin-data`.

**AWS CLI**  
**Como traduzir dados de PIN**  
O exemplo `translate-pin-data` a seguir traduz um PIN da criptografia PEK TDES usando um bloco de PIN ISO 0 para um bloco de PIN ISO 4 AES usando o algoritmo DUKPT.  

```
aws payment-cryptography-data translate-pin-data \
    --encrypted-pin-block "AC17DC148BDA645E" \
    --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe \
    --outgoing-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" \
    --outgoing-dukpt-attributes KeySerialNumber="FFFF9876543210E00008"
```
Resultado:  

```
{
    "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt
    "KeyCheckValue": "7CC9E2"
}
```
Para obter mais informações, consulte [Traduzir dados de PIN](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [TranslatePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/translate-pin-data.html) na *Referência de comandos da AWS CLI*. 

### `verify-auth-request-cryptogram`
<a name="payment-cryptography-data_VerifyAuthRequestCryptogram_cli_topic"></a>

O código de exemplo a seguir mostra como usar `verify-auth-request-cryptogram`.

**AWS CLI**  
**Como verificar uma solicitação de autenticação**  
O exemplo `verify-auth-request-cryptogram` a seguir verifica um criptograma de solicitação de autorização (ARQC).  

```
aws payment-cryptography-data verify-auth-request-cryptogram \
    --auth-request-cryptogram F6E1BD1E6037FB3E \
    --auth-response-attributes '{"ArpcMethod1": {"AuthResponseCode": "1111"}}' \
    --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya \
    --major-key-derivation-mode "EMV_OPTION_A" \
    --session-key-derivation-attributes '{"EmvCommon": {"ApplicationTransactionCounter": "1234","PanSequenceNumber": "01","PrimaryAccountNumber": "471234567890123"}}' \
    --transaction-data "123456789ABCDEF"
```
Resultado:  

```
{
    "AuthResponseValue": "D899B8C6FBF971AA",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya",
    "KeyCheckValue": "985792"
}
```
Para obter mais informações, consulte [verificar um criptograma de solicitação de autorização (ARQC)](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.verifyauthrequestcryptogram.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [VerifyAuthRequestCryptogram](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-auth-request-cryptogram.html) na *Referência de comandos da AWS CLI*. 

### `verify-card-validation-data`
<a name="payment-cryptography-data_VerifyCardValidationData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `verify-card-validation-data`.

**AWS CLI**  
**Para validar um CVV**  
O exemplo `verify-card-validation-data` a seguir valida um CVV/CVV/CVV2 para um PAN.  

```
aws payment-cryptography-data verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 801
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```
Para obter mais informações, consulte [Verificar dados de cartões](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-card-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [VerifyCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-card-validation-data.html) na *Referência de comandos da AWS CLI*. 

### `verify-mac`
<a name="payment-cryptography-data_VerifyMac_cli_topic"></a>

O código de exemplo a seguir mostra como usar `verify-mac`.

**AWS CLI**  
**Como verificar um MAC**  
O exemplo `verify-mac` a seguir gera um código de autenticação de mensagens por hash (HMAC) para autenticação de dados do cartão usando o algoritmo HMAC\$1SHA256 e a chave de criptografia HMAC.  

```
aws payment-cryptography-data verify-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \
    --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \
    --verification-attributes='Algorithm=HMAC_SHA256' \
    --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C
```
Resultado:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6,
    "KeyCheckValue": "2976E7",
}
```
Para obter mais informações, consulte [Verificar MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-mac.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-mac.html) na *Referência de comandos da AWS CLI*. 

### `verify-pin-data`
<a name="payment-cryptography-data_VerifyPinData_cli_topic"></a>

O código de exemplo a seguir mostra como usar `verify-pin-data`.

**AWS CLI**  
**Como verificar um PIN**  
O exemplo `verify-pin-data` a seguir valida um PIN para um PAN.  

```
aws payment-cryptography-data verify-pin-data \
    --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 \
    --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --primary-account-number 171234567890123 \
    --pin-block-format ISO_FORMAT_0 \
    --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" \
    --encrypted-pin-block AC17DC148BDA645E
```
Resultado:  

```
{
    "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
    "VerificationKeyCheckValue": "7F2363",
    "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
    "EncryptionKeyCheckValue": "7CC9E2",
}
```
Para obter mais informações, consulte [Verificar dados de PIN](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-pin-data.html) no *Guia do usuário do AWS Payment Cryptography*.  
+  Para ver detalhes da API, consulte [VerifyPinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-pin-data.html) na *Referência de comandos da AWS CLI*. 