

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

# Kasus penggunaan umum
<a name="use-cases"></a>

AWS Kriptografi Pembayaran mendukung banyak operasi kriptografi pembayaran yang khas. Topik berikut bertindak sebagai panduan tentang cara menggunakan operasi ini untuk kasus penggunaan umum yang umum. Untuk daftar semua perintah, silakan tinjau API Kriptografi AWS Pembayaran.

**Topics**
+ [Emiten dan prosesor penerbit](use-cases-issuers.md)
+ [Fasilitator perolehan dan pembayaran](use-cases-acquirers.md)

# Emiten dan prosesor penerbit
<a name="use-cases-issuers"></a>

 Kasus penggunaan penerbit biasanya terdiri dari beberapa bagian. Bagian ini diatur oleh fungsi (seperti bekerja dengan pin). Dalam sistem produksi, kunci biasanya dicakup ke bin kartu tertentu dan dibuat selama pengaturan bin daripada sebaris seperti yang ditunjukkan di sini. 

**Topics**
+ [Fungsi Umum](use-cases-issuers.generalfunctions.md)
+ [Fungsi spesifik jaringan](use-cases-issuers.networkfunctions.md)

# Fungsi Umum
<a name="use-cases-issuers.generalfunctions"></a>

**Topics**
+ [Hasilkan pin acak dan PVV terkait lalu verifikasi nilainya](use-cases-issuers.generalfunctions.pvv.md)
+ [Menghasilkan atau memverifikasi CVV untuk kartu tertentu](use-cases-issuers.generalfunctions.cvv.md)
+ [Menghasilkan atau memverifikasi CVV2 untuk kartu tertentu](use-cases-issuers.generalfunctions.cvv2.md)
+ [Buat atau verifikasi iCVV untuk kartu tertentu](use-cases-issuers.generalfunctions.icvv.md)
+ [Verifikasi EMV ARQC dan hasilkan ARPC](use-cases-issuers.generalfunctions.arqc.md)
+ [Hasilkan dan Verifikasi EMV MAC](use-cases-issuers.generalfunctions.emvmac.md)
+ [Hasilkan EMV MAC untuk Perubahan PIN](use-cases-issuers.generalfunctions.emvpinchange.md)

# Hasilkan pin acak dan PVV terkait lalu verifikasi nilainya
<a name="use-cases-issuers.generalfunctions.pvv"></a>

