

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 発行者と発行者プロセッサ
<a name="use-cases-issuers"></a>

 発行者のユースケースは通常、いくつかの部分で構成されます。このセクションでは、 関数 (ピンの操作など) 別に整理されています。本番システムでは、キーは通常、特定のカードビンに限定され、次に示すようにインラインではなく、ビンのセットアップ中に作成されます。

**Topics**
+ [一般関数](use-cases-issuers.generalfunctions.md)
+ [ネットワーク固有の関数](use-cases-issuers.networkfunctions.md)

# 一般関数
<a name="use-cases-issuers.generalfunctions"></a>

**Topics**
+ [ランダムピンと関連付けられた PVV を生成し、値を検証する](use-cases-issuers.generalfunctions.pvv.md)
+ [特定のカードの CVV を生成または検証する](use-cases-issuers.generalfunctions.cvv.md)
+ [特定のカードの CVV2 を生成または検証する](use-cases-issuers.generalfunctions.cvv2.md)
+ [特定のカードの iCVV を生成または検証する](use-cases-issuers.generalfunctions.icvv.md)
+ [EMV ARQC を検証し、ARPC を生成する](use-cases-issuers.generalfunctions.arqc.md)
+ [EMV MAC の生成と検証](use-cases-issuers.generalfunctions.emvmac.md)
+ [PIN 変更用の EMV MAC の生成](use-cases-issuers.generalfunctions.emvpinchange.md)

# ランダムピンと関連付けられた PVV を生成し、値を検証する
<a name="use-cases-issuers.generalfunctions.pvv"></a>

**Topics**
+ [キーを作成する (複数可)](#use-cases-issuers.generalfunctions.pvv.setup)
+ [ランダムピンを生成し、PVV を生成して、暗号化された PIN と PVV を返す](#use-cases-issuers.generalfunctions.pvv.generate)
+ [PVV メソッドを使用して暗号化された PIN を検証する](#use-cases-issuers.generalfunctions.pvv.verify)

## キーを作成する (複数可)
<a name="use-cases-issuers.generalfunctions.pvv.setup"></a>

ランダムピンと [PVV](terminology.md#terms.pvv) を生成するには、PVV を生成するための[ピン検証キー (PVK)](terminology.md#terms.pvk) と、ピンを暗号化するための[ピン暗号化キー](terminology.md#terms.pek)の 2 つのキーが必要です。ピン自体はサービス内でランダムに安全に生成され、どちらのキーにも暗号的に関連しません。

PGK は、PVV アルゴリズム自体に基づくアルゴリズム TDES\$12KEY のキーである必要があります。PEK は TDES\$12KEY、TDES\$13KEY、または AES\$1128 です。この場合、PEK はシステム内での使用を目的としているため、AES\$1128 が適しています。PEK を他のシステム (カードネットワーク、アクワイアラー、ATMs など) と交換する場合、または移行の一環として移動する場合、TDES\$12KEY は互換性の理由からより適切な選択肢である可能性があります。

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

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
               }
           }
```

キー`KeyArn`を表す に注意してください。たとえば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsupltitudeyt* です。これは次のステップで行います。

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

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
                  }
              }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

## ランダムピンを生成し、PVV を生成して、暗号化された PIN と PVV を返す
<a name="use-cases-issuers.generalfunctions.pvv.generate"></a>

**Example**  
この例では、出力が暗号化された (PinData.PinBlock) と `PIN block` (pinData.VerificationValue) である新しい `PVV` (ランダム) 4 桁のピンを生成します。PinData.PinBlock) pinData.VerificationValue). キー入力は`PAN`、、 `Pin Verification Key`(ピン生成キーとも呼ばれます）、、`Pin Encryption Key`および [PIN ブロック](terminology.md#terms.pinblock)形式です。  
 このコマンドでは、キーのタイプが である必要があります`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"
            }
        }
