

# AWS CLI を使用した AWS Payment Cryptography Data Plane の例
<a name="cli_payment-cryptography-data_code_examples"></a>

次のコードサンプルは、AWS Payment Cryptography Data Plane で AWS Command Line Interface を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `decrypt-data`
<a name="payment-cryptography-data_DecryptData_cli_topic"></a>

次のコード例は、`decrypt-data` を使用する方法を示しています。

**AWS CLI**  
**暗号文を復号するには**  
次の `decrypt-data` の例では、対称キーを使用して暗号文データを復号します。このオペレーションでは、キーの `KeyModesOfUse` が `Decrypt` に設定され、`KeyUsage` が `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY` に設定されている必要があります。  

```
aws payment-cryptography-data decrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --cipher-text 33612AB9D6929C3A828EB6030082B2BD \
    --decryption-attributes 'Symmetric={Mode=CBC}'
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "PlainText": "31323334313233343132333431323334"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Decrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/decrypt-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DecryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/decrypt-data.html)」を参照してください。

### `encrypt-data`
<a name="payment-cryptography-data_EncryptData_cli_topic"></a>

次のコード例は、`encrypt-data` を使用する方法を示しています。

**AWS CLI**  
**データを暗号化するには**  
次の `encrypt-data` の例では、対称キーを使用してプレーンテキストデータを暗号化します。このオペレーションでは、キーの `KeyModesOfUse` が `Encrypt` に設定され、`KeyUsage` が `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY` に設定されている必要があります。  

```
aws payment-cryptography-data encrypt-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --plain-text 31323334313233343132333431323334 \
    --encryption-attributes 'Symmetric={Mode=CBC}'
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "71D7AE",
    "CipherText": "33612AB9D6929C3A828EB6030082B2BD"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Encrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/encrypt-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[EncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/encrypt-data.html)」を参照してください。

### `generate-card-validation-data`
<a name="payment-cryptography-data_GenerateCardValidationData_cli_topic"></a>

次のコード例は、`generate-card-validation-data` を使用する方法を示しています。

**AWS CLI**  
**CVV を生成するには**  
次の `generate-card-validation-data` の例では、CVV/CVV2 を生成します。  

```
aws payment-cryptography-data generate-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --primary-account-number=171234567890123 \
    --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Generate card data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-card-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GenerateCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-card-validation-data.html)」を参照してください。

### `generate-mac`
<a name="payment-cryptography-data_GenerateMac_cli_topic"></a>

次のコード例は、`generate-mac` を使用する方法を示しています。

**AWS CLI**  
**MAC を生成するには**  
次の `generate-card-validation-data` の例では、HMAC\$1SHA256 アルゴリズムと HMAC 暗号化キーを使用してカードデータ認証用の Hash-based Message Authentication Code (HMAC) を生成します。キーでは `KeyUsage` が `TR31_M7_HMAC_KEY` に設定され、`KeyModesOfUse` が `Generate` に設定されている必要があります。  

```
aws payment-cryptography-data generate-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h \
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \
    --generation-attributes Algorithm=HMAC_SHA256
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:123456789012:key/kwapwa6qaifllw2h,
    "KeyCheckValue": "2976E7",
    "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Generate MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-mac.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-mac.html)」を参照してください。

### `generate-pin-data`
<a name="payment-cryptography-data_GeneratePinData_cli_topic"></a>

次のコード例は、`generate-pin-data` を使用する方法を示しています。

**AWS CLI**  
**PIN を生成するには**  
次の `generate-card-validation-data` の例では、Visa PIN スキームを使用して新しいランダム PIN を生成します。  

```
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"
    }
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Generate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/generate-pin-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GeneratePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/generate-pin-data.html)」を参照してください。

### `re-encrypt-data`
<a name="payment-cryptography-data_ReEncryptData_cli_topic"></a>

次のコード例は、`re-encrypt-data` を使用する方法を示しています。

**AWS CLI**  
**別のキーを使用してデータを再暗号化するには**  
次の `re-encrypt-data` の例では、AES 対称キーを使用して暗号化された暗号文を復号し、トランザクション単位の派生ユニークキー (DUKPT) を使用して再暗号化します。  

```
aws payment-cryptography-data re-encrypt-data \
    --incoming-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/hyvv7ymboitd4vfy \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen \
    --cipher-text 4D2B0BDBA192D5AEFEAA5B3EC28E4A65383C313FFA25140101560F75FE1B99F27192A90980AB9334 \
    --incoming-encryption-attributes "Dukpt={Mode=ECB,KeySerialNumber=0123456789111111}" \
    --outgoing-encryption-attributes '{"Symmetric": {"Mode": "ECB"}}'