**Topics**
+ [Buat kunci (s)](#use-cases-issuers.generalfunctions.pvv.setup)
+ [Hasilkan pin acak, hasilkan PVV dan kembalikan PIN dan PVV terenkripsi](#use-cases-issuers.generalfunctions.pvv.generate)
+ [Validasi PIN terenkripsi menggunakan metode PVV](#use-cases-issuers.generalfunctions.pvv.verify)

## Buat kunci (s)
<a name="use-cases-issuers.generalfunctions.pvv.setup"></a>

Untuk menghasilkan pin acak dan [PVV](terminology.md#terms.pvv), Anda memerlukan dua kunci, Kunci [Verifikasi Pin (PVK) untuk menghasilkan PVV dan Kunci](terminology.md#terms.pvk) Enkripsi Pin untuk [mengenkripsi pin](terminology.md#terms.pek). Pin itu sendiri dihasilkan secara acak dengan aman di dalam layanan dan tidak terkait dengan salah satu kunci secara kriptografi. 

PGK harus menjadi kunci algoritma TDES\$12KEY berdasarkan algoritma PVV itu sendiri. PEK dapat berupa TDES\$12KEY, TDES\$13KEY atau AES\$1128. Dalam hal ini, karena PEK ditujukan untuk penggunaan internal dalam sistem Anda, AES\$1128 akan menjadi pilihan yang baik. Jika PEK digunakan untuk pertukaran dengan sistem lain (misalnya jaringan kartu, pengakuisisi, ATMs) atau sedang dipindahkan sebagai bagian dari migrasi, TDES\$12KEY mungkin menjadi pilihan yang lebih tepat untuk alasan kompatibilitas. 

### Buat PEK
<a name="use-cases-issuers.generalfunctions.pvv.setup.pek"></a>

```
$ aws payment-cryptography create-key \
               --exportable 
               --key-attributes KeyAlgorithm=AES_128,KeyUsage=TR31_P0_PIN_ENCRYPTION_KEY,\
                   KeyClass=SYMMETRIC_KEY,\
                   KeyModesOfUse='{Encrypt=true,Decrypt=true,Wrap=true,Unwrap=true}' --tags='[{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
                   "KeyAttributes": {
                       "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY",
                       "KeyClass": "SYMMETRIC_KEY",
                       "KeyAlgorithm": "AES_128",
                       "KeyModesOfUse": {
                           "Encrypt": false,
                           "Decrypt": false,
                           "Wrap": false,
                           "Unwrap": false,
                           "Generate": true,
                           "Sign": false,
                           "Verify": true,
                           "DeriveKey": false,
                           "NoRestrictions": false
                       }
                   },
                   "KeyCheckValue": "7CC9E2",
                   "KeyCheckValueAlgorithm": "CMAC",
                   "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"
               }
           }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-east- 2:111122223333:key/ivi5ksfsuplneuyt*. Anda membutuhkannya di langkah berikutnya.

### Buat PVK
<a name="use-cases-issuers.generalfunctions.pvv.setup.pvk"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
                  "Key": {
                      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
                      "KeyAttributes": {
                          "KeyUsage": "TR31_V2_VISA_PIN_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": "51A200",
                      "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"
                  }
              }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-east- 2:111122223333:key/ov6icy4ryas4zcza*. Anda membutuhkannya di langkah berikutnya.

## Hasilkan pin acak, hasilkan PVV dan kembalikan PIN dan PVV terenkripsi
<a name="use-cases-issuers.generalfunctions.pvv.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan pin 4 digit baru (acak) di mana output akan dienkripsi `PIN block` (. PinData PinBlock) dan a `PVV` (pinData. VerificationValue). Input kuncinya adalah`PAN`, `Pin Verification Key` (juga dikenal sebagai kunci pembuatan pin), `Pin Encryption Key` dan format [Blok PIN](terminology.md#terms.pinblock).   
 Perintah ini mengharuskan kuncinya bertipe`TR31_V2_VISA_PIN_VERIFICATION_KEY`.   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes VisaPin={PinVerificationKeyIndex=1}
```

```
{
            "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
            "GenerationKeyCheckValue": "7F2363",
            "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "EncryptionKeyCheckValue": "7CC9E2",
            "EncryptedPinBlock": "AC17DC148BDA645E",
            "PinData": {
                "VerificationValue": "5507"
            }
        }
```

## Validasi PIN terenkripsi menggunakan metode PVV
<a name="use-cases-issuers.generalfunctions.pvv.verify"></a>

**Example**  
Dalam contoh ini, kita akan memvalidasi PIN untuk PAN tertentu. PIN biasanya disediakan oleh pemegang kartu atau pengguna selama waktu transaksi untuk validasi dan dibandingkan dengan nilai pada file (input dari pemegang kartu diberikan sebagai nilai terenkripsi dari terminal atau penyedia hulu lainnya). Untuk memvalidasi input ini, nilai berikut juga akan diberikan saat runtime - Pin terenkripsi, kunci yang digunakan untuk mengenkripsi pin input (sering disebut sebagai [IWK](terminology.md#terms.iwk)), `PAN` dan nilai untuk memverifikasi terhadap (baik a atau). `PVV` `PIN offset`   
Jika Kriptografi AWS Pembayaran dapat memvalidasi pin, http/200 dikembalikan. Jika pin tidak divalidasi, itu akan mengembalikan http/400.  

```
$ aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0  --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" --encrypted-pin-block AC17DC148BDA645E 
```

```
{
        "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
        "VerificationKeyCheckValue": "7F2363",
        "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
        "EncryptionKeyCheckValue": "7CC9E2",
}
```

# Menghasilkan atau memverifikasi CVV untuk kartu tertentu
<a name="use-cases-issuers.generalfunctions.cvv"></a>

[CVV](terminology.md#terms.cvv) atau CVV1 merupakan nilai yang secara tradisional tertanam dalam strip magnetik kartu. Ini tidak sama dengan CVV2 (terlihat oleh pemegang kartu dan untuk digunakan untuk pembelian online).

Langkah pertama adalah membuat kunci. Untuk tutorial ini, Anda membuat kunci 3DES (2KEY TDES) panjang ganda [CVK](terminology.md#terms.cvk). 

**catatan**  
CVV, CVV2 dan iCVV semuanya menggunakan algoritma yang serupa jika tidak identik tetapi memvariasikan data input. Semua menggunakan jenis kunci yang sama TR31 \$1C0\$1CARD\$1VERIFICATION\$1KEY tetapi disarankan untuk menggunakan kunci terpisah untuk setiap tujuan. Ini dapat dibedakan menggunakan and/or tag alias seperti pada contoh di bawah ini. 

## Buat kuncinya
<a name="use-cases-issuers.generalfunctions.cvv.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                "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": "DE89F9",
                "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"
            }
        }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/r52o3wbqxyf6qlqr. Anda membutuhkannya di langkah berikutnya.

## Menghasilkan CVV
<a name="use-cases-issuers.generalfunctions.cvv.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan [CVV](terminology.md#terms.cvv) untuk PAN tertentu dengan input`PAN`, kode layanan (sebagaimana didefinisikan oleh ISO/IEC 7813) dari 121 dan tanggal kedaluwarsa kartu.   
Untuk semua parameter yang tersedia, lihat [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121}'
```

```
                  {
                      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                      "KeyCheckValue": "DE89F9",
                      "ValidationData": "801"
                  }
```

## Validasi CVV
<a name="use-cases-issuers.generalfunctions.cvv.verify"></a>

**Example**  
Dalam contoh ini, kami akan memverifikasi [CVV](terminology.md#terms.cvv) untuk PAN tertentu dengan input CVK,, kode layanan 121`PAN`, tanggal kedaluwarsa kartu dan CVV yang disediakan selama transaksi untuk divalidasi.   
Untuk semua parameter yang tersedia, lihat, [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   
CVV bukan nilai yang dimasukkan pengguna (seperti CVV2) tetapi biasanya disematkan pada magstripe. Pertimbangan harus diberikan apakah harus selalu memvalidasi saat disediakan.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121} --validation-data 801
```

```
{
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                    "KeyCheckValue": "DE89F9",
                    "ValidationData": "801"
}
```

# Menghasilkan atau memverifikasi CVV2 untuk kartu tertentu
<a name="use-cases-issuers.generalfunctions.cvv2"></a>

[CVV2](terminology.md#terms.cvv2)adalah nilai yang secara tradisional disediakan di bagian belakang kartu dan digunakan untuk pembelian online. Untuk kartu virtual, mungkin juga ditampilkan di aplikasi atau layar. Secara kriptografis, itu sama dengan CVV1 tetapi dengan nilai kode layanan yang berbeda.

## Buat kuncinya
<a name="use-cases-issuers.generalfunctions.cvv2.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVV2"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                   "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": "AEA5CD",
                   "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"
               }
           }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/7f7g4spf3xcklhzu*. Anda membutuhkannya di langkah berikutnya.

## Menghasilkan CVV2
<a name="use-cases-issuers.generalfunctions.cvv2.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan [CVV2](terminology.md#terms.cvv2)untuk PAN tertentu dengan input `PAN` dan tanggal kedaluwarsa kartu.   
Untuk semua parameter yang tersedia, lihat [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) di panduan referensi API.   

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

```
                     {
                         "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                         "KeyCheckValue": "AEA5CD",
                         "ValidationData": "321"
                     }
```

## Validasi CVV2
<a name="use-cases-issuers.generalfunctions.cvv2.verify"></a>

**Example**  
Dalam contoh ini, kami akan memverifikasi PAN yang diberikan dengan input CVK, `PAN` dan tanggal kedaluwarsa kartu dan CVV yang disediakan [CVV2](terminology.md#terms.cvv2)selama transaksi untuk divalidasi.   
Untuk semua parameter yang tersedia, lihat, [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) di panduan referensi API.   
CVV2 dan input lainnya adalah nilai yang dimasukkan pengguna. Dengan demikian, ini belum tentu merupakan tanda masalah yang gagal divalidasi secara berkala.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu --primary-account-number=171234567890123 --verification-attributes CardVerificationValue2='{CardExpiryDate=1127} --validation-data 321
```

```
{
                       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                       "KeyCheckValue": "AEA5CD",
                       "ValidationData": "801"
   }
```

# Buat atau verifikasi iCVV untuk kartu tertentu
<a name="use-cases-issuers.generalfunctions.icvv"></a>

[ICVV](terminology.md#terms.icvv) menggunakan algoritma yang sama dengan CVV2 CVV/tetapi iCVV tertanam di dalam kartu chip. Kode layanannya adalah 999.

## Buat kuncinya
<a name="use-cases-issuers.generalfunctions.icvv.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"ICVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                   "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": "1201FB",
                   "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"
               }
           }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/c7dsi763r6s7lfp3*. Anda membutuhkannya di langkah berikutnya.

## Menghasilkan iCVV
<a name="use-cases-issuers.generalfunctions.icvv.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan [iCVV](terminology.md#terms.icvv) untuk PAN tertentu dengan input`PAN`, kode layanan (sebagaimana didefinisikan oleh ISO/IEC 7813) dari 999 dan tanggal kedaluwarsa kartu.   
Untuk semua parameter yang tersedia, lihat [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3 --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999}'
```

```
                     {
                         "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                         "KeyCheckValue": "1201FB",
                         "ValidationData": "532"
                     }
```

## Validasi iCVV
<a name="use-cases-issuers.generalfunctions.icvv.verify"></a>

**Example**  
Untuk validasi, inputnya adalah CVK, kode layanan 999`PAN`, tanggal kedaluwarsa kartu dan iCVV yang disediakan selama transaksi untuk divalidasi.   
Untuk semua parameter yang tersedia, lihat, [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   
iCVV bukan nilai yang dimasukkan pengguna (seperti CVV2) tetapi biasanya disematkan pada kartu. EMV/chip Pertimbangan harus diberikan apakah harus selalu memvalidasi saat disediakan.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3 --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999} --validation-data 532
```

```
{
                       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                       "KeyCheckValue": "1201FB",
                       "ValidationData": "532"
   }
```

# Verifikasi EMV ARQC dan hasilkan ARPC
<a name="use-cases-issuers.generalfunctions.arqc"></a>

[ARQC](terminology.md#terms.arqc) (Authorization Request Cryptogram) adalah kriptogram yang dihasilkan oleh kartu EMV (chip) dan digunakan untuk memvalidasi detail transaksi serta penggunaan kartu resmi. Ini menggabungkan data dari kartu, terminal dan transaksi itu sendiri.

Pada waktu validasi di backend, input yang sama diberikan ke Kriptografi AWS Pembayaran, kriptogram dibuat ulang secara internal dan ini dibandingkan dengan nilai yang diberikan dengan transaksi. Dalam hal ini, ini mirip dengan MAC. [EMV 4.4 Buku 2](https://www.emvco.com/specifications/?post_id=80377) mendefinisikan tiga aspek fungsi ini - metode derivasi kunci (dikenal sebagai kunci sesi umum - CSK) untuk menghasilkan kunci transaksi satu kali, muatan minimum dan metode untuk menghasilkan respons (ARPC).

 Skema kartu individu dapat menentukan bidang transaksional tambahan untuk dimasukkan atau urutan bidang tersebut muncul. Skema derivasi spesifik lainnya (umumnya tidak digunakan lagi) juga ada dan tercakup di tempat lain dalam dokumentasi ini. 

Untuk informasi selengkapnya, lihat [VerifyCardValidationData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)di panduan API.

## Buat kuncinya
<a name="use-cases-issuers.generalfunctions.arqc.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
                "Key": {
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                    "KeyAttributes": {
                        "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                        "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"
                }
            }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Anda membutuhkannya di langkah berikutnya.

## Menghasilkan ARQC
<a name="use-cases-issuers.generalfunctions.arqc.generate"></a>

ARQC dihasilkan secara eksklusif oleh kartu EMV. Dengan demikian, Kriptografi AWS Pembayaran tidak memiliki fasilitas untuk menghasilkan muatan seperti itu. Untuk tujuan pengujian, sejumlah perpustakaan tersedia secara online yang dapat menghasilkan muatan yang sesuai serta nilai yang diketahui yang umumnya disediakan oleh berbagai skema. 

## Validasi ARQC
<a name="use-cases-issuers.generalfunctions.arqc.verify"></a>

**Example**  
Jika Kriptografi AWS Pembayaran dapat memvalidasi ARQC, http/200 dikembalikan. ARPC (respons) secara opsional dapat diberikan dan dimasukkan dalam respons setelah ARQC divalidasi.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram 61EDCC708B4C97B4 --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --major-key-derivation-mode EMV_OPTION_A --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000000000000000000000000000000000000000000000000000008000000000000000 --session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", "PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}' --auth-response-attributes='{"ArpcMethod2":{"CardStatusUpdate":"12345678"}}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
    "KeyCheckValue": "08D7B4",
    "AuthResponseValue":"2263AC85"
}
```

# Hasilkan dan Verifikasi EMV MAC
<a name="use-cases-issuers.generalfunctions.emvmac"></a>

EMV MAC adalah MAC menggunakan input dari kunci turunan EMV dan kemudian melakukan ISO9797 -3 (Retail) MAC atas data yang dihasilkan. EMV MAC biasanya digunakan untuk mengirim perintah ke kartu EMV seperti skrip buka blokir. 

**catatan**  
 AWS Kriptografi Pembayaran tidak memvalidasi isi skrip. Silakan berkonsultasi dengan skema atau manual kartu Anda untuk detail tentang perintah tertentu untuk disertakan. 

Untuk informasi selengkapnya, lihat [MacAlgorithmEmv](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_MacAlgorithmEmv.html)di panduan API.

**Topics**
+ [Buat kuncinya](#use-cases-issuers.generalfunctions.emvmac.setup)
+ [Menghasilkan EMV MAC](#use-cases-issuers.generalfunctions.emvmac.generate)

## Buat kuncinya
<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"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (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"
        }
    }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Anda membutuhkannya di langkah berikutnya.

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

Aliran tipikal adalah bahwa proses backend akan menghasilkan skrip EMV (seperti membuka blokir kartu), menandatanganinya menggunakan perintah ini (yang memperoleh kunci satu kali khusus untuk satu kartu tertentu) dan kemudian mengembalikan MAC. Kemudian perintah\$1MAC dikirim ke kartu yang akan diterapkan. Mengirim perintah ke kartu berada di luar cakupan Kriptografi AWS Pembayaran. 

**catatan**  
 Perintah ini dimaksudkan untuk perintah ketika tidak ada data terenkripsi (seperti PIN) yang dikirim. EMV Encrypt dapat dikombinasikan dengan perintah ini untuk menambahkan data terenkripsi ke skrip penerbit sebelum memanggil perintah ini 

Data Pesan  
Data pesan termasuk header dan perintah APDU. Meskipun ini dapat bervariasi berdasarkan implementasi, contoh ini adalah header APDU untuk membuka blokir (84 24 00 00 08), diikuti oleh ATC (0007) dan kemudian ARQC dari transaksi sebelumnya (999E57 F47CACE). FD0 Layanan tidak memvalidasi isi bidang ini.

Mode Derivasi Kunci Sesi  
Bidang ini mendefinisikan bagaimana kunci sesi dihasilkan. EMV\$1COMMON\$1SESSION\$1KEY umumnya digunakan untuk implementasi baru, sedangkan EMV2000 \$1 AMEX \$1 MASTERCARD\$1SESSION\$1KEY \$1 VISA dapat digunakan juga. 

MajorKeyDerivationMode  
EMV Mendefinisikan Mode A, B atau C. Mode A adalah yang paling umum dan Kriptografi AWS Pembayaran saat ini mendukung mode A atau mode B.

PANCI  
Nomor rekening, biasanya tersedia di bidang chip 5A atau ISO8583 bidang 2 tetapi juga dapat diambil dari sistem kartu.

PSN  
Nomor urutan kartu. Jika tidak digunakan, masukkan 00.

SessionKeyDerivationValue  
Ini adalah data derivasi per sesi. Ini bisa berupa ARQC terakhir (ApplicationCryptogram) dari bidang 9F26 atau ATC terakhir dari 9F36 tergantung pada skema derivasi.

Bantalan  
Padding diterapkan secara otomatis dan menggunakan metode padding 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"
}
```

# Hasilkan EMV MAC untuk Perubahan PIN
<a name="use-cases-issuers.generalfunctions.emvpinchange"></a>

Perubahan PIN EMV menggabungkan dua operasi: menghasilkan MAC untuk skrip penerbit dan mengenkripsi PIN baru untuk perubahan PIN offline pada kartu chip EMV. Perintah ini hanya diperlukan di negara-negara tertentu di mana pin disimpan pada kartu chip (ini umum untuk negara-negara Eropa). Ini biasanya digunakan ketika pemegang kartu perlu mengubah PIN mereka dan PIN baru harus dikirim dengan aman ke kartu bersama dengan MAC untuk memverifikasi keaslian perintah. 

**catatan**  
 Jika Anda hanya perlu mengirim perintah ke kartu tetapi tidak mengubah PIN, pertimbangkan untuk menggunakan perintah [ARPC CSU](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyAuthRequestCryptogram.html) atau [Generate EMV MAC](use-cases-issuers.generalfunctions.emvmac.md) sebagai gantinya. 

Untuk informasi selengkapnya, lihat [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange.html)di panduan API.

## Hasilkan EMV MAC dan PIN terenkripsi untuk perubahan PIN
<a name="use-cases-issuers.generalfunctions.emvpinchange.generate"></a>

Operasi ini memerlukan dua kunci: kunci integritas EMV (: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY) untuk pembuatan MAC dan kunci kerahasiaan EMV (KeyUsage: \$1E4\$1EMV\$1MKEY\$1CONFIDENTIALITY) untuk enkripsi PIN. KeyUsage TR31 Aliran tipikal adalah bahwa proses backend akan menghasilkan skrip perubahan PIN EMV, yang mencakup MAC untuk skrip penerbit dan PIN baru yang dienkripsi. Perintah dan PIN terenkripsi kemudian dikirim ke kartu untuk memperbarui PIN offline. Mengirim perintah ke kartu berada di luar cakupan Kriptografi AWS Pembayaran. 

Data Pesan  
Data pesan termasuk perintah APDU untuk skrip penerbit. Layanan tidak memvalidasi isi bidang ini.

Blok PIN Terenkripsi Baru  
Blok PIN terenkripsi baru yang akan dikirim ke kartu. Ini harus disediakan sebagai nilai terenkripsi menggunakan kunci enkripsi PIN.

Pengenal PIN PEK Baru  
Kunci yang digunakan untuk mengenkripsi PIN baru sebelum diteruskan ke API ini.

Kunci Integritas Pesan Aman  
Kunci integritas EMV (KeyUsage: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY) digunakan untuk pembuatan MAC.

Kunci Kerahasiaan Pesan Aman  
Kunci kerahasiaan EMV (KeyUsage: TR31 \$1E4\$1EMV\$1MKEY\$1CONFIDENTIALITY) digunakan untuk enkripsi PIN.

MajorKeyDerivationMode  
EMV mendefinisikan Mode A, B, atau C. Mode A adalah yang paling umum dan Kriptografi AWS Pembayaran saat ini mendukung mode A atau mode B.

Modus  
Mode enkripsi, biasanya CBC untuk operasi perubahan PIN.

PANCI  
Nomor rekening, biasanya tersedia di bidang chip 5A atau ISO8583 bidang 2 tetapi juga dapat diambil dari sistem kartu.

PanSequenceNumber  
Nomor urutan kartu. Jika tidak digunakan, masukkan 00.

ApplicationCryptogram  
Ini adalah data derivasi per sesi, biasanya ARQC terakhir dari bidang 9F26.

PinBlockLengthPosition  
Menentukan di mana panjang blok PIN dikodekan. Biasanya diatur ke NONE. Periksa spesifikasi skema kartu Anda jika Anda tidak yakin.

PinBlockPaddingType  
Menentukan jenis padding untuk blok PIN. Biasanya diatur ke NO\$1PADDING. Periksa spesifikasi skema kartu Anda jika Anda tidak yakin.

**Example**  

```
$ aws payment-cryptography-data generate-mac-emv-pin-change \
    --message-data 00A4040008A000000004101080D80500000001010A04000000000000 \
    --new-encrypted-pin-block 67FB27C75580EFE7 \
    --new-pin-pek-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --pin-block-format ISO_FORMAT_0 \
    --secure-messaging-confidentiality-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --secure-messaging-integrity-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
    --derivation-method-attributes 'EmvCommon={ApplicationCryptogram=1234567890123457,MajorKeyDerivationMode=EMV_OPTION_A,Mode=CBC,PanSequenceNumber=00,PinBlockLengthPosition=NONE,PinBlockPaddingType=NO_PADDING,PrimaryAccountNumber=171234567890123}'
```

```
{
    "SecureMessagingIntegrityKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
    "SecureMessagingIntegrityKeyCheckValue": "08D7B4",
    "SecureMessagingConfidentialityKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "SecureMessagingConfidentialityKeyCheckValue": "C1EB8F",
    "Mac": "5652EEDF83EA0D84",
    "EncryptedPinBlock": "F1A2B3C4D5E6F7A8"
}
```

# Fungsi spesifik jaringan
<a name="use-cases-issuers.networkfunctions"></a>

**Topics**
+ [Fungsi khusus visa](use-cases-issuers.networkfunctions.visa.md)
+ [Fungsi khusus Mastercard](use-cases-issuers.networkfunctions.mastercard.md)
+ [Fungsi spesifik American Express](use-cases-issuers.networkfunctions.amex.md)
+ [Fungsi khusus JCB](use-cases-issuers.networkfunctions.jcb.md)

# Fungsi khusus visa
<a name="use-cases-issuers.networkfunctions.visa"></a>

**Topics**
+ [ARQC -/ CVN18CVN22](#use-cases-issuers.networkfunctions.visa.cvn18)
+ [ARQC - CVN10](#use-cases-issuers.networkfunctions.visa.cvn10)
+ [3DS CAVV V7](#use-cases-issuers.networkfunctions.visa.cavv-v7)
+ [dCVV (Nilai Verifikasi Kartu Dinamis) - CVN17](#use-cases-issuers.networkfunctions.visa.dcvv)

## ARQC -/ CVN18CVN22
<a name="use-cases-issuers.networkfunctions.visa.cvn18"></a>

CVN18 dan CVN22 memanfaatkan [metode CSK derivasi](use-cases-issuers.generalfunctions.arqc.md) kunci. Data transaksi yang tepat bervariasi antara kedua metode ini - silakan lihat dokumentasi skema untuk detail tentang pembuatan bidang data transaksi.

## ARQC - CVN10
<a name="use-cases-issuers.networkfunctions.visa.cvn10"></a>

CVN10 adalah metode Visa lama untuk transaksi EMV yang menggunakan derivasi kunci per kartu daripada derivasi sesi (per transaksi) dan juga menggunakan muatan yang berbeda. Untuk informasi tentang isi muatan, silakan hubungi skema untuk detailnya.

### Buat kunci
<a name="use-cases-issuers.networkfunctions.visa.cvn10.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                    "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"
            }
        }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Anda membutuhkannya di langkah berikutnya.

### Validasi ARQC
<a name="use-cases-issuers.networkfunctions.visa.cvn10.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi ARQC yang dihasilkan menggunakan Visa. CVN10   
Jika Kriptografi AWS Pembayaran dapat memvalidasi ARQC, http/200 dikembalikan. Jika arqc tidak divalidasi, itu akan mengembalikan respons http/400.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
  --major-key-derivation-mode EMV_OPTION_A \ 
  --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
  --session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
  ,"PrimaryAccountNumber":"9137631040001422"}}'
```

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

## 3DS CAVV V7
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7"></a>

Untuk transaksi Visa Secure (3DS), CAVV (Nilai Verifikasi Otentikasi Pemegang Kartu) dihasilkan oleh penerbit Access Control Server (ACS). CAVV adalah bukti bahwa otentikasi pemegang kartu terjadi, unik untuk setiap transaksi otentikasi dan disediakan oleh pihak pengakuisisi dalam pesan otorisasi. CAVV v7 mengikat data tambahan tentang transaksi dengan persetujuan termasuk elemen seperti nama pedagang, jumlah pembelian, dan tanggal pembelian. Dengan cara ini, ini secara efektif merupakan hash kriptografi dari muatan transaksi.

Secara kriptografis, CAVV V7 menggunakan algoritma CVV tetapi masukannya semuanya adalah changed/repurposed. Please consult appropriate third party/Visa dokumentasi tentang cara menghasilkan input untuk menghasilkan muatan CAVV V7.

### Buat kuncinya
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CAVV-V7"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                "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": "F3FB13",
                "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"
            }
        }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-east- 2:111122223333:key/dnaeyrjgdjjtw6dk*. Anda membutuhkannya di langkah berikutnya.

### Hasilkan CAVV V7
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan CAVV V7 untuk transaksi tertentu dengan input sebagaimana ditentukan dalam spesifikasi. Perhatikan bahwa untuk algoritme ini, bidang dapat digunakan kembali/digunakan kembali, jadi tidak boleh diasumsikan bahwa label bidang cocok dengan input.   
Untuk semua parameter yang tersedia, lihat [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431}'
```

```
              {
                  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                  "KeyCheckValue": "F3FB13",
                  "ValidationData": "491"
              }
```

### Validasi CAVV V7
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.verify"></a>

**Example**  
Untuk validasi, inputnya adalah CVK, nilai input yang dihitung dan CAVV yang disediakan selama transaksi untuk divalidasi.   
Untuk semua parameter yang tersedia, lihat, [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) di panduan referensi API.   
CAVV bukan nilai yang dimasukkan pengguna (seperti CVV2) tetapi dihitung oleh penerbit ACS. Pertimbangan harus diberikan apakah harus selalu memvalidasi saat disediakan.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431} --validation-data 491
```

```
{
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                "KeyCheckValue": "F3FB13",
                "ValidationData": "491"
}
```

## dCVV (Nilai Verifikasi Kartu Dinamis) - CVN17
<a name="use-cases-issuers.networkfunctions.visa.dcvv"></a>

DCVV (Dynamic Card Verification Value) adalah kriptogram dinamis khusus Visa yang digunakan untuk transaksi EMV nirkontak. Ini dikenal sebagai EMV awal dan memberikan keamanan yang ditingkatkan dengan menghasilkan nilai verifikasi unik untuk setiap transaksi. DCVV menggunakan input termasuk Primary Account Number (PAN), PAN Sequence Number (PSN), Application Transaction Counter (ATC), nomor tak terduga, dan data track. Ini masih digunakan di beberapa tempat, tetapi sebagian besar telah digantikan oleh algoritma lain seperti CVN18.

Untuk semua parameter yang tersedia, lihat [DynamicCardVerificationValue](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DynamicCardVerificationValue.html)di panduan referensi API.

### Buat kunci
<a name="use-cases-issuers.networkfunctions.visa.dcvv.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS",
                    "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": "A8E4D2",
                "KeyCheckValueAlgorithm": "ANSI_X9_24",
                "Enabled": true,
                "Exportable": true,
                "KeyState": "CREATE_COMPLETE",
                "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                "CreateTimestamp": "2025-02-02T11:45:30.648000-08:00",
                "UsageStartTimestamp": "2025-02-02T11:45:30.626000-08:00"
            }
        }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/mw7dn3qxvkfh8ztc*. Anda membutuhkannya di langkah berikutnya.

### Menghasilkan DCVV
<a name="use-cases-issuers.networkfunctions.visa.dcvv.generate"></a>

**Example**  
Dalam contoh ini, kita akan menghasilkan dCVV untuk transaksi EMV contactless. Input termasuk PAN, Nomor Urutan PAN, Penghitung Transaksi Aplikasi, nomor tak terduga, dan data trek.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \
    --primary-account-number=5111112627662122 \
    --generation-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}' \
    --validation-data-length 5
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc",
    "KeyCheckValue": "A8E4D2",
    "ValidationData": "36667"
}
```

### Validasi dCVV
<a name="use-cases-issuers.networkfunctions.visa.dcvv.verify"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi dCVV yang disediakan selama transaksi. Masukan yang sama yang digunakan untuk pembuatan harus disediakan untuk validasi.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \
    --primary-account-number=5111112627662122 \
    --validation-data=36667 \
    --verification-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}'
```

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

