

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

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

A API de verificação de MAC é usada para verificar o MAC (Código de autenticação de mensagens) para autenticação de dados relacionados a cartões. Ela deve usar a mesma chave de criptografia usada durante a geração do MAC para reproduzir o valor do MAC para autenticação. A chave de criptografia MAC pode ser criada com criptografia AWS de pagamento por chamada [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html)ou importada por chamada [ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html). A API suporta chaves de criptografia DUKPT MAC, HMAC e EMV MAC para essa operação.

Se o valor for verificado, o parâmetro de resposta `MacDataVerificationSuccessful` retornará `Http/200`, caso contrário, `Http/400` com uma mensagem indicando que `Mac verification failed`.

**Topics**
+ [Verifique o HMAC](#verify-mac-hmac)
+ [Verifique o MAC usando o DUKPT CMAC](#verify-mac-dukpt-cmac)

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

Neste exemplo, verificaremos um HMAC (Código de autenticação de mensagens baseado em hash) para autenticação de dados do cartão usando o algoritmo HMAC `HMAC_SHA256` e a chave de criptografia HMAC. A chave deve ter sido KeyUsage definida como verdadeira `TR31_M7_HMAC_KEY` e KeyModesOfUse `Verify` definida como verdadeira. 

**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 o MAC usando o DUKPT CMAC
<a name="verify-mac-dukpt-cmac"></a>

Neste exemplo, verificaremos um MAC usando DUKPT (Derived Unique Key Per Transaction) com CMAC para autenticação de dados do cartão. A chave deve ter sido KeyUsage definida como verdadeira `TR31_B0_BASE_DERIVATION_KEY` e KeyModesOfUse `DeriveKey` definida como verdadeira. As chaves DUKPT derivam uma chave exclusiva para cada transação usando uma chave de derivação básica (BDK) e um número de série da chave (KSN). O valor de DukptKeyVariant deve corresponder entre o remetente e o destinatário. REQUEST normalmente será usado do terminal ao back-end, VERIFY do back-end ao terminal e BIDIRECTIONAL quando uma única chave é usada nas duas direções. 

**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"
}
```