AWS Payment Cryptography 使用 的資料平面範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS 開發套件範例 GitHub 儲存庫中有更多可用的 AWS SDK 範例

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Payment Cryptography 使用 的資料平面範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 AWS Payment Cryptography 資料平面來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境中查看內容中的動作。

每個範例均包含完整原始碼的連結,您可在連結中找到如何設定和執行內容中程式碼的相關指示。

主題

動作

以下程式碼範例顯示如何使用 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 使用者指南》中的解密資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 DecryptData

以下程式碼範例顯示如何使用 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 使用者指南》中的加密資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 EncryptData

以下程式碼範例顯示如何使用 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 使用者指南》中的產生卡片資料

以下程式碼範例顯示如何使用 generate-mac

AWS CLI

產生 MAC

下列 generate-card-validation-data 範例會使用演算法 HMAC_SHA256 和 HMAC 加密金鑰,為卡片資料身分驗證產生雜湊訊息驗證碼 (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 使用者指南》中的產生 MAC

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GenerateMac

以下程式碼範例顯示如何使用 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 使用者指南》中的產生 PIN 資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 GeneratePinData

以下程式碼範例顯示如何使用 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 使用者指南》中的加密和解密資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 ReEncryptData

以下程式碼範例顯示如何使用 translate-pin-data

AWS CLI

轉譯 PIN 資料

下列 translate-pin-data 範例會使用 DUKPT 演算法,將 PIN 從使用 ISO 0 PIN 區塊的 PEK TDES 加密轉換為 AES ISO 4 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 使用者指南》中的轉譯 PIN 資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 TranslatePinData

以下程式碼範例顯示如何使用 verify-auth-request-cryptogram

AWS CLI

確認身分驗證請求

下列 verify-auth-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 使用者指南》中的確認身分驗證請求 (ARQC) 密文

以下程式碼範例顯示如何使用 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 使用者指南》中的確認卡片資料

以下程式碼範例顯示如何使用 verify-mac

AWS CLI

確認 MAC

下列 verify-mac 範例會使用演算法 HMAC_SHA256 和 HMAC 加密金鑰,為卡片資料身分驗證確認雜湊訊息驗證碼 (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 使用者指南》中的確認 MAC

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 VerifyMac

以下程式碼範例顯示如何使用 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 使用者指南》中的確認 PIN 資料

  • 如需 API 詳細資訊,請參閱《AWS CLI 命令參考》中的 VerifyPinData