# Fungsi khusus Mastercard
<a name="use-cases-issuers.networkfunctions.mastercard"></a>

**Topics**
+ [DCVC3](#use-cases-issuers.networkfunctions.mastercard.dcvc)
+ [ARQC -/ CVN14CVN15](#use-cases-issuers.networkfunctions.mastercard.cvn14)
+ [ARQC -/ CVN12CVN13](#use-cases-issuers.networkfunctions.mastercard.cvn12)
+ [3DS AAV SPA2](#use-cases-issuers.networkfunctions.mastercard.spa2aav)

## DCVC3
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc"></a>

DCVC3 mendahului CVN12 skema EMV CSK dan Mastercard dan merupakan pendekatan lain untuk memanfaatkan kunci dinamis. Kadang-kadang digunakan kembali untuk kasus penggunaan lain juga. Dalam skema ini, inputnya adalah data PAN, PSN, Track1/Track2, nomor tak terduga dan penghitung transaksi (ATC).

### Buat kunci
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc3.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/hrh6qgbi3sk4y3wq",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS",
                    "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"
            }
        }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/hrh6qgbi3sk4y3wq. Anda membutuhkannya di langkah berikutnya.

### Menghasilkan DCVC3
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc3.generate"></a>

**Example**  
Meskipun DCVC3 biasanya dihasilkan oleh kartu chip, itu juga dapat dibuat secara manual seperti dalam contoh ini   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --primary-account-number=5413123456784808 --generation-attributes DynamicCardVerificationCode='{ApplicationTransactionCounter=0000,TrackData=5241060000000069D13052020000000000003F,PanSequenceNumber=00,UnpredictableNumber=00000000}''
```

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

### Validasi DCVC3
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc3.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi. DCVC3 Perhatikan bahwa ATC harus disediakan sebagai nomor hex misalnya penghitung 11 harus direpresentasikan sebagai 000B. Layanan mengharapkan 3 digit DCVC3, jadi jika Anda telah menyimpan nilai 4 (atau 5) digit, cukup potong karakter kiri hingga Anda memiliki 3 digit (misalnya 15321 akan menghasilkan nilai validasi-data 321).   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --primary-account-number=5413123456784808 --verification-attributes DynamicCardVerificationCode='{ApplicationTransactionCounter=000B,TrackData=5241060000000069D13052020000000000003F,PanSequenceNumber=00,UnpredictableNumber=00000001}' --validation-data 398
```

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

## ARQC -/ CVN14CVN15
<a name="use-cases-issuers.networkfunctions.mastercard.cvn14"></a>

CVN14 dan CVN15 memanfaatkan [metode EMV CSK derivasi](use-cases-issuers.generalfunctions.arqc.md) kunci. Data transaksi yang tepat bervariasi antara kedua metode ini - silakan lihat dokumentasi skema untuk detail tentang pembuatan bidang data transaksi.

## ARQC -/ CVN12CVN13
<a name="use-cases-issuers.networkfunctions.mastercard.cvn12"></a>

CVN12 dan CVN13 merupakan metode khusus Mastercard yang lebih tua untuk transaksi EMV yang menggabungkan angka tak terduga ke dalam derivasi per transaksi dan juga menggunakan muatan yang berbeda. Untuk informasi tentang isi muatan, silakan hubungi skema.

### Buat kunci
<a name="use-cases-issuers.networkfunctions.mastercard.cvn12.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                    "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"
            }
        }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Anda membutuhkannya di langkah berikutnya.

