Amazon Payment Cryptography 使用数据平面示例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Payment Cryptography 使用数据平面示例 Amazon CLI

以下代码示例向您展示了如何使用 with D Amazon Payment Cryptography ata Plane 来执行操作和实现常见场景。 Amazon Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景和跨服务示例的上下文查看操作。

场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。

每个示例都包含一个指向的链接 GitHub,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 decrypt-data

Amazon CLI

解密密文

以下decrypt-data示例使用对称密钥解密密文数据。要执行此操作,密钥必须KeyModesOfUse设置为,DecryptKeyUsage设置为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" }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的解密数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DecryptData中的。

以下代码示例演示如何使用 encrypt-data

Amazon CLI

要加密数据

以下encrypt-data示例使用对称密钥对纯文本数据进行加密。要执行此操作,密钥必须KeyModesOfUse设置为,EncryptKeyUsage设置为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" }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的加密数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考EncryptData中的。

以下代码示例演示如何使用 generate-card-validation-data

Amazon 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" }

有关更多信息,请参阅《Amazon 支付密码学用户指南》中的生成银行卡数据

以下代码示例演示如何使用 generate-mac

Amazon CLI

生成 MAC

以下generate-card-validation-data示例使用算法 HMAC_SHA256 和 HMAC 加密密钥生成用于卡数据身份验证的基于哈希的消息身份验证码 (HMAC)。密钥必须KeyUsage设置为,TR31_M7_HMAC_KEY并设置KeyModesOfUseGenerate

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

有关更多信息,请参阅《Amazon 支付加密用户指南》中的 “生成 MAC”。

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GenerateMac中的。

以下代码示例演示如何使用 generate-pin-data

Amazon 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" } }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的生成 PIN 数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GeneratePinData中的。

以下代码示例演示如何使用 re-encrypt-data

Amazon 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" }

有关更多信息,请参阅《Amazon 支付密码学用户指南》中的加密和解密数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考ReEncryptData中的。

以下代码示例演示如何使用 translate-pin-data

Amazon CLI

转换 PIN 数据

以下translate-pin-data示例使用 DUKPT 算法将 PIN 从使用 ISO 0 PIN 块的 PEK TDES 加密转换为使用 DUKPT 算法的 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" }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的 Tr anslate PIN 数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考TranslatePinData中的。

以下代码示例演示如何使用 verify-auth-request-cryptogram

Amazon 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" }

有关更多信息,请参阅《Amazon 支付密码学用户指南》中的验证身份验证请求 (ARQC) 密码

以下代码示例演示如何使用 verify-card-validation-data

Amazon 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" }

有关更多信息,请参阅《Amazon 支付密码学用户指南》中的验证银行卡数据

以下代码示例演示如何使用 verify-mac

Amazon 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", }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的 “验证 MAC”。

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考VerifyMac中的。

以下代码示例演示如何使用 verify-pin-data

Amazon 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", }

有关更多信息,请参阅《Amazon 支付加密用户指南》中的验证 PIN 数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考VerifyPinData中的。