```
出力:  

```
{
    "CipherText": "F94959DA30EEFF0C035483C6067667CF6796E3C1AD28C2B61F9CFEB772A8DD41C0D6822931E0D3B1",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/jl6ythkcvzesbxen",
    "KeyCheckValue": "2E8CD9"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Encrypt and decrypt data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/crypto-ops.encryptdecrypt.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ReEncryptData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/re-encrypt-data.html)」を参照してください。

### `translate-pin-data`
<a name="payment-cryptography-data_TranslatePinData_cli_topic"></a>

次のコード例は、`translate-pin-data` を使用する方法を示しています。

**AWS CLI**  
**PIN データを変換するには**  
次の `translate-pin-data` の例では、ISO 0 PIN ブロックを使用する PEK TDES 暗号化から、DUKPT アルゴリズムを使用する AES ISO 4 PIN ブロックに PIN を変換します。  

```
aws payment-cryptography-data translate-pin-data \
    --encrypted-pin-block "AC17DC148BDA645E" \
    --incoming-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe \
    --outgoing-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" \
    --outgoing-dukpt-attributes KeySerialNumber="FFFF9876543210E00008"
```
出力:  

```
{
    "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt
    "KeyCheckValue": "7CC9E2"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Translate PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/translate-pin-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[TranslatePinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/translate-pin-data.html)」を参照してください。

### `verify-auth-request-cryptogram`
<a name="payment-cryptography-data_VerifyAuthRequestCryptogram_cli_topic"></a>

次のコード例は、`verify-auth-request-cryptogram` を使用する方法を示しています。

**AWS CLI**  
**認証リクエストを検証するには**  
次の `verify-auth-request-cryptogram` の例では、Authorization Request Cryptogram (ARQC) を検証します。  

```
aws payment-cryptography-data verify-auth-request-cryptogram \
    --auth-request-cryptogram F6E1BD1E6037FB3E \
    --auth-response-attributes '{"ArpcMethod1": {"AuthResponseCode": "1111"}}' \
    --key-identifier arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya \
    --major-key-derivation-mode "EMV_OPTION_A" \
    --session-key-derivation-attributes '{"EmvCommon": {"ApplicationTransactionCounter": "1234","PanSequenceNumber": "01","PrimaryAccountNumber": "471234567890123"}}' \
    --transaction-data "123456789ABCDEF"
```
出力:  

```
{
    "AuthResponseValue": "D899B8C6FBF971AA",
    "KeyArn": "arn:aws:payment-cryptography:us-west-2:111122223333:key/pboipdfzd4mdklya",
    "KeyCheckValue": "985792"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Verify auth request (ARQC) cryptogram](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/data-operations.verifyauthrequestcryptogram.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[VerifyAuthRequestCryptogram](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-auth-request-cryptogram.html)」を参照してください。

### `verify-card-validation-data`
<a name="payment-cryptography-data_VerifyCardValidationData_cli_topic"></a>

次のコード例は、`verify-card-validation-data` を使用する方法を示しています。

**AWS CLI**  
**CVV を検証するには**  
次の `verify-card-validation-data` の例では、PAN の CVV/CVV2 を検証します。  

```
aws payment-cryptography-data verify-card-validation-data \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \
    --primary-account-number=171234567890123 \
    --verification-attributes CardVerificationValue2={CardExpiryDate=0123} \
    --validation-data 801
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1"
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Verify card data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-card-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[VerifyCardValidationData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-card-validation-data.html)」を参照してください。

### `verify-mac`
<a name="payment-cryptography-data_VerifyMac_cli_topic"></a>

次のコード例は、`verify-mac` を使用する方法を示しています。

**AWS CLI**  
**MAC を検証するには**  
次の `verify-mac` の例では、HMAC\$1SHA256 アルゴリズムと HMAC 暗号化キーを使用してカードデータ認証用の Hash-based Message Authentication Code (HMAC) を検証します。  

```
aws payment-cryptography-data verify-mac \
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \
    --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \
    --verification-attributes='Algorithm=HMAC_SHA256' \
    --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C
```
出力:  

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6,
    "KeyCheckValue": "2976E7",
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Verify MAC](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-mac.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-mac.html)」を参照してください。

### `verify-pin-data`
<a name="payment-cryptography-data_VerifyPinData_cli_topic"></a>

次のコード例は、`verify-pin-data` を使用する方法を示しています。

**AWS CLI**  
**PIN を検証するには**  
次の `verify-pin-data` の例では、PAN の PIN を検証します。  

```
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",
}
```
詳細については、「*AWS Payment Cryptography User Guide*」の「[Verify PIN data](https://docs.aws.amazon.com/payment-cryptography/latest/userguide/verify-pin-data.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[VerifyPinData](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/payment-cryptography-data/verify-pin-data.html)」を参照してください。