

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

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

EMV PIN 更改结合了两个操作：为发行者脚本生成 MAC 和加密新 PIN 以在 EMV 芯片卡上进行离线 PIN 更改。只有在芯片卡上存储密码的某些国家/地区才需要此命令（这在欧洲国家很常见）。这通常用于持卡人需要更改其 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)中的。

## 生成 EMV MAC 和加密的 PIN 以更改 PIN
<a name="use-cases-issuers.generalfunctions.emvpinchange.generate"></a>

此操作需要两个密钥：一个用于生成 MAC 的 EMV 完整性密钥（KeyUsage: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY）和一个用于 PIN 加密的 EMV 机密密钥（: \$1E4\$1EMV\$1MKEY\$1MKEY\$1CENTRITY）。KeyUsage TR31典型的流程是，后端进程将生成 EMV PIN 更改脚本，其中包括颁发者脚本的 MAC 和加密的新 PIN。然后，命令和加密的 PIN 将发送到卡上，以更新离线 PIN。向卡发送命令超出了 AWS 支付加密的范围。

消息数据  
消息数据包括发行者脚本的 APDU 命令。该服务不验证此字段的内容。

新的加密 PIN 块  
新的加密 PIN 区块将发送到信用卡。必须使用 PIN 加密密钥将其作为加密值提供。

新的 PIN PEK 标识符  
用于在新 PIN 传递给此 API 之前对其进行加密的密钥。

安全消息完整性密钥  
用于生成 MAC 的 EMV 完整性密钥 (KeyUsage: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY)。

安全消息保密密钥  
用于 PIN 加密的 EMV 机密密钥 (KeyUsage: TR31 \$1E4\$1EMV\$1MKEY\$1MKEY\$1Converity)。

MajorKeyDerivationMode  
EMV 定义模式 A、B 或 C。模式 A 是最常见的， AWS 支付密码学目前支持模式 A 或模式 B。

Mode  
加密模式，通常是用于密码更改操作的 CBC。

PAN  
账号，通常在芯片字段 5A 或字 ISO8583 段 2 中可用，但也可以从卡系统中检索。

PanSequenceNumber  
卡片序列号。如果未使用，请输入 00。

ApplicationCryptogram  
这是每个会话的派生数据，通常是字段 9F26 中的最后一个 ARQC。

PinBlockLengthPosition  
指定 PIN 区块长度的编码位置。通常设置为 “无”。如果您不确定，请查看您的信用卡计划规格。

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