### Validasi ARQC
<a name="use-cases-issuers.networkfunctions.mastercard.cvn12.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi ARQC yang dihasilkan menggunakan Mastercard. CVN12   
Jika Kriptografi AWS Pembayaran dapat memvalidasi ARQC, http/200 dikembalikan. Jika arqc tidak divalidasi, itu akan mengembalikan respons http/400.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram 31BE5D49F14A5F01 \
  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
  --major-key-derivation-mode EMV_OPTION_A \ 
  --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000000000000000000000000000000000000000000000000000008000000000000000 \
  --session-key-derivation-attributes='{"MastercardSessionKey":{"ApplicationTransactionCounter":"000B","PanSequenceNumber":"01","PrimaryAccountNumber":"5413123456784808","UnpredictableNumber":"00000001"}}'
```

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

## 3DS AAV SPA2
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav"></a>

SPA2 AAV (Account Authentication Value) digunakan untuk transaksi Mastercard 3DS (juga dikenal sebagai Mastercard Idenity Check). Ini menyediakan otentikasi kriptografi untuk transaksi e-commerce menggunakan generasi MAC berbasis HMAC. AAV dihasilkan menggunakan data spesifik transaksi dan kunci rahasia bersama.

### Buat kunci
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=HMAC_SHA256,KeyUsage=TR31_M7_HMAC_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"SPA2_AAV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn",
                "KeyAttributes": {
                    "KeyUsage": "TR31_M7_HMAC_KEY",
                    "KeyClass": "SYMMETRIC_KEY",
                    "KeyAlgorithm": "HMAC_SHA256",
                    "KeyModesOfUse": {
                        "Encrypt": false,
                        "Decrypt": false,
                        "Wrap": false,
                        "Unwrap": false,
                        "Generate": true,
                        "Sign": false,
                        "Verify": true,
                        "DeriveKey": false,
                        "NoRestrictions": false
                    }
                },
                "KeyCheckValue": "C661F9",
                "KeyCheckValueAlgorithm": "HMAC",
                "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"
            }
        }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-west- 2:111122223333:key/q5vjtshsg67cz5gn*. Anda membutuhkannya di langkah berikutnya.

### Hasilkan SPA2 AAV
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav.generate"></a>

**Example**  
Dalam contoh ini, kami akan menghasilkan komponen Nilai Otentikasi Penerbit (IAV) dari SPA2 AAV menggunakan generasi MAC HMAC. Data pesan berisi informasi spesifik transaksi yang akan diautentikasi. Format data pesan harus mengikuti SPA2 spesifikasi Mastercard dan tidak tercakup dalam contoh ini.  
Harap tinjau spesifikasi Mastercard Anda untuk pemformatan untuk memasukkan IAV ke dalam nilai AAV.

```
$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn --message-data "2226400099919520FFFFd8b448be65694fe7b42f836bad396e9d" --generation-attributes Algorithm=HMAC --region us-west-2
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn",
    "KeyCheckValue": "C661F9",
    "Mac": "6FB2405E9D8A4C1F7B173F73ADD1A6DC358531CAB0E9994FC5B62012ADDE91FC"
}
```

### Verifikasi SPA2 AAV
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav.verify"></a>

**Example**  
Dalam contoh ini, kami akan memverifikasi SPA2 AAV. Data pesan dan nilai MAC yang sama disediakan untuk verifikasi.  
Jika Kriptografi AWS Pembayaran dapat memvalidasi MAC, http/200 dikembalikan. Jika MAC tidak divalidasi, itu akan mengembalikan respons http/400.  

```
$ aws payment-cryptography-data verify-mac --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn --message-data "2226400099919520FFFFd8b448be65694fe7b42f836bad396e9d" --mac "6FB2405E9D8A4C1F7B173F73ADD1A6DC358531CAB0E9994FC5B62012ADDE91FC" --verification-attributes Algorithm=HMAC --region us-west-2
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn",
    "KeyCheckValue": "C661F9"
}
```

# Fungsi spesifik American Express
<a name="use-cases-issuers.networkfunctions.amex"></a>

**Topics**
+ [CSC1](#use-cases-issuers.networkfunctions.amex.csc)
+ [CSC2](#use-cases-issuers.networkfunctions.amex.csc2)
+ [ICSc](#use-cases-issuers.networkfunctions.amex.csc3)
+ [3DS AEVV](#use-cases-issuers.networkfunctions.amex.3dsaevv)

## CSC1
<a name="use-cases-issuers.networkfunctions.amex.csc"></a>

CSC Versi 1 juga dikenal sebagai Algoritma CSC Klasik. Layanan ini dapat menyediakannya sebagai angka 3,4 atau 5 digit.

Untuk semua parameter yang tersedia, lihat [AmexCardSecurityCodeVersion1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion1.html) di panduan referensi API. 

### Buat kunci
<a name="use-cases-issuers.networkfunctions.amex.csc.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
                "Key": {
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq",
                    "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": "8B5077",
                    "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"
                }
            }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/esh6hn7pxdtttzgq. Anda membutuhkannya di langkah berikutnya.

### Menghasilkan CSC1
<a name="use-cases-issuers.networkfunctions.amex.csc1.generate"></a>

**Example**  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}' --validation-data-length 4
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq",
    "KeyCheckValue": "8B5077",
    "ValidationData": "3938"
  }
```

