

# Ejemplos de planos de datos de AWS Payment Cryptography que utilizan la AWS CLI
<a name="cli_payment-cryptography-data_code_examples"></a>

En los siguientes ejemplos de código se muestra cómo realizar acciones e implementar escenarios comunes mediante AWS Command Line Interface con el plano de datos de AWS Payment Cryptography.

Las *acciones* son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las distintas funciones de servicio, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

**Topics**
+ [Acciones](#actions)

## Acciones
<a name="actions"></a>

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

En el siguiente ejemplo de código, se muestra cómo utilizar `decrypt-data`.

**AWS CLI**  
**Descifrado de texto cifrado**  
El siguiente ejemplo de `decrypt-data` descifra los datos del texto cifrado mediante una clave simétrica. Para esta operación, la clave debe tener `KeyModesOfUse` configurado como `Decrypt` y `KeyUsage` configurado 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}}}'
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "PlainText": "31323334313233343132333431323334"
}
```
Para obtener más información, consulte [Decrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [DecryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/decrypt-data.html) en la *Referencia de comandos de AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `encrypt-data`.

**AWS CLI**  
**Cifrado de datos**  
En el siguiente ejemplo de `encrypt-data` se cifran los datos en texto plano mediante una clave simétrica. Para esta operación, la clave debe tener `KeyModesOfUse` configurado como `Encrypt` y `KeyUsage` configurado 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}}}'
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```
Para obtener más información, consulte [Encrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [EncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/encrypt-data.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `generate-card-validation-data`.

**AWS CLI**  
**Generación de un CVV**  
El siguiente ejemplo de `generate-card-validation-data` genera un 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}}}
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```
Para obtener más información, consulte [Generate card data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [GenerateCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-card-validation-data.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `generate-mac`.

**AWS CLI**  
**Generación de un MAC**  
El siguiente ejemplo de `generate-card-validation-data` genera un código de autenticación de mensajes basado en hash (HMAC) para la autenticación de datos de tarjeta mediante el algoritmo HMAC\_SHA256 y una clave de cifrado HMAC. La clave debe tener `KeyUsage` configurado en `TR31_M7_HMAC_KEY` y `KeyModesOfUse` en`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}}
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h,
    "KeyCheckValue": "2976E7",
    "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C"
}
```
Para obtener más información, consulte [Generate MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-mac.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-mac.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `generate-pin-data`.

**AWS CLI**  
**Generación de un PIN**  
En el siguiente ejemplo de `generate-card-validation-data`, se genera un nuevo PIN aleatorio mediante el esquema de Visa PIN.  

```
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}}}
```
Salida:  

```
{
    "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 obtener más información, consulte [Generate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [GeneratePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-pin-data.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `re-encrypt-data`.

**AWS CLI**  
**Cifrado de datos por segunda vez con una clave diferente**  
En el siguiente ejemplo de `re-encrypt-data`, se descifra el texto cifrado con una clave simétrica AES y se vuelve a cifrar con una clave única derivada por transacción (DUKPT).  

```
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"}}}}'
```
Salida:  

```
{
    "CipherText": "F94959DA30EEFF0C035483C6067667CF6796E3C1AD28C2B61F9CFEB772A8DD41C0D6822931E0D3B1",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen",
    "KeyCheckValue": "2E8CD9"
}
```
Para obtener más información, consulte [Encrypt and decrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops.encryptdecrypt.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [ReEncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/re-encrypt-data.html) en la *Referencia de comandos de AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `translate-pin-data`.

**AWS CLI**  
**Traducción de datos PIN**  
En el siguiente ejemplo de `translate-pin-data`, se traduce un PIN de cifrado TDES PEK mediante un bloque de PIN ISO 0 a un bloque de PIN AES ISO 4 mediante el 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"
```
Salida:  

```
{
    "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt
    "KeyCheckValue": "7CC9E2"
}
```
Para obtener más información, consulte [Translate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [TranslatePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/translate-pin-data.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `verify-auth-request-cryptogram`.

**AWS CLI**  
**Verificación de una solicitud de autenticación**  
El siguiente ejemplo de `verify-auth-request-cryptogram` verifica un criptograma de solicitud de autorización (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"}}
```
Salida:  

```
{
    "AuthResponseValue": "D899B8C6FBF971AA",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya",
    "KeyCheckValue": "985792"
}
```
Para obtener más información, consulte [Verify auth request (ARQC) cryptogram](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.verifyauthrequestcryptogram.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [VerifyAuthRequestCryptogram](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-auth-request-cryptogram.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `verify-card-validation-data`.

**AWS CLI**  
**Validación de un CVV**  
En el ejemplo siguiente de `verify-card-validation-data`, se valida un CVV o CVV2 para un 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}}
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```
Para obtener más información, consulte [Verify card data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-card-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [VerifyCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-card-validation-data.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `verify-mac`.

**AWS CLI**  
**Verificación de un MAC**  
El siguiente ejemplo de `verify-mac` comprueba un código de autenticación de mensajes basado en hash (HMAC) para la autenticación de datos de tarjeta mediante el algoritmo HMAC\_SHA256 y una clave de cifrado 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}}
```
Salida:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6,
    "KeyCheckValue": "2976E7",
}
```
Para obtener más información, consulte [Verify MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-mac.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-mac.html) en la *Referencia de comandos de la AWS CLI*. 

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

En el siguiente ejemplo de código, se muestra cómo utilizar `verify-pin-data`.

**AWS CLI**  
**Comprobación de un PIN**  
En el siguiente ejemplo de `verify-pin-data`, se valida un PIN para un 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}}
```
Salida:  

```
{
    "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 obtener más información, consulte [Verify PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-pin-data.html) en la *Guía del usuario de AWS Payment Cryptography*.  
+  Para ver los detalles de la API, consulte [VerifyPinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-pin-data.html) en la *Referencia de comandos de AWS CLI*. 