

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.

# Verificar MAC
<a name="verify-mac"></a>

Verifique que la MAC API se utiliza para verificar MAC (código de autenticación de mensajes) para la autenticación de datos relacionados con tarjetas. Debe utilizar la misma clave de cifrado utilizada durante la generación del MAC para reproducir el valor MAC para la autenticación. La clave de cifrado MAC se puede crear con criptografía de AWS pago mediante una llamada [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html)o importarse mediante una llamada. [ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html) La API admite las claves de cifrado DUKPT MAC, HMAC y EMV MAC para esta operación.

Si el valor se verifica, el parámetro de respuesta `MacDataVerificationSuccessful` devolverá `Http/200`, en caso contrario `Http/400` con un mensaje indicando que `Mac verification failed`.

**Topics**
+ [Verifica HMAC](#verify-mac-hmac)
+ [Verifique el MAC mediante DUKPT CMAC](#verify-mac-dukpt-cmac)

## Verifica HMAC
<a name="verify-mac-hmac"></a>

En este ejemplo, verificaremos un código HMAC (código de autenticación de mensajes basado en hash) para la autenticación de los datos de la tarjeta utilizando el algoritmo HMAC `HMAC_SHA256` y la clave de encriptación HMAC. La clave debe estar KeyUsage configurada `TR31_M7_HMAC_KEY` y establecida en KeyModesOfUse `Verify` true. 

**Example**  

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

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "2976E7"
}
```

## Verifique el MAC mediante DUKPT CMAC
<a name="verify-mac-dukpt-cmac"></a>

En este ejemplo, verificaremos un MAC mediante la DUKPT (clave única derivada por transacción) con la CMAC para la autenticación de los datos de la tarjeta. La clave debe estar KeyUsage establecida `TR31_B0_BASE_DERIVATION_KEY` y establecida en KeyModesOfUse `DeriveKey` true. Las claves DUKPT obtienen una clave única para cada transacción mediante una clave de derivación básica (BDK) y un número de serie de la clave (KSN). El valor de DukptKeyVariant debe coincidir entre el remitente y el destinatario. Por lo general, REQUEST se usa del terminal al servidor, VERIFY del servidor al terminal y BIDIRECTIONAL cuando se usa una sola clave en ambas direcciones. 

**Example**  

```
$ aws payment-cryptography-data verify-mac \ 
     --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ 
     --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ 
     --mac D8E804EE74BF1D909A2C01C0BDE8EF34 \ 
     --verification-attributes DukptCmac='{"KeySerialNumber":"932A6E954ABB32DD00000001","DukptKeyVariant":"BIDIRECTIONAL"}'
```

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