### Validasi CSC1
<a name="use-cases-issuers.networkfunctions.amex.csc1.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi a CSC1.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}''  --validation-data 3938
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq",
    "KeyCheckValue": "8B5077"
  }
```

## CSC2
<a name="use-cases-issuers.networkfunctions.amex.csc2"></a>

CSC Version 2 juga dikenal sebagai Enhanced CSC Algorithm. Layanan ini dapat menyediakannya sebagai angka 3,4 atau 5 digit. Kode layanan untuk CSC2 biasanya 000.

Untuk semua parameter yang tersedia, lihat [AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html) di panduan referensi API. 

### Buat kunci
<a name="use-cases-issuers.networkfunctions.amex.csc2.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC2"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda",
                "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": "BF1077",
                "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"
            }
        }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-east- 2:111122223333:key/erlm445qvunmvoda*. Anda membutuhkannya di langkah berikutnya.

### Menghasilkan CSC2
<a name="use-cases-issuers.networkfunctions.amex.csc2.generate"></a>

Dalam contoh ini, kita akan menghasilkan a CSC2 dengan panjang 4. CSC dapat dihasilkan dengan panjang 3,4 atau 5. Untuk American Express, PANs harus 15 digit dan mulai dengan 34 atau 37. Tanggal kedaluwarsa biasanya diformat sebagai YYMM. Kode layanan dapat bervariasi - tinjau manual Anda tetapi nilai tipikal adalah 000, 201 atau 702

**Example**  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=2412,ServiceCode=000}' --validation-data-length 4
```

