AWS Payment Cryptography 資料平面範例使用 AWS CLI - AWS Command Line Interface

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

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

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

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用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 付款密碼編譯使用者指南中的解密資料

  • 如需 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 付款密碼編譯使用者指南中的加密資料

  • 如需 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 付款密碼編譯使用者指南中的產生卡片資料

下列程式碼範例會示範如何使用generate-mac

AWS CLI

若要產生 MAC 電腦

下列generate-card-validation-data範例會使用演算法 HMAC_SHA256 和 HMAC 加密金鑰,產生用於卡片資料驗證的雜湊型訊息驗證碼 (HMAC)。金鑰必須KeyUsage設定KeyModesOfUseTR31_M7_HMAC_KEYGenerate

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 付款密碼編譯使用者指南中的「產生 MAC」。

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

下列程式碼範例會示範如何使用generate-pin-data

AWS CLI

產生 PIN 碼

以下generate-card-validation-data示例使用 Visa 密碼計劃生成一個新的隨機密碼。

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 付款密碼編譯使用者指南中的產生 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 付款密碼編譯使用者指南中的加密和解密資料

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

下列程式碼範例會示範如何使用translate-pin-data

AWS CLI

轉譯 PIN 碼資料的步驟

下列translate-pin-data範例會使用 DUKPT 演算法,將使用 ISO 0 密碼區塊的 PEK TDES 加密的 PIN 碼轉換為 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 付款密碼編 Translate 使用者指南中的「轉譯 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 付款密碼學用戶指南中的驗證身份驗證請求(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 付款密碼編譯使用者指南中的驗證卡片資料

下列程式碼範例會示範如何使用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 付款密碼編譯使用者指南中的「驗證 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 付款密碼編譯使用者指南中的驗證 PIN 碼資料

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