

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

# Gere e verifique um MAC EMV
<a name="use-cases-issuers.generalfunctions.emvmac"></a>

EMV MAC é MAC usando uma entrada de uma chave derivada de EMV e, em seguida, executando um MAC ISO9797 -3 (varejo) sobre os dados resultantes. O EMV MAC é normalmente usado para enviar comandos para uma placa EMV, como scripts de desbloqueio. 

**nota**  
 AWS A criptografia de pagamento não valida o conteúdo do script. Consulte o manual do esquema ou da placa para obter detalhes sobre os comandos específicos a serem incluídos. 

Para obter mais informações, consulte [MacAlgorithmEmv](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_MacAlgorithmEmv.html)o guia da API.

**Topics**
+ [Crie a chave](#use-cases-issuers.generalfunctions.emvmac.setup)
+ [Gere um MAC EMV](#use-cases-issuers.generalfunctions.emvmac.generate)

## Crie a chave
<a name="use-cases-issuers.generalfunctions.emvmac.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

A resposta reflete os parâmetros da solicitação, incluindo um ARN para chamadas subsequentes, bem como um valor de verificação chave (KCV).

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

Anote o `KeyArn` que representa a chave, por exemplo, *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Isso será necessário na próxima etapa.

## Gere um MAC EMV
<a name="use-cases-issuers.generalfunctions.emvmac.generate"></a>

O fluxo típico é que um processo de back-end gera um script EMV (como desbloqueio de cartão), assina-o usando esse comando (que deriva uma chave única específica para uma placa específica) e, em seguida, retornará o MAC. Em seguida, o comando \$1 MAC é enviado para o cartão a ser aplicado. Enviar o comando para o cartão está fora do escopo da criptografia de AWS pagamento. 

**nota**  
 Esse comando é destinado a comandos quando nenhum dado criptografado (como PIN) é enviado. O EMV Encrypt pode ser combinado com esse comando para anexar dados criptografados ao script do emissor antes de chamar esse comando. 

Dados da mensagem  
Os dados da mensagem incluem o cabeçalho e o comando APDU. Embora isso possa variar de acordo com a implementação, este exemplo é o cabeçalho APDU para desbloqueio (84 24 00 00 08), seguido pelo ATC (0007) e depois pelo ARQC da transação anterior (999E57 F47CACE). FD0 O serviço não valida o conteúdo desse campo.

Modo de derivação da chave de sessão  
Esse campo define como a chave de sessão é gerada. O EMV\$1COMMON\$1SESSION\$1KEY geralmente é usado para as novas implementações, enquanto EMV2000 \$1 AMEX \$1 MASTERCARD\$1SESSION\$1KEY \$1 VISA também pode ser usado. 

MajorKeyDerivationMode  
O EMV define o modo A, B ou C. O modo A é o mais comum e a criptografia AWS de pagamento atualmente suporta o modo A ou o modo B.

PAN  
O número da conta, normalmente disponível no campo de chip 5A ou ISO8583 campo 2, mas também pode ser recuperado do sistema de cartão.

PSN  
O número de sequência do cartão. Se não for usado, insira 00.

SessionKeyDerivationValue  
Esses são os dados de derivação por sessão. Pode ser o último ARQC (ApplicationCryptogram) do campo 9F26 ou o último ATC do 9F36, dependendo do esquema de derivação.

Padding  
O preenchimento é aplicado automaticamente e usa o método de preenchimento ISO/IEC 9797-1 2.

**Example**  

```
$ aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
```

```
{
"KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
"KeyCheckValue": "08D7B4",
"Mac":"5652EEDF83EA0D84"
}
```