```
{
"KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda",
"KeyCheckValue": "BF1077",
"ValidationData": "3982"
}
```

### Validasi CSC2
<a name="use-cases-issuers.networkfunctions.amex.csc2.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi a CSC2.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=2412,ServiceCode=000}' --validation-data 3982
```

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

## ICSc
<a name="use-cases-issuers.networkfunctions.amex.csc3"></a>

ICSC juga dikenal sebagai Algoritma CSC statis dan dihitung menggunakan CSC Versi 2. Layanan ini dapat menyediakannya sebagai angka 3,4 atau 5 digit.

Gunakan kode layanan 999 untuk menghitung ICSC untuk kartu kontak. Gunakan kode layanan 702 untuk menghitung ICSC untuk kartu nirkontak. 

Untuk semua parameter yang tersedia, lihat [AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html) di panduan referensi API. 

### Buat kunci
<a name="use-cases-issuers.networkfunctions.amex.csc3.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
        "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY"
            "KeyAlgorithm": "TDES_2KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": false,
                "Encrypt": false,
                "Generate": true,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": true,
                "Wrap": false
            },
        },
        "KeyCheckValue": "7121C7",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": true,
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "CreateTimestamp": "2025-01-29T09:19:21.209000-05:00",
        "UsageStartTimestamp": "2025-01-29T09:19:21.192000-05:00"
        }
     }
```

