

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Verifikasi MAC API digunakan untuk memverifikasi MAC (Kode Otentikasi Pesan) untuk otentikasi data terkait kartu. Itu harus menggunakan kunci enkripsi yang sama yang digunakan selama menghasilkan MAC untuk menghasilkan kembali nilai MAC untuk otentikasi. Kunci enkripsi MAC dapat dibuat dengan Kriptografi AWS Pembayaran dengan menelepon [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html)atau diimpor dengan menelepon [ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html). API mendukung kunci enkripsi DUKPT MAC, HMAC dan EMV MAC untuk operasi ini.

Jika nilai diverifikasi, maka parameter respons `MacDataVerificationSuccessful` akan kembali`Http/200`, jika tidak `Http/400` dengan pesan yang menunjukkan itu`Mac verification failed`.

**Topics**
+ [Verifikasi HMAC](#verify-mac-hmac)
+ [Verifikasi MAC menggunakan DUKPT CMAC](#verify-mac-dukpt-cmac)

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

Dalam contoh ini, kami akan memverifikasi HMAC (Hash Based Message Authentication Code) untuk otentikasi data kartu menggunakan algoritma `HMAC_SHA256` HMAC dan kunci enkripsi HMAC. Kunci harus KeyUsage disetel ke `TR31_M7_HMAC_KEY` dan KeyModesOfUse `Verify` disetel ke 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"
}
```

## Verifikasi MAC menggunakan DUKPT CMAC
<a name="verify-mac-dukpt-cmac"></a>

Dalam contoh ini, kami akan memverifikasi MAC menggunakan DUKPT (Derived Unique Key Per Transaction) dengan CMAC untuk otentikasi data kartu. Kunci harus KeyUsage disetel ke `TR31_B0_BASE_DERIVATION_KEY` dan KeyModesOfUse `DeriveKey` disetel ke true. Kunci DUKPT memperoleh kunci unik untuk setiap transaksi menggunakan Kunci Derivasi Dasar (BDK) dan Nomor Seri Kunci (KSN). Nilai DukptKeyVariant harus cocok antara pengirim dan penerima. REQUEST biasanya akan digunakan dari terminal ke backend, VERIFIKASI dari backend ke terminal dan BIDIRECTIONAL ketika satu kunci digunakan di kedua arah. 

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