```

## PVV メソッドを使用して暗号化された PIN を検証する
<a name="use-cases-issuers.generalfunctions.pvv.verify"></a>

**Example**  
この例では、特定の PAN の PIN を検証します。PIN は通常、検証のためにトランザクション時にカード所有者またはユーザーによって提供され、ファイル上の値と比較されます (カード所有者からの入力は、ターミナルまたは他のアップストリームプロバイダーからの暗号化された値として提供されます）。この入力を検証するために、実行時に次の値も提供されます。暗号化されたピン、入力ピンの暗号化に使用されるキー ([IWK](terminology.md#terms.iwk) と呼ばれることが多い)`PAN`、および検証する値 ( `PVV`または )`PIN offset`。  
 AWS Payment Cryptography がピンを検証できる場合、http/200 が返されます。PIN が検証されない場合、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",
}
```

# 特定のカードの CVV を生成または検証する
<a name="use-cases-issuers.generalfunctions.cvv"></a>

[CVV](terminology.md#terms.cvv) または CVV1 は、従来カードの磁気ストライプに埋め込まれていた値です。これは CVV2 とは異なります (カード所有者が表示でき、オンライン購入に使用できます）。

最初のステップは、キー を作成することです。このチュートリアルでは、[CVK](terminology.md#terms.cvk) の 2 倍長 3DES (2KEY TDES) キーを作成します。

**注記**  
CVV、CVV2、および iCVV はすべて、同一のアルゴリズムではなくても同様のアルゴリズムを使用しますが、入力データは異なります。すべて同じキータイプ TR31\$1C0\$1CARD\$1VERIFICATION\$1KEY を使用しますが、目的ごとに個別のキーを使用することをお勧めします。これらは、以下の例のようにエイリアスやタグを使用して区別できます。

## キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

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

**Example**  
この例では、入力が 、サービスコード (ISO/IEC 7813 で定義) が 121`PAN`、カードの有効期限がある特定の PAN の [CVV](terminology.md#terms.cvv) を生成します。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  

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

## CVV を検証する
<a name="use-cases-issuers.generalfunctions.cvv.verify"></a>

**Example**  
この例では、CVK、、121 [のサービスコード、カードの有効期限、検証するトランザクション中に提供された CVV](terminology.md#terms.cvv) の入力を使用して、特定の PAN の CVV を検証します。 `PAN`  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  
CVV はユーザーが入力した値 (CVV2 など) ではありませんが、通常はマグストライプに埋め込まれます。提供されたときに常に検証する必要があるかどうかを考慮する必要があります。

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

# 特定のカードの CVV2 を生成または検証する
<a name="use-cases-issuers.generalfunctions.cvv2"></a>

[CVV2](terminology.md#terms.cvv2) は、従来カードの裏側で提供され、オンライン購入に使用される値です。仮想カードの場合、アプリや画面に表示されることもあります。暗号的には、CVV1 と同じですが、サービスコード値が異なります。

## キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
               }
           }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

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

**Example**  
この例では、 の入力`PAN`とカードの有効期限を使用して、特定の PAN の [CVV2](terminology.md#terms.cvv2) を生成します。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) を参照してください。  

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

## CVV2 を検証する
<a name="use-cases-issuers.generalfunctions.cvv2.verify"></a>

**Example**  
この例では、CVK の入力を含む特定の PAN の [CVV2](terminology.md#terms.cvv2) `PAN`と、検証するトランザクション中に提供されたカードの有効期限と CVV を検証します。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) を参照してください。  
CVV2 およびその他の入力は、ユーザーが入力した値です。そのため、これが定期的に検証に失敗する問題の兆候であるとは限りません。

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

# 特定のカードの iCVV を生成または検証する
<a name="use-cases-issuers.generalfunctions.icvv"></a>

[iCVV](terminology.md#terms.icvv) は CVV/CVV2 と同じアルゴリズムを使用しますが、iCVV はチップカード内に埋め込まれます。サービスコードは 999 です。

## キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
               }
           }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3* です。これは次のステップで行います。

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

**Example**  
この例では、入力が 、サービスコード (ISO/IEC 7813 で定義) が 999`PAN`、カードの有効期限がある特定の PAN の [iCVV](terminology.md#terms.icvv) を生成します。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  

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

## iCVV を検証する
<a name="use-cases-issuers.generalfunctions.icvv.verify"></a>

**Example**  
検証の場合、入力は CVK、`PAN`、999 のサービスコード、カードの有効期限、検証するトランザクション中に提供された iCVV です。  
使用可能なすべてのパラメータについては、「 API リファレンスガイド」の[CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html)」を参照してください。  
iCVV はユーザーが入力した値 (CVV2 など) ではありませんが、通常は EMV/チップカードに埋め込まれます。提供されたときに常に検証する必要があるかどうかを考慮する必要があります。

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

# EMV ARQC を検証し、ARPC を生成する
<a name="use-cases-issuers.generalfunctions.arqc"></a>

[ARQC](terminology.md#terms.arqc) (認可リクエスト暗号) は、EMV (チップ) カードによって生成され、トランザクションの詳細と認可されたカードの使用を検証するために使用される暗号文です。カード、ターミナル、トランザクション自体からのデータが組み込まれています。

バックエンドの検証時に、同じ入力が AWS Payment Cryptography に提供され、暗号文が内部で再作成され、トランザクションで指定された値と比較されます。この意味では、MAC に似ています。[EMV 4.4 Book 2 ](https://www.emvco.com/specifications/?post_id=80377)は、この関数の 3 つの側面を定義します。1 回限りのトランザクションキーを生成するキー取得メソッド (共通セッションキー - CSK)、最小ペイロード、およびレスポンス (ARPC) を生成するメソッドです。

 個々のカードスキームでは、組み込む追加のトランザクションフィールドを指定するか、それらのフィールドが表示される順序を指定できます。その他の (一般的に廃止された) スキーム固有の派生スキームも存在し、このドキュメントの他の箇所で説明されています。

詳細については、 API ガイドの[VerifyCardValidationData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)」を参照してください。

## キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
                }
            }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

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

ARQC は EMV カードによってのみ生成されます。そのため、 AWS Payment Cryptography にはそのようなペイロードを生成する機能はありません。テスト目的では、適切なペイロードと、さまざまなスキームによって一般的に提供される既知の値を生成できる多数のライブラリがオンラインで利用できます。

## ARQC を検証する
<a name="use-cases-issuers.generalfunctions.arqc.verify"></a>

**Example**  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。ARPC (レスポンス) はオプションで提供でき、ARQC の検証後にレスポンスに含めることができます。  

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

# EMV MAC の生成と検証
<a name="use-cases-issuers.generalfunctions.emvmac"></a>

EMV MAC は、EMV 派生キーの入力を使用して MAC になり、結果のデータに対して ISO9797-3 (小売) MAC を実行します。EMV MAC は通常、ブロック解除スクリプトなどの EMV カードにコマンドを送信するために使用されます。

**注記**  
 AWS Payment Cryptography はスクリプトの内容を検証しません。含める特定のコマンドの詳細については、スキームまたはカードマニュアルを参照してください。

詳細については、 API ガイドの[MacAlgorithmEmv](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_MacAlgorithmEmv.html)」を参照してください。

**Topics**
+ [キーを作成する](#use-cases-issuers.generalfunctions.emvmac.setup)
+ [EMV MAC の生成](#use-cases-issuers.generalfunctions.emvmac.generate)

## キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
        }
    }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* です。これは次のステップで行います。

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

一般的なフローは、バックエンドプロセスが EMV スクリプトを生成し (カードのブロック解除など）、このコマンドを使用して署名し (1 つの特定のカードに固有の 1 回限りのキーを取得）、MAC を返すことです。次に、コマンド \$1 MAC がカードに送信されて適用されます。コマンドをカードに送信することは AWS Payment Cryptography の範囲外です。

**注記**  
 このコマンドは、暗号化されたデータ (PIN など) が送信されない場合のコマンドを対象としています。EMV Encrypt をこのコマンドと組み合わせて、このコマンドを呼び出す前に暗号化されたデータを発行者スクリプトに追加できます。

メッセージデータ  
メッセージデータには、APDU ヘッダーとコマンドが含まれます。これは実装によって異なる場合がありますが、この例はブロック解除 (84 24 00 00 08) の APDU ヘッダーで、その後に ATC (0007) が続き、次に前のトランザクションの ARQC (999E57FD0F47CACE) が続きます。サービスはこのフィールドの内容を検証しません。

セッションキー取得モード  
このフィールドは、セッションキーの生成方法を定義します。EMV\$1COMMON\$1SESSION\$1KEY は新しい実装に一般的に使用されますが、EMV2000 \$1 AMEX \$1 MASTERCARD\$1SESSION\$1KEY \$1 VISA も使用できます。

MajorKeyDerivationMode  
EMV はモード A、B、または C を定義します。モード A が最も一般的であり、 AWS Payment Cryptography は現在モード A またはモード B をサポートしています。

PAN  
アカウント番号。通常はチップフィールド 5A または ISO8583 フィールド 2 で使用できますが、カードシステムから取得することもできます。

PSN  
カードシーケンス番号。使用しない場合は、00 と入力します。

SessionKeyDerivationValue  
これはセッションごとの取得データです。取得スキームに応じて、フィールド 9F26 の最後の ARQC (ApplicationCryptogram) または 9F36 の最後の ATC のいずれかになります。

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

# PIN 変更用の EMV MAC の生成
<a name="use-cases-issuers.generalfunctions.emvpinchange"></a>

EMV PIN の変更には、発行者スクリプトの MAC の生成と、EMV チップカードでのオフライン PIN 変更の新しい PIN の暗号化という 2 つのオペレーションが組み合わされます。このコマンドは、ピンがチップカードに保存されている特定の国でのみ必要です (これは欧州の国で一般的です）。これは一般的に、カード所有者が PIN を変更する必要があり、新しい PIN を MAC と一緒にカードに安全に送信してコマンドの信頼性を確認する必要がある場合に使用されます。

**注記**  
 カードにコマンドを送信するだけで PIN を変更しない場合は、[ARPC CSU ](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyAuthRequestCryptogram.html)を使用するか、代わりに [EMV MAC コマンドを生成](use-cases-issuers.generalfunctions.emvmac.md)することを検討してください。

詳細については、 API ガイドの[GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange.html)」を参照してください。

## PIN 変更のために EMV MAC と暗号化された PIN を生成する
<a name="use-cases-issuers.generalfunctions.emvpinchange.generate"></a>

このオペレーションには、MAC 生成用の EMV 整合性キー (KeyUsage: TR31\$1E2\$1EMV\$1MKEY\$1INTEGRITY) と PIN 暗号化用の EMV 機密性キー (KeyUsage: TR31\$1E4\$1EMV\$1MKEY\$1CONFIDENTIALITY) の 2 つのキーが必要です。一般的なフローは、バックエンドプロセスが発行者スクリプトの MAC と暗号化された新しい PIN の両方を含む EMV PIN 変更スクリプトを生成することです。その後、コマンドと暗号化された PIN がカードに送信され、オフライン PIN が更新されます。コマンドをカードに送信することは AWS Payment Cryptography の範囲外です。

メッセージデータ  
メッセージデータには、発行者スクリプトの APDU コマンドが含まれます。サービスはこのフィールドの内容を検証しません。

新しい暗号化された PIN ブロック  
カードに送信される新しい暗号化された PIN ブロック。これは、PIN 暗号化キーを使用して暗号化された値として提供する必要があります。

新しい PIN PEK 識別子  
この API に渡される前に新しい PIN を暗号化するために使用されるキー。

Secure Messaging Integrity キー  
MAC 生成に使用される EMV 整合性キー (KeyUsage: TR31\$1E2\$1EMV\$1MKEY\$1INTEGRITY)。

Secure Messaging の機密性キー  
PIN 暗号化に使用される EMV 機密性キー (KeyUsage: TR31\$1E4\$1EMV\$1MKEY\$1CONFIDENTIALITY)。

MajorKeyDerivationMode  
EMV はモード A、B、または C を定義します。モード A が最も一般的であり、 AWS Payment Cryptography は現在モード A またはモード B をサポートしています。

モード  
暗号化モード、通常は PIN 変更オペレーション用の CBC。

PAN  
アカウント番号。通常はチップフィールド 5A または ISO8583 フィールド 2 で使用できますが、カードシステムから取得することもできます。

PanSequenceNumber  
カードシーケンス番号。使用しない場合は、00 と入力します。

ApplicationCryptogram  
これはセッションごとの取得データで、通常はフィールド 9F26 からの最後の ARQC です。

PinBlockLengthPosition  
PIN ブロックの長さがエンコードされる場所を指定します。通常、NONE に設定されます。不明な場合は、カードスキームの仕様を確認してください。

PinBlockPaddingType  
PIN ブロックのパディングタイプを指定します。通常、NO\$1PADDING に設定されます。不明な場合は、カードスキームの仕様を確認してください。

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

# ネットワーク固有の関数
<a name="use-cases-issuers.networkfunctions"></a>

**Topics**
+ [Visa 固有の関数](use-cases-issuers.networkfunctions.visa.md)
+ [Mastercard 固有の関数](use-cases-issuers.networkfunctions.mastercard.md)
+ [American Express 固有の関数](use-cases-issuers.networkfunctions.amex.md)
+ [JCB 固有の関数](use-cases-issuers.networkfunctions.jcb.md)

# Visa 固有の関数
<a name="use-cases-issuers.networkfunctions.visa"></a>

**Topics**
+ [ARQC - CVN18/CVN22](#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 (動的カード検証値) - CVN17](#use-cases-issuers.networkfunctions.visa.dcvv)

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

CVN18 および CVN22 は、キー取得の [CSK メソッド](use-cases-issuers.generalfunctions.arqc.md)を使用します。正確なトランザクションデータは、これら 2 つの方法によって異なります。トランザクションデータフィールドの構築の詳細については、スキームドキュメントを参照してください。

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

CVN10 は、EMV トランザクションの古い Visa メソッドであり、セッション (トランザクションごと) 取得ではなく、カードキー取得ごとに を使用し、別のペイロードも使用します。ペイロードの内容の詳細については、スキームにお問い合わせください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* です。これは次のステップで行います。

### ARQC を検証する
<a name="use-cases-issuers.networkfunctions.visa.cvn10.validation"></a>

**Example**  
この例では、Visa CVN10 を使用して生成された ARQC の検証を行います。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。arqc が検証されない場合、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>

Visa Secure (3DS) トランザクションの場合、発行者アクセスコントロールサーバー (ACS) によって CAVV (カード所有者認証検証値) が生成されます。CAVV は、カード所有者認証が行われた証拠であり、認証トランザクションごとに一意であり、アクワイアラーによって認可メッセージで提供されます。CAVV v7 は、マーチャント名、購入金額、購入日などの要素を含む、トランザクションに関する追加データを承認にバインドします。このようにして、実質的にトランザクションペイロードの暗号化ハッシュになります。

暗号的には、CAVV V7 は CVV アルゴリズムを使用しますが、入力はすべて変更/再利用されています。CAVV V7 ペイロードを生成する入力を生成する方法については、適切なサードパーティー/Visa のドキュメントを参照してください。

### キーを作成する
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

キー`KeyArn`を表す を書き留めます。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk* です。これは次のステップで行います。

### CAVV V7 を生成する
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.generate"></a>

**Example**  
この例では、仕様で指定された入力を持つ特定のトランザクションの CAVV V7 を生成します。このアルゴリズムでは、フィールドが再利用/再利用される可能性があるため、フィールドラベルが入力と一致すると想定しないでください。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  

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

### CAVV V7 を検証する
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.verify"></a>

**Example**  
検証の場合、入力は CVK、計算された入力値、検証するトランザクション中に提供された CAVV です。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  
CAVV はユーザーが入力した値 (CVV2 など) ではありませんが、発行者 ACS によって計算されます。提供されたときに常に検証する必要があるかどうかを考慮する必要があります。

```
$ 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 (動的カード検証値) - CVN17
<a name="use-cases-issuers.networkfunctions.visa.dcvv"></a>

dCVV (動的カード検証値) は、非接触 EMV トランザクションに使用される Visa 固有の動的暗号文です。初期 EMV と呼ばれ、トランザクションごとに一意の検証値を生成することでセキュリティを強化します。dCVV は、プライマリアカウント番号 (PAN)、PAN シーケンス番号 (PSN)、アプリケーショントランザクションカウンター (ATC)、予測不可能な番号、トラックデータなどの入力を使用します。まだいくつかの場所で使用されていますが、主に CVN18 などの他のアルゴリズムに置き換えられています。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[DynamicCardVerificationValue](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DynamicCardVerificationValue.html)」を参照してください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc* です。これは次のステップで行います。

### dCVV の生成
<a name="use-cases-issuers.networkfunctions.visa.dcvv.generate"></a>

**Example**  
この例では、非接触 EMV トランザクションの dCVV を生成します。入力には、PAN、PAN シーケンス番号、アプリケーショントランザクションカウンター、予測不可能な番号、追跡データが含まれます。  

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

### dCVV を検証する
<a name="use-cases-issuers.networkfunctions.visa.dcvv.verify"></a>

**Example**  
この例では、トランザクション中に提供された dCVV を検証します。検証のためには、生成に使用されるのと同じ入力を指定する必要があります。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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"
}
```

# Mastercard 固有の関数
<a name="use-cases-issuers.networkfunctions.mastercard"></a>

**Topics**
+ [DCVC3](#use-cases-issuers.networkfunctions.mastercard.dcvc)
+ [ARQC - CVN14/CVN15](#use-cases-issuers.networkfunctions.mastercard.cvn14)
+ [ARQC - CVN12/CVN13](#use-cases-issuers.networkfunctions.mastercard.cvn12)
+ [3DS SPA2 "](#use-cases-issuers.networkfunctions.mastercard.spa2aav)

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

DCVC3 は EMV CSK および Mastercard CVN12 スキームより前であり、動的キーを利用する別のアプローチを表します。他のユースケースにも転用されることがあります。このスキームでは、入力は PAN、PSN、Track1/Track2 データ、予測不可能な番号、トランザクションカウンター (ATC) です。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/hrh6qgbi3sk4y3wq* です。これは次のステップで行います。

### DCVC3 を生成する
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc3.generate"></a>

**Example**  
DCVC3 は通常チップカードによって生成されますが、この例のように手動で生成することもできます。  

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

### DCVC3 を検証する
<a name="use-cases-issuers.networkfunctions.mastercard.dcvc3.validation"></a>

**Example**  
この例では、DCVC3 を検証します。例えば、11 のカウンターは 000B として表す必要があります。サービスは 3 桁の DCVC3 を想定しているため、4 (または 5) 桁の値を保存している場合は、3 桁になるまで左側の文字を切り捨てます (たとえば、15321 では検証データ値が 321 になります）。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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 - CVN14/CVN15
<a name="use-cases-issuers.networkfunctions.mastercard.cvn14"></a>

CVN14 および CVN15 は、キー取得の [EMV CSK メソッド](use-cases-issuers.generalfunctions.arqc.md)を使用します。正確なトランザクションデータは、これら 2 つの方法によって異なります。トランザクションデータフィールドの構築の詳細については、スキームドキュメントを参照してください。

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

CVN12 と CVN13 は、EMV トランザクション用の古い Mastercard 固有の方法で、トランザクションごとの取得に予測不可能な数値が組み込まれ、別のペイロードも使用されます。ペイロードの内容の詳細については、 スキームにお問い合わせください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

### ARQC を検証する
<a name="use-cases-issuers.networkfunctions.mastercard.cvn12.validation"></a>

**Example**  
この例では、Mastercard CVN12 を使用して生成された ARQC を検証します。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。arqc が検証されない場合、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 SPA2 "
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav"></a>

SPA2 " (アカウント認証値) は、Mastercard 3DS トランザクション (Mastercard Idenity Check とも呼ばれます) に使用されます。HMAC ベースの MAC 生成を使用した e コマーストランザクションの暗号化認証を提供します。HIPAA は、トランザクション固有のデータと共有シークレットキーを使用して生成されます。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-west-2:111122223333:key/q5vjtshsg67cz5gn* です。これは次のステップで行います。

### SPA2 " を生成する
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav.generate"></a>

**Example**  
この例では、HMAC MAC 生成を使用して SPA2 の発行者認証値 (IAV) コンポーネントを生成します。メッセージデータには、認証されるトランザクション固有の情報が含まれます。メッセージデータの形式は Mastercard の SPA2 仕様に従う必要があり、この例では説明していません。  
IAV を PVC 値に挿入するフォーマットについては、Mastercard の仕様を確認してください。

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

### SPA2 " を検証する
<a name="use-cases-issuers.networkfunctions.mastercard.spa2aav.verify"></a>

**Example**  
この例では、SPA2 " を検証します。検証には、同じメッセージデータと MAC 値が提供されます。  
 AWS Payment Cryptography が MAC を検証できる場合、http/200 が返されます。MAC が検証されていない場合、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"
}
```

# 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 バージョン 1 は Classic CSC アルゴリズムとも呼ばれます。サービスは、3、4、または 5 桁の数字として提供できます。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[AmexCardSecurityCodeVersion1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion1.html)」を参照してください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
                }
            }
```

キー`KeyArn`を表す を書き留めます。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq* です。これは次のステップで行います。

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

### CSC1 を検証する
<a name="use-cases-issuers.networkfunctions.amex.csc1.validation"></a>

**Example**  
この例では、CSC1 を検証します。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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 バージョン 2 は、拡張 CSC アルゴリズムとも呼ばれます。サービスは、3、4、または 5 桁の数字として提供できます。CSC2 のサービスコードは通常 000 です。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html)」を参照してください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
            }
        }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

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

この例では、長さが 4 の CSC2 を生成します。CSC は、3、4、または 5 の長さで生成できます。American Express PANs は 15 桁で、34 または 37 で始まる必要があります。有効期限は通常 YYMM の形式です。サービスコードは異なる場合があります - 手動を確認してくださいが、一般的な値は 000、201、または 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"
}
```

### CSC2 を検証する
<a name="use-cases-issuers.networkfunctions.amex.csc2.validation"></a>

**Example**  
この例では、CSC2 を検証します。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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 は静的 CSC アルゴリズムとも呼ばれ、CSC バージョン 2 を使用して計算されます。サービスは、3、4、または 5 桁の数字として提供できます。

サービスコード 999 を使用して、問い合わせカードの iCSC を計算します。サービスコード 702 を使用して、非接触カードの iCSC を計算します。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html)」を参照してください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
        }
     }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv* です。これは次のステップで行います。

### iCSC の生成
<a name="use-cases-issuers.networkfunctions.amex.icsc.generate"></a>

この例では、サービスコード 702 を使用して非接触カード用に、長さ 4 の iCSC を生成します。CSC は、3、4、または 5 の長さで生成できます。American Express PANs は 15 桁で、34 または 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"
}
```

### iCSC を検証する
<a name="use-cases-issuers.networkfunctions.amex.icsc.validation"></a>

**Example**  
この例では、iCSC を検証します。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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 (3-D Secure Account Verification Value) は、American Express 3-D Secure 認証に使用されます。CSC2 と同じアルゴリズムを使用しますが、入力パラメータは異なります。有効期限フィールドには、予測不可能な (ランダム) 番号を入力する必要があります。サービスコードは、AEVV 認証結果コード (1 桁) と第 2 要素認証コード (2 桁) で構成されます。出力の長さは 3 桁にする必要があります。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[AmexCardSecurityCodeVersion2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_AmexCardSecurityCodeVersion2.html)」を参照してください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
        }
     }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm* です。これは次のステップで行います。

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

この例では、長さが 3 の 3DS AEVV を生成します。有効期限フィールドには、予測不可能な (ランダムな) 番号 (1234 など) が含まれ、サービスコードは AEVV 認証結果コード (1 桁) と 2 番目の要素認証コード (2 桁) で構成されます。例えば、543 は認証結果コード、43 は 2 番目の要素認証コードです。American Express PANs は 15 桁で、34 または 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"
}
```

### 3DS AEVV を検証する
<a name="use-cases-issuers.networkfunctions.amex.3dsaevv.validation"></a>

**Example**  
この例では、3DS AEVV を検証します。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、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
}
```

# 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 は、キー取得の [CSK メソッド](use-cases-issuers.generalfunctions.arqc.md)を使用します。トランザクションデータフィールドの構築の詳細については、スキームのドキュメントを参照してください。

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

CVN01 は EMV トランザクション用の古い JCB メソッドで、セッション (トランザクションごと) 取得ではなくカードキー取得ごとに を使用し、別のペイロードも使用します。このメッセージは Visa でも使用されるため、要素名には JCB にも使用されますが、その名前が付けられます。ペイロードの内容の詳細については、スキームドキュメントにお問い合わせください。

### キーの作成
<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"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (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"
                        }
                    }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* です。これは次のステップで行います。

### ARQC を検証する
<a name="use-cases-issuers.networkfunctions.jcb.cvn01.validation"></a>

**Example**  
この例では、JCB CVN01 を使用して生成された ARQC を検証します。これは Visa メソッドと同じオプションを使用するため、 パラメータの名前を使用します。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。arqc が検証されない場合、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"
              }
```