

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo empezar con la criptografía AWS de pagos
<a name="getting-started"></a>

Para empezar con la criptografía de AWS pagos, primero querrá crear claves y, después, utilizarlas en diversas operaciones criptográficas. El siguiente tutorial proporciona un caso de uso sencillo para generar una clave que se utilizará para generating/verifying CVV2 los valores. Para probar otros ejemplos y explorar los patrones de implementación en AWS, visite el siguiente [taller de criptografía de AWS pagos](https://catalog.us-east-1.prod.workshops.aws/workshops/b85843d4-a5e4-40fc-9a96-de0a99312a4b/en-US) o explore nuestro proyecto de muestra disponible en [GitHub](https://github.com/aws-samples/samples-for-payment-cryptography-service) 

En este tutorial, se explica cómo crear una clave única y cómo realizar operaciones criptográficas con ella. Después, borra la clave si ya no la desea, completando el ciclo de vida de la clave. 

**aviso**  
 Los ejemplos de esta guía del usuario pueden utilizar valores de muestra. *Recomendamos encarecidamente* no utilizar valores de muestra en un entorno de producción, como los números de serie clave. 

**Topics**
+ [Requisitos previos](#getting-started-prerequisites)
+ [Paso 1: crear una clave](#getting-started-step1)
+ [Paso 2: Genere un valor con la clave CVV2](#getting-started-step2)
+ [Paso 3: verificar el valor generado en el paso 2](#getting-started-step3)
+ [Paso 4: realizar una prueba negativa](#getting-started-step4)
+ [Paso 5: eliminación (opcional)](#getting-started-cleanup)

## Requisitos previos
<a name="getting-started-prerequisites"></a>

Antes de comenzar, asegúrese de que:
+ Tiene permiso para acceder al servicio. Para obtener más información, consulte [Políticas de IAM](security_iam_service-with-iam.md).
+ Ha instalado [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). También puede utilizar [AWS SDKs](https://aws.amazon.com/developer/tools/)o acceder [AWS APIs](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/Welcome.html)a la criptografía de AWS pagos, pero en las instrucciones de este tutorial se utiliza la AWS CLI. 

## Paso 1: crear una clave
<a name="getting-started-step1"></a>

El primer paso es crear una clave. Para este tutorial, debe crear una clave [CVK](terminology.md#terms.cvk) 3DES de doble longitud (2KEY TDES) para generar y verificar los valores CVV/. CVV2 

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'
```

La respuesta refleja los parámetros de la solicitud, incluyendo un ARN para las llamadas posteriores y un valor de verificación clave (KCV).

```
{
    "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyAlgorithm": "TDES_2KEY",
            "KeyModesOfUse": {
                "Encrypt": false,
                "Decrypt": false,
                "Wrap": false,
                "Unwrap": false,
                "Generate": true,
                "Sign": false,
                "Verify": true,
                "DeriveKey": false,
                "NoRestrictions": false
            }
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": true,
        "KeyState": "CREATE_COMPLETE",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
        "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
    }
}
```

Tome nota de `KeyArn` que representa la clave, por ejemplo, *arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi*. Lo necesitará en el siguiente paso.

## Paso 2: Genere un valor con la clave CVV2
<a name="getting-started-step2"></a>

En este paso, generas una CVV2 para una fecha de caducidad determinada `PAN` utilizando la clave del paso 1. 

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

```
{
    "CardDataGenerationKeyCheckValue": "CADDA1",
    "CardDataGenerationKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "CardDataType": "CARD_VERIFICATION_VALUE_2",
    "CardDataValue": "144"
}
```

Tome nota de `cardDataValue`, en este caso el número de tres dígitos 144. Lo necesitará en el siguiente paso.

## Paso 3: verificar el valor generado en el paso 2
<a name="getting-started-step3"></a>

En este ejemplo, validas el dato CVV2 del paso 2 con la clave que creaste en el paso 1.

Ejecute el siguiente comando para validar el CVV2.

```
$  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 144
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```

El servicio devuelve una respuesta HTTP de 200 para indicar que ha validado la CVV2.

## Paso 4: realizar una prueba negativa
<a name="getting-started-step4"></a>

En este paso, se crea una prueba negativa en la que no CVV2 es correcta ni se valida. Intenta validar un error CVV2 con la clave que creaste en el paso 1. Se trata de una operación esperada, por ejemplo, si el titular de la tarjeta ha introducido un error CVV2 al finalizar la compra. 

```
$  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 999
```

```
Card validation data verification failed.
```

El servicio devuelve una respuesta HTTP de 400 con el mensaje “Fallo en la verificación de los datos de validación de la tarjeta” y el motivo INVALID\$1VALIDATION\$1DATA.

## Paso 5: eliminación (opcional)
<a name="getting-started-cleanup"></a>

Ahora puede eliminar la clave que creó en el paso 1. Para minimizar los cambios irrecuperables, el periodo de eliminación de claves predeterminado es de siete de días. 

```
$ aws payment-cryptography delete-key \
    --key-identifier=arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi
```

```
{
    "Key": {
        "CreateTimestamp": "2022-10-27T08:27:51.795000-07:00",
        "DeletePendingTimestamp": "2022-11-03T13:37:12.114000-07:00",
        "Enabled": true,
        "Exportable": true,
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
        "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_C0_CARD_VERIFICATION_KEY"
        },
        "KeyCheckValue": "CADDA1",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "DELETE_PENDING",
        "UsageStartTimestamp": "2022-10-27T08:27:51.753000-07:00"
    }
}
```

Tome nota de dos campos en la salida. El `deletePendingTimestamp` se fija por defecto para los siete días posteriores. El KeyState está establecido en `DELETE_PENDING`. Puede cancelar esta eliminación en cualquier momento antes de la hora de eliminación programada llamando al [https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html](https://docs.aws.amazon.com/cli/latest/reference/payment-cryptography/restore-key.html).