Perhatikan `KeyArn` yang mewakili kunci, misalnya *arn:aws:payment-cryptography:us-east- 1:111122223333:key/7vrybrbvjcvwtunv*. Anda membutuhkannya di langkah berikutnya.

### Menghasilkan ICSc
<a name="use-cases-issuers.networkfunctions.amex.icsc.generate"></a>

Dalam contoh ini, kami akan menghasilkan ICSC dengan panjang 4, untuk kartu nirkontak menggunakan kode layanan 702. CSC dapat dihasilkan dengan panjang 3,4 atau 5. Untuk American Express, PANs harus 15 digit dan mulai dengan 34 atau 37.

**Example**  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data-length 4
```

```
{
    "KeyArn": arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv,
    "KeyCheckValue": 7121C7,
    "ValidationData": "2365"
}
```

### Validasi ICSC
<a name="use-cases-issuers.networkfunctions.amex.icsc.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi ICSc.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data  --key-identifier arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data 2365
```

```
{
    "KeyArn": arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv,
    "KeyCheckValue": 7121C7
}
```

## 3DS AEVV
<a name="use-cases-issuers.networkfunctions.amex.3dsaevv"></a>

3DS AEVV (Nilai Verifikasi Akun Aman 3-D) digunakan untuk otentikasi American Express 3-D Secure. Ini menggunakan algoritma yang sama CSC2 tetapi dengan parameter input yang berbeda. Bidang tanggal kedaluwarsa harus diisi dengan nomor tak terduga (acak), dan kode layanan terdiri dari Kode Hasil Otentikasi AEVV (1 digit) ditambah Kode Otentikasi Faktor Kedua (2 digit). Panjang output harus 3 digit.

Untuk semua parameter yang tersedia, lihat [AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html) di panduan referensi API. 

### Buat kunci
<a name="use-cases-issuers.networkfunctions.amex.3dsaevv.setup"></a>

```
$ 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}' --tags='[{"Key":"KEY_PURPOSE","Value":"3DS_AEVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
        "Key": {
        "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm",
        "KeyAttributes": {
            "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY"
            "KeyAlgorithm": "TDES_2KEY",
            "KeyClass": "SYMMETRIC_KEY",
            "KeyModesOfUse": {
                "Decrypt": false,
                "DeriveKey": false,
                "Encrypt": false,
                "Generate": true,
                "NoRestrictions": false,
                "Sign": false,
                "Unwrap": false,
                "Verify": true,
                "Wrap": false
            },
        },
        "KeyCheckValue": "8F3A21",
        "KeyCheckValueAlgorithm": "ANSI_X9_24",
        "Enabled": true,
        "Exportable": true,
        "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
        "KeyState": "CREATE_COMPLETE",
        "CreateTimestamp": "2025-02-02T10:30:15.209000-05:00",
        "UsageStartTimestamp": "2025-02-02T10:30:15.192000-05:00"
        }
     }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/kw8djn5qxvfh3ztm*. Anda membutuhkannya di langkah berikutnya.

### Hasilkan AEVV 3DS
<a name="use-cases-issuers.networkfunctions.amex.3dsaevv.generate"></a>

Dalam contoh ini, kami akan menghasilkan 3DS AEVV dengan panjang 3. Bidang tanggal kedaluwarsa berisi nomor tak terduga (acak) (misalnya, 1234), dan kode layanan terdiri dari Kode Hasil Otentikasi AEVV (1 digit) ditambah Kode Otentikasi Faktor Kedua (2 digit), misalnya 543 di mana 5 adalah Kode Hasil Otentikasi dan 43 adalah Kode Otentikasi Faktor Kedua. Untuk American Express, PANs harus 15 digit dan mulai dengan 34 atau 37.

**Example**  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1234,ServiceCode=543}' --validation-data-length 3
```

```
{
    "KeyArn": arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm,
    "KeyCheckValue": 8F3A21,
    "ValidationData": "921"
}
```

### Validasi 3DS AEVV
<a name="use-cases-issuers.networkfunctions.amex.3dsaevv.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi 3DS AEVV.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi, http/200 dikembalikan. Jika nilai tidak divalidasi, itu akan mengembalikan respon http/400.  

```
$ aws payment-cryptography-data verify-card-validation-data  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1234,ServiceCode=543}' --validation-data 921
```

```
{
    "KeyArn": arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm,
    "KeyCheckValue": 8F3A21
}
```

# Fungsi khusus JCB
<a name="use-cases-issuers.networkfunctions.jcb"></a>

**Topics**
+ [ARQC - CVN04](#use-cases-issuers.networkfunctions.jcb.cvn04)
+ [ARQC - CVN01](#use-cases-issuers.networkfunctions.jcb.cvn01)

## ARQC - CVN04
<a name="use-cases-issuers.networkfunctions.jcb.cvn04"></a>

JCB CVN04 menggunakan [metode CSK derivasi](use-cases-issuers.generalfunctions.arqc.md) kunci. Silakan lihat dokumentasi skema untuk detail tentang pembuatan bidang data transaksi.

## ARQC - CVN01
<a name="use-cases-issuers.networkfunctions.jcb.cvn01"></a>

CVN01 adalah metode JCB yang lebih lama untuk transaksi EMV yang menggunakan derivasi kunci per kartu daripada derivasi sesi (per transaksi) dan juga menggunakan muatan yang berbeda. Pesan ini juga digunakan oleh Visa sehingga nama elemen memiliki nama itu meskipun itu juga digunakan untuk JCB. Untuk informasi tentang isi payload, silakan hubungi dokumentasi skema.

### Buat kunci
<a name="use-cases-issuers.networkfunctions.jcb.cvn01.setup"></a>

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

Respons menggemakan kembali parameter permintaan, termasuk ARN untuk panggilan berikutnya serta Nilai Pemeriksaan Kunci (KCV).

```
{
                        "Key": {
                            "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                            "KeyAttributes": {
                                "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                                "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"
                        }
                    }
```

Perhatikan yang mewakili kunci, misalnya `KeyArn` *arn:aws:payment-cryptography:us-east- 2:111122223333:key/pw3s6nl62t5ushfk*. Anda membutuhkannya di langkah berikutnya.

### Validasi ARQC
<a name="use-cases-issuers.networkfunctions.jcb.cvn01.validation"></a>

**Example**  
Dalam contoh ini, kami akan memvalidasi ARQC yang dihasilkan menggunakan JCB. CVN01 Ini menggunakan opsi yang sama dengan metode Visa, oleh karena itu nama parameternya.   
Jika Kriptografi AWS Pembayaran dapat memvalidasi ARQC, http/200 dikembalikan. Jika arqc tidak divalidasi, itu akan mengembalikan respons http/400.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
              --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
              --major-key-derivation-mode EMV_OPTION_A \ 
              --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
              --session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
              ,"PrimaryAccountNumber":"9137631040001422"}}'
```

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

# Fasilitator perolehan dan pembayaran
<a name="use-cases-acquirers"></a>

Acquirers, PSPs dan Payment Facilator biasanya memiliki seperangkat persyaratan kriptografi yang berbeda dari penerbit. Kasus penggunaan umum meliputi: 

**Dekripsi Data**  <a name="use-cases-acquirers.decryptdata"></a>
Data (terutama data pan) dapat dienkripsi oleh terminal pembayaran dan perlu didekripsi oleh backend. [Dekripsi Data](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) dan Enkripsi Data mendukung berbagai metode termasuk teknik derivasi TDES, AES dan DUKPT. Layanan Kriptografi AWS Pembayaran itu sendiri juga sesuai dengan PCI P2PE dan terdaftar sebagai komponen dekripsi PCI P2PE. 

**TranslatePin**  <a name="use-cases-acquirers.translatepin"></a>
Untuk menjaga kepatuhan PIN PCI, sistem perolehan tidak boleh memiliki pin pemegang kartu yang jelas setelah dimasukkan pada perangkat yang aman. Oleh karena itu, untuk meneruskan pin dari terminal ke sistem hilir (seperti jaringan pembayaran atau penerbit), ada kebutuhan untuk mengenkripsi ulang menggunakan kunci yang berbeda dari yang digunakan terminal pembayaran. [Translate Pin menyelesaikannya dengan mengonversi pin](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_TranslatePinData.html) terenkripsi dari satu kunci ke kunci lainnya secara aman dengan servicebbb. Dengan menggunakan perintah ini, pin dapat dikonversi antara berbagai skema seperti derivasi TDES, AES dan DUKPT dan format blok pin seperti ISO-0, ISO-3 dan ISO-4. 

**VerifyMac**  <a name="use-cases-acquirers.verifymac"></a>
Data dari terminal pembayaran mungkin MAC untuk memastikan bahwa data belum dimodifikasi dalam perjalanan. [Verifikasi Mac](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyMac.html) dan GenerateMac dukung berbagai teknik menggunakan kunci simetris termasuk teknik derivasi TDES, AES dan DUKPT untuk digunakan dengan algoritma ISO-9797-1 1, algoritma ISO-9797-1 3 (Retail MAC) dan teknik CMAC. 

**Topics**
+ [Menggunakan Tombol Dinamis](use-cases-acquirers-dynamickeys.md)

# Menggunakan Tombol Dinamis
<a name="use-cases-acquirers-dynamickeys"></a>

 Dynamic Keys memungkinkan kunci penggunaan satu kali atau terbatas untuk digunakan untuk operasi kriptografi seperti. `[EncryptData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)` Aliran ini dapat digunakan ketika materi kunci sering berputar (seperti pada setiap transaksi kartu) dan ada keinginan untuk menghindari mengimpor materi kunci ke dalam layanan. Kunci berumur pendek dapat digunakan sebagai bagian dari [SoftPOS/MPOC](terminology.md#terms.mpoc) atau solusi lainnya. 

**catatan**  
 Ini dapat digunakan sebagai pengganti aliran tipikal menggunakan Kriptografi AWS Pembayaran, di mana kunci kriptografi dibuat atau diimpor ke layanan dan kunci ditentukan menggunakan alias kunci atau kunci arn. 

Operasi berikut mendukung Dynamic Keys:
+ EncryptData
+ DecryptData
+ ReEncryptData
+ TranslatePin

## Mendekripsi Data
<a name="use-case-acquirers-dynamickeys.examples.decryptdata"></a>

 Contoh berikut menunjukkan menggunakan Dynamic Keys bersama dengan perintah dekripsi. Pengidentifikasi kunci dalam hal ini adalah kunci pembungkus (KEK) yang mengamankan kunci dekripsi (yang disediakan dalam parameter kunci yang dibungkus dalam format TR-31). Kunci yang dibungkus harus menjadi tujuan utama D0 untuk digunakan dengan perintah dekripsi bersama dengan mode penggunaan B atau D. 

**Example**  

```
$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza --cipher-text 1234123412341234123412341234123A --decryption-attributes 'Symmetric={Mode=CBC,InitializationVector=1234123412341234}'   --wrapped-key WrappedKeyMaterial={"Tr31KeyBlock"="D0112D0TN00E0000B05A6E82D7FC68B95C84306634B0000DA4701BE9BCA318B3A30A400B059FD4A8DE19924A9D3EE459F24FDE680F8E4A40"}
```

```
{
   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
   "KeyCheckValue": "0A3674",
   "PlainText": "2E138A746A0032023BEF5B85BA5060BA"
}
```

## Menerjemahkan pin
<a name="use-case-acquirers-dynamickeys.examples.translatepin"></a>

 Contoh berikut menunjukkan penggunaan Dynamic Keys bersama dengan perintah translate pin untuk menerjemahkan dari kunci dinamis ke kunci kerja pengakuisisi semi-statis (AWK). Pengidentifikasi kunci yang masuk dalam hal ini adalah kunci pembungkus (KEK) yang melindungi kunci enkripsi pin dinamis (PEK) yang disediakan dalam format TR-31. Kunci yang dibungkus harus menjadi tujuan utama `P0` bersama dengan mode penggunaan B atau D. Pengidentifikasi kunci keluar adalah kunci tipe `TR31_P0_PIN_ENCRYPTION_KEY` dan mode penggunaan enkripsi = True, Wrap=True 

**Example**  

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "C7005A4C0FA23E02" --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' --incoming-key-identifier alias/PARTNER1_KEK  --outgoing-key-identifier alias/ACQUIRER_AWK_PEK --outgoing-translation-attributes IsoFormat0="{PrimaryAccountNumber=171234567890123}"  --incoming-wrapped-key WrappedKeyMaterial={"Tr31KeyBlock"="D0112P0TB00S0000EB5D8E63076313162B04245C8CE351C956EA4A16CC32EB3FB61DE3FC75C751734B773F5B645943A854C65740738B8304"}
```

```
{
   "PinBlock": "2E66192BDA390C6F",
   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
   "KeyCheckValue": "0A3674"
}
```