

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Allgemeine Funktionen
<a name="use-cases-issuers.generalfunctions"></a>

**Topics**
+ [Generieren Sie eine zufällige PIN und die zugehörige PVV und überprüfen Sie dann den Wert](use-cases-issuers.generalfunctions.pvv.md)
+ [Generieren oder verifizieren Sie einen CVV für eine bestimmte Karte](use-cases-issuers.generalfunctions.cvv.md)
+ [Generieren oder verifizieren Sie eine CVV2 für eine bestimmte Karte](use-cases-issuers.generalfunctions.cvv2.md)
+ [Generieren oder verifizieren Sie ein iCVV für eine bestimmte Karte](use-cases-issuers.generalfunctions.icvv.md)
+ [Überprüfen Sie einen EMV-ARQC und generieren Sie einen ARPC](use-cases-issuers.generalfunctions.arqc.md)
+ [Generieren und verifizieren Sie einen EMV-MAC](use-cases-issuers.generalfunctions.emvmac.md)
+ [Generieren Sie EMV-MAC für die PIN-Änderung](use-cases-issuers.generalfunctions.emvpinchange.md)

# Generieren Sie eine zufällige PIN und die zugehörige PVV und überprüfen Sie dann den Wert
<a name="use-cases-issuers.generalfunctions.pvv"></a>

**Topics**
+ [Erstellen Sie den oder die Schlüssel](#use-cases-issuers.generalfunctions.pvv.setup)
+ [Generieren Sie eine zufällige PIN, generieren Sie PVV und geben Sie die verschlüsselte PIN und PVV zurück](#use-cases-issuers.generalfunctions.pvv.generate)
+ [Überprüfen Sie die verschlüsselte PIN mit der PVV-Methode](#use-cases-issuers.generalfunctions.pvv.verify)

## Erstellen Sie den oder die Schlüssel
<a name="use-cases-issuers.generalfunctions.pvv.setup"></a>

Um eine zufällige PIN und die [PVV](terminology.md#terms.pvv) zu generieren, benötigen Sie zwei Schlüssel, einen Pin [Verification Key (PVK) zum Generieren des PVV](terminology.md#terms.pvk) und einen Pin [Encryption Key zum Verschlüsseln der PIN](terminology.md#terms.pek). Die PIN selbst wird zufällig und sicher innerhalb des Dienstes generiert und ist kryptografisch mit keinem der Schlüssel verknüpft. 

Der PGK muss ein Schlüssel des Algorithmus TDES\$12KEY sein, der auf dem PVV-Algorithmus selbst basiert. Ein PEK kann TDES\$12KEY, TDES\$13KEY oder AES\$1128 sein. In diesem Fall wäre AES\$1128 eine gute Wahl, da das PEK für den internen Gebrauch in Ihrem System vorgesehen ist. Wenn ein PEK für den Austausch mit anderen Systemen (z. B. Kartennetzwerken, Acquirern ATMs) verwendet wird oder im Rahmen einer Migration verschoben wird, ist TDES\$12KEY aus Kompatibilitätsgründen möglicherweise die geeignetere Wahl. 

### Erstellen Sie das PEK
<a name="use-cases-issuers.generalfunctions.pvv.setup.pek"></a>

```
$ aws payment-cryptography create-key \
               --exportable 
               --key-attributes KeyAlgorithm=AES_128,KeyUsage=TR31_P0_PIN_ENCRYPTION_KEY,\
                   KeyClass=SYMMETRIC_KEY,\
                   KeyModesOfUse='{Encrypt=true,Decrypt=true,Wrap=true,Unwrap=true}' --tags='[{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
                   "KeyAttributes": {
                       "KeyUsage": "TR31_P0_PIN_ENCRYPTION_KEY",
                       "KeyClass": "SYMMETRIC_KEY",
                       "KeyAlgorithm": "AES_128",
                       "KeyModesOfUse": {
                           "Encrypt": false,
                           "Decrypt": false,
                           "Wrap": false,
                           "Unwrap": false,
                           "Generate": true,
                           "Sign": false,
                           "Verify": true,
                           "DeriveKey": false,
                           "NoRestrictions": false
                       }
                   },
                   "KeyCheckValue": "7CC9E2",
                   "KeyCheckValueAlgorithm": "CMAC",
                   "Enabled": true,
                   "Exportable": true,
                   "KeyState": "CREATE_COMPLETE",
                   "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                   "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                   "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
               }
           }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/ivi5ksfsuplneuyt. Das benötigen Sie im nächsten Schritt.

### Erstelle das PVK
<a name="use-cases-issuers.generalfunctions.pvv.setup.pvk"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_V2_VISA_PIN_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}'  --tags='[{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
                  "Key": {
                      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
                      "KeyAttributes": {
                          "KeyUsage": "TR31_V2_VISA_PIN_VERIFICATION_KEY",
                          "KeyClass": "SYMMETRIC_KEY",
                          "KeyAlgorithm": "TDES_2KEY",
                          "KeyModesOfUse": {
                              "Encrypt": false,
                              "Decrypt": false,
                              "Wrap": false,
                              "Unwrap": false,
                              "Generate": true,
                              "Sign": false,
                              "Verify": true,
                              "DeriveKey": false,
                              "NoRestrictions": false
                          }
                      },
                      "KeyCheckValue": "51A200",
                      "KeyCheckValueAlgorithm": "ANSI_X9_24",
                      "Enabled": true,
                      "Exportable": true,
                      "KeyState": "CREATE_COMPLETE",
                      "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                      "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                      "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
                  }
              }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/ov6icy4ryas4zcza. Das benötigen Sie im nächsten Schritt.

## Generieren Sie eine zufällige PIN, generieren Sie PVV und geben Sie die verschlüsselte PIN und PVV zurück
<a name="use-cases-issuers.generalfunctions.pvv.generate"></a>

**Example**  
In diesem Beispiel generieren wir eine neue (zufällige) 4-stellige PIN, bei der die Ausgänge verschlüsselt `PIN block` sind (. PinData PinBlock) und a `PVV` (pinData. VerificationValue). Bei den Tasteneingaben handelt es sich `PAN` um das `Pin Verification Key` (auch als Pin-Generierungsschlüssel bezeichnet), das `Pin Encryption Key` und das [PIN-Block-Format](terminology.md#terms.pinblock).   
 Dieser Befehl setzt voraus, dass der Schlüssel vom Typ ist`TR31_V2_VISA_PIN_VERIFICATION_KEY`.   

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

## Überprüfen Sie die verschlüsselte PIN mit der PVV-Methode
<a name="use-cases-issuers.generalfunctions.pvv.verify"></a>

**Example**  
In diesem Beispiel validieren wir eine PIN für eine bestimmte PAN. Die PIN wird in der Regel vom Karteninhaber oder Benutzer während der Transaktion zur Validierung bereitgestellt und mit dem in der Datei hinterlegten Wert verglichen (die Eingabe des Karteninhabers wird als verschlüsselter Wert vom Terminal oder einem anderen Upstream-Anbieter bereitgestellt). Um diese Eingabe zu validieren, werden zur Laufzeit auch die folgenden Werte bereitgestellt: Die verschlüsselte PIN, der zur Verschlüsselung der Eingabe-Pin verwendete Schlüssel (oft als [IWK](terminology.md#terms.iwk) bezeichnet) `PAN` und der Wert, gegen den verifiziert werden soll (entweder a `PVV` oder`PIN offset`).   
Wenn AWS Payment Cryptography die PIN validieren kann, wird ein http/200 zurückgegeben. Wenn die PIN nicht validiert wird, wird ein http/400 zurückgegeben.  

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

# Generieren oder verifizieren Sie einen CVV für eine bestimmte Karte
<a name="use-cases-issuers.generalfunctions.cvv"></a>

[CVV](terminology.md#terms.cvv) oder CVV1 ist ein Wert, der traditionell in den Magnetstreifen einer Karte eingebettet ist. Es ist nicht dasselbe wie CVV2 (für den Karteninhaber sichtbar und kann für Online-Einkäufe verwendet werden).

Der erste Schritt besteht darin, einen Schlüssel zu erstellen. Für dieses Tutorial erstellen Sie einen [CVK-3DES-Schlüssel](terminology.md#terms.cvk) (2KEY TDES) mit doppelter Länge. 

**Anmerkung**  
CVV CVV2 und iCVV verwenden alle ähnliche, wenn nicht sogar identische Algorithmen, variieren jedoch die Eingabedaten. Alle verwenden denselben Schlüsseltyp TR31 \$1C0\$1CARD\$1VERIFICATION\$1KEY, es wird jedoch empfohlen, für jeden Zweck separate Schlüssel zu verwenden. Diese können anhand von Alias-Tags unterschieden werden, wie im Beispiel unten. and/or 

## Erstellen Sie den Schlüssel
<a name="use-cases-issuers.generalfunctions.cvv.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                "KeyAttributes": {
                    "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                    "KeyClass": "SYMMETRIC_KEY",
                    "KeyAlgorithm": "TDES_2KEY",
                    "KeyModesOfUse": {
                        "Encrypt": false,
                        "Decrypt": false,
                        "Wrap": false,
                        "Unwrap": false,
                        "Generate": true,
                        "Sign": false,
                        "Verify": true,
                        "DeriveKey": false,
                        "NoRestrictions": false
                    }
                },
                "KeyCheckValue": "DE89F9",
                "KeyCheckValueAlgorithm": "ANSI_X9_24",
                "Enabled": true,
                "Exportable": true,
                "KeyState": "CREATE_COMPLETE",
                "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
            }
        }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/r52o3wbqxyf6qlqr. Das benötigen Sie im nächsten Schritt.

## Generieren Sie einen CVV
<a name="use-cases-issuers.generalfunctions.cvv.generate"></a>

**Example**  
In diesem Beispiel generieren wir einen [CVV](terminology.md#terms.cvv) für eine bestimmte PAN mit Eingaben von`PAN`, einem Servicecode (wie in ISO/IEC 7813 definiert) von 121 und dem Ablaufdatum der Karte.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121}'
```

```
                  {
                      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                      "KeyCheckValue": "DE89F9",
                      "ValidationData": "801"
                  }
```

## CVV validieren
<a name="use-cases-issuers.generalfunctions.cvv.verify"></a>

**Example**  
In diesem Beispiel verifizieren wir einen [CVV](terminology.md#terms.cvv) für eine bestimmte PAN mit Eingaben eines CVK, eines Servicecodes von 121`PAN`, des Kartenablaufdatums und des CVV, das während der Transaktion zur Validierung angegeben wurde.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   
CVV ist kein vom Benutzer eingegebener Wert (like CVV2), sondern ist normalerweise in einen Magnetstreifen eingebettet. Es sollte geprüft werden, ob es immer validiert werden sollte, wenn es bereitgestellt wird.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=121} --validation-data 801
```

```
{
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/r52o3wbqxyf6qlqr",
                    "KeyCheckValue": "DE89F9",
                    "ValidationData": "801"
}
```

# Generieren oder verifizieren Sie eine CVV2 für eine bestimmte Karte
<a name="use-cases-issuers.generalfunctions.cvv2"></a>

[CVV2](terminology.md#terms.cvv2)ist ein Wert, der traditionell auf der Rückseite einer Karte angegeben wird und für Online-Einkäufe verwendet wird. Bei virtuellen Karten kann es auch in einer App oder auf einem Bildschirm angezeigt werden. Kryptografisch gesehen ist es dasselbe wie, CVV1 aber mit einem anderen Servicecodewert.

## Erstellen Sie den Schlüssel
<a name="use-cases-issuers.generalfunctions.cvv2.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVV2"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                   "KeyAttributes": {
                       "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                       "KeyClass": "SYMMETRIC_KEY",
                       "KeyAlgorithm": "TDES_2KEY",
                       "KeyModesOfUse": {
                           "Encrypt": false,
                           "Decrypt": false,
                           "Wrap": false,
                           "Unwrap": false,
                           "Generate": true,
                           "Sign": false,
                           "Verify": true,
                           "DeriveKey": false,
                           "NoRestrictions": false
                       }
                   },
                   "KeyCheckValue": "AEA5CD",
                   "KeyCheckValueAlgorithm": "ANSI_X9_24",
                   "Enabled": true,
                   "Exportable": true,
                   "KeyState": "CREATE_COMPLETE",
                   "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                   "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                   "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
               }
           }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/7f7g4spf3xcklhzu. Das benötigen Sie im nächsten Schritt.

## Generieren Sie ein CVV2
<a name="use-cases-issuers.generalfunctions.cvv2.generate"></a>

**Example**  
In diesem Beispiel generieren wir eine [CVV2](terminology.md#terms.cvv2)für eine bestimmte PAN mit den Eingaben von `PAN` und dem Ablaufdatum der Karte.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu --primary-account-number=171234567890123 --generation-attributes CardVerificationValue2='{CardExpiryDate=1127}'
```

```
                     {
                         "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                         "KeyCheckValue": "AEA5CD",
                         "ValidationData": "321"
                     }
```

## Validieren Sie eine CVV2
<a name="use-cases-issuers.generalfunctions.cvv2.verify"></a>

**Example**  
In diesem Beispiel verifizieren wir a [CVV2](terminology.md#terms.cvv2)für eine bestimmte PAN mit Eingabe eines CVK, des Gültigkeitsdatums der Karte `PAN` und des während der Transaktion zur Validierung angegebenen CVV.   
Alle verfügbaren Parameter finden Sie unter Punkt [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) im API-Referenzhandbuch.   
CVV2 und die anderen Eingaben sind vom Benutzer eingegebene Werte. Daher ist es nicht unbedingt ein Anzeichen für ein Problem, dass dies regelmäßig nicht bestätigt wird.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu --primary-account-number=171234567890123 --verification-attributes CardVerificationValue2='{CardExpiryDate=1127} --validation-data 321
```

```
{
                       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/7f7g4spf3xcklhzu",
                       "KeyCheckValue": "AEA5CD",
                       "ValidationData": "801"
   }
```

# Generieren oder verifizieren Sie ein iCVV für eine bestimmte Karte
<a name="use-cases-issuers.generalfunctions.icvv"></a>

[iCVV verwendet denselben Algorithmus wie CVV/](terminology.md#terms.icvv), CVV2 aber iCVV ist in eine Chipkarte eingebettet. Sein Servicecode ist 999.

## Erstellen Sie den Schlüssel
<a name="use-cases-issuers.generalfunctions.icvv.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"ICVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
               "Key": {
                   "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                   "KeyAttributes": {
                       "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                       "KeyClass": "SYMMETRIC_KEY",
                       "KeyAlgorithm": "TDES_2KEY",
                       "KeyModesOfUse": {
                           "Encrypt": false,
                           "Decrypt": false,
                           "Wrap": false,
                           "Unwrap": false,
                           "Generate": true,
                           "Sign": false,
                           "Verify": true,
                           "DeriveKey": false,
                           "NoRestrictions": false
                       }
                   },
                   "KeyCheckValue": "1201FB",
                   "KeyCheckValueAlgorithm": "ANSI_X9_24",
                   "Enabled": true,
                   "Exportable": true,
                   "KeyState": "CREATE_COMPLETE",
                   "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                   "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                   "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
               }
           }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/c7dsi763r6s7lfp3. Das benötigen Sie im nächsten Schritt.

## Generieren Sie ein iCVV
<a name="use-cases-issuers.generalfunctions.icvv.generate"></a>

**Example**  
In diesem Beispiel generieren wir ein [iCVV](terminology.md#terms.icvv) für eine bestimmte PAN mit Eingaben von`PAN`, einem Servicecode (wie in ISO/IEC 7813 definiert) von 999 und dem Ablaufdatum der Karte.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3 --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999}'
```

```
                     {
                         "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                         "KeyCheckValue": "1201FB",
                         "ValidationData": "532"
                     }
```

## Bestätigen Sie iCVV
<a name="use-cases-issuers.generalfunctions.icvv.verify"></a>

**Example**  
Für die Validierung sind die Eingaben CVK, ein Servicecode von 999`PAN`, das Ablaufdatum der Karte und das iCVV, das während der Transaktion zur Validierung angegeben wurde.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   
iCVV ist kein vom Benutzer eingegebener Wert (like CVV2), sondern ist normalerweise auf einer EMV/chip Karte eingebettet. Es sollte geprüft werden, ob es immer gültig sein sollte, wenn es bereitgestellt wird.

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3 --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999} --validation-data 532
```

```
{
                       "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/c7dsi763r6s7lfp3",
                       "KeyCheckValue": "1201FB",
                       "ValidationData": "532"
   }
```

# Überprüfen Sie einen EMV-ARQC und generieren Sie einen ARPC
<a name="use-cases-issuers.generalfunctions.arqc"></a>

[ARQC](terminology.md#terms.arqc) (Authorization Request Cryptogram) ist ein Kryptogramm, das mit einer EMV-Karte (Chip) generiert und zur Validierung der Transaktionsdetails sowie der Verwendung einer autorisierten Karte verwendet wird. Es beinhaltet Daten von der Karte, dem Terminal und der Transaktion selbst.

Bei der Validierung im Backend werden dieselben Eingaben für AWS Payment Cryptography bereitgestellt. Das Kryptogramm wird intern neu erstellt und mit dem Wert verglichen, der mit der Transaktion bereitgestellt wurde. In diesem Sinne ähnelt es einem MAC. [EMV 4.4 Book 2](https://www.emvco.com/specifications/?post_id=80377) definiert drei Aspekte dieser Funktion: Methoden zur Schlüsselableitung (bekannt als Common Session Key — CSK) zur Generierung einmaliger Transaktionsschlüssel, eine Mindestnutzlast und Methoden zur Generierung einer Antwort (ARPC).

 Einzelne Kartensysteme können zusätzliche Transaktionsfelder angeben, die integriert werden sollen, oder die Reihenfolge, in der diese Felder angezeigt werden. Es gibt auch andere (allgemein veraltete) schemaspezifische Ableitungsschemata, die an anderer Stelle in dieser Dokumentation behandelt werden. 

Weitere Informationen finden Sie [VerifyCardValidationData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)im API-Leitfaden.

## Erstellen Sie den Schlüssel
<a name="use-cases-issuers.generalfunctions.arqc.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
                "Key": {
                    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                    "KeyAttributes": {
                        "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                        "KeyClass": "SYMMETRIC_KEY",
                        "KeyAlgorithm": "TDES_2KEY",
                        "KeyModesOfUse": {
                            "Encrypt": false,
                            "Decrypt": false,
                            "Wrap": false,
                            "Unwrap": false,
                            "Generate": false,
                            "Sign": false,
                            "Verify": false,
                            "DeriveKey": true,
                            "NoRestrictions": false
                        }
                    },
                    "KeyCheckValue": "08D7B4",
                    "KeyCheckValueAlgorithm": "ANSI_X9_24",
                    "Enabled": true,
                    "Exportable": true,
                    "KeyState": "CREATE_COMPLETE",
                    "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                    "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00",
                    "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00"
                }
            }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/pw3s6nl62t5ushfk. Das benötigen Sie im nächsten Schritt.

## Generieren Sie einen ARQC
<a name="use-cases-issuers.generalfunctions.arqc.generate"></a>

Der ARQC wird ausschließlich von einer EMV-Karte generiert. Daher bietet AWS Payment Cryptography keine Möglichkeit, eine solche Nutzlast zu generieren. Zu Testzwecken stehen online eine Reihe von Bibliotheken zur Verfügung, die eine entsprechende Nutzlast sowie bekannte Werte generieren können, die im Allgemeinen von den verschiedenen Schemata bereitgestellt werden. 

## Validieren Sie einen ARQC
<a name="use-cases-issuers.generalfunctions.arqc.verify"></a>

**Example**  
Wenn AWS Payment Cryptography den ARQC validieren kann, wird ein http/200 zurückgegeben. Ein ARPC (Antwort) kann optional bereitgestellt und nach der Validierung des ARQC in die Antwort aufgenommen werden.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram 61EDCC708B4C97B4 --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --major-key-derivation-mode EMV_OPTION_A --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000000000000000000000000000000000000000000000000000008000000000000000 --session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", "PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}' --auth-response-attributes='{"ArpcMethod2":{"CardStatusUpdate":"12345678"}}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
    "KeyCheckValue": "08D7B4",
    "AuthResponseValue":"2263AC85"
}
```

# Generieren und verifizieren Sie einen EMV-MAC
<a name="use-cases-issuers.generalfunctions.emvmac"></a>

EMV MAC ist MAC, der die Eingabe eines von EMV abgeleiteten Schlüssels verwendet und dann anhand der resultierenden Daten einen ISO9797 -3-MAC-Wert (Retail) durchführt. EMV MAC wird in der Regel verwendet, um Befehle an eine EMV-Karte zu senden, z. B. Entsperrskripte. 

**Anmerkung**  
 AWS Die Zahlungskryptografie validiert den Inhalt des Skripts nicht. Einzelheiten zu bestimmten Befehlen, die Sie hinzufügen sollten, finden Sie in Ihrem System oder im Kartenhandbuch. 

Weitere Informationen finden Sie [MacAlgorithmEmv](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_MacAlgorithmEmv.html)im API-Leitfaden.

**Topics**
+ [Erstellen Sie den Schlüssel](#use-cases-issuers.generalfunctions.emvmac.setup)
+ [Generieren Sie einen EMV-MAC](#use-cases-issuers.generalfunctions.emvmac.generate)

## Erstellen Sie den Schlüssel
<a name="use-cases-issuers.generalfunctions.emvmac.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

Die Antwort gibt die Anforderungsparameter zurück, einschließlich eines ARN für nachfolgende Aufrufe sowie eines Key Check Value (KCV).

```
{
        "Key": {
            "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
            "KeyAttributes": {
                "KeyUsage": "TR31_E2_EMV_MKEY_INTEGRITY",
                "KeyClass": "SYMMETRIC_KEY",
                "KeyAlgorithm": "TDES_2KEY",
                "KeyModesOfUse": {
                    "Encrypt": false,
                    "Decrypt": false,
                    "Wrap": false,
                    "Unwrap": false,
                    "Generate": false,
                    "Sign": false,
                    "Verify": false,
                    "DeriveKey": true,
                    "NoRestrictions": false
                }
            },
            "KeyCheckValue": "08D7B4",
            "KeyCheckValueAlgorithm": "ANSI_X9_24",
            "Enabled": true,
            "Exportable": true,
            "KeyState": "CREATE_COMPLETE",
            "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
            "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00",
            "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00"
        }
    }
```

Notieren Sie sich den Wert, der den Schlüssel darstellt`KeyArn`, zum Beispiel *arn:aws:payment-cryptography:us-east* - 2:111122223333:key/pw3s6nl62t5ushfk. Das benötigen Sie im nächsten Schritt.

## Generieren Sie einen EMV-MAC
<a name="use-cases-issuers.generalfunctions.emvmac.generate"></a>

Der typische Ablauf besteht darin, dass ein Backend-Prozess ein EMV-Skript generiert (z. B. Card Unlock), es mit diesem Befehl signiert (der einen einmaligen Schlüssel ableitet, der für eine bestimmte Karte spezifisch ist) und dann den MAC zurückgibt. Anschließend wird der Befehl \$1 MAC zur Anwendung an die Karte gesendet. Das Senden des Befehls an die Karte fällt nicht in den Anwendungsbereich der AWS Zahlungskryptografie. 

**Anmerkung**  
 Dieser Befehl ist für Befehle vorgesehen, bei denen keine verschlüsselten Daten (z. B. PIN) gesendet werden. EMV Encrypt kann mit diesem Befehl kombiniert werden, um verschlüsselte Daten an das Aussteller-Skript anzuhängen, bevor dieser Befehl aufgerufen wird 

Nachrichtendaten  
Zu den Nachrichtendaten gehören der APDU-Header und der Befehl. Dies kann zwar je nach Implementierung variieren, aber dieses Beispiel ist der APDU-Header für Unblock (84 24 00 00 08), gefolgt von ATC (0007) und dann ARQC der vorherigen Transaktion (999E57 F47CACE). FD0 Der Dienst validiert den Inhalt dieses Felds nicht.

Modus zur Ableitung von Sitzungsschlüsseln  
Dieses Feld definiert, wie der Sitzungsschlüssel generiert wird. EMV\$1COMMON\$1SESSION\$1KEY wird im Allgemeinen für die neuen Implementierungen verwendet, während EMV2000 \$1 AMEX \$1 MASTERCARD\$1SESSION\$1KEY \$1 VISA ebenfalls verwendet werden kann. 

MajorKeyDerivationMode  
EMV definiert Modus A, B oder C. Modus A ist am gebräuchlichsten, und Zahlungskryptografie unterstützt derzeit Modus A oder Modus B. AWS 

PAN  
Die Kontonummer ist in der Regel im Chipfeld 5A oder ISO8583 Feld 2 verfügbar, kann aber auch aus dem Kartensystem abgerufen werden.

PSN  
Die Kartensequenznummer. Falls nicht verwendet, geben Sie 00 ein.

SessionKeyDerivationValue  
Dies sind die Ableitungsdaten pro Sitzung. Je nach Ableitungsschema kann es sich entweder um den letzten ARQC (ApplicationCryptogram) aus Feld 9F26 oder um den letzten ATC aus 9F36 handeln.

Padding  
Die Polsterung wird automatisch angewendet und verwendet die 9797-1-Padding-Methode 2. ISO/IEC 

**Example**  

```
$ aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
```

```
{
"KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
"KeyCheckValue": "08D7B4",
"Mac":"5652EEDF83EA0D84"
}
```

# Generieren Sie EMV-MAC für die PIN-Änderung
<a name="use-cases-issuers.generalfunctions.emvpinchange"></a>

Die EMV-PIN-Änderung kombiniert zwei Vorgänge: das Generieren eines MAC für ein Aussteller-Skript und das Verschlüsseln einer neuen PIN für die Offline-PIN-Änderung auf einer EMV-Chipkarte. Dieser Befehl wird nur in bestimmten Ländern benötigt, in denen die PIN auf der Chipkarte gespeichert ist (dies ist in europäischen Ländern üblich). Dies wird häufig verwendet, wenn ein Karteninhaber seine PIN ändern muss und die neue PIN zusammen mit einem MAC sicher auf die Karte übertragen werden muss, um die Echtheit des Befehls zu überprüfen. 

**Anmerkung**  
 Wenn Sie nur Befehle an die Karte senden, aber die PIN nicht ändern müssen, sollten Sie stattdessen die Befehle [ARPC CSU](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyAuthRequestCryptogram.html) oder [Generate EMV MAC](use-cases-issuers.generalfunctions.emvmac.md) verwenden. 

Weitere Informationen finden Sie [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange.html)im API-Leitfaden.

## Generieren Sie EMV-MAC und verschlüsselte PIN für die PIN-Änderung
<a name="use-cases-issuers.generalfunctions.emvpinchange.generate"></a>

Dieser Vorgang erfordert zwei Schlüssel: einen EMV-Integritätsschlüssel (: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY) für die MAC-Generierung und einen EMV-Vertraulichkeitsschlüssel (KeyUsage: \$1E4\$1EMV\$1MKEY\$1CONFIDENTITY) für die PIN-Verschlüsselung. KeyUsage TR31 Der typische Ablauf besteht darin, dass ein Backend-Prozess ein EMV-PIN-Änderungsskript generiert, das sowohl den MAC für das Ausstellerskript als auch die verschlüsselte neue PIN enthält. Der Befehl und die verschlüsselte PIN werden dann an die Karte gesendet, um die Offline-PIN zu aktualisieren. Das Senden des Befehls an die Karte fällt nicht in den Anwendungsbereich der AWS Zahlungskryptografie. 

Nachrichtendaten  
Zu den Nachrichtendaten gehört der APDU-Befehl für das Aussteller-Skript. Der Dienst validiert den Inhalt dieses Felds nicht.

Neuer verschlüsselter PIN-Block  
Der neue verschlüsselte PIN-Block, der an die Karte gesendet wird. Dieser muss als verschlüsselter Wert unter Verwendung eines PIN-Verschlüsselungsschlüssels bereitgestellt werden.

Neue PIN, PEK-Kennung  
Der Schlüssel, mit dem die neue PIN verschlüsselt wurde, bevor sie an diese API übergeben wird.

Integritätsschlüssel für sicheres Messaging  
Der EMV-Integritätsschlüssel (KeyUsage: TR31 \$1E2\$1EMV\$1MKEY\$1INTEGRITY), der für die MAC-Generierung verwendet wird.

Schlüssel zur Vertraulichkeit von Secure Messaging  
Der EMV-Vertraulichkeitsschlüssel (KeyUsage: TR31 \$1E4\$1EMV\$1MKEY\$1CONFIDENTITY), der für die PIN-Verschlüsselung verwendet wird.

MajorKeyDerivationMode  
EMV definiert Modus A, B oder C. Modus A ist am gebräuchlichsten, und Zahlungskryptografie unterstützt derzeit Modus A oder Modus B. AWS 

Mode  
Der Verschlüsselungsmodus, typischerweise CBC für PIN-Änderungen.

PAN  
Die Kontonummer ist in der Regel im Chipfeld 5A oder ISO8583 Feld 2 verfügbar, kann aber auch aus dem Kartensystem abgerufen werden.

PanSequenceNumber  
Die Kartensequenznummer. Falls nicht verwendet, geben Sie 00 ein.

ApplicationCryptogram  
Dies sind die Ableitungsdaten pro Sitzung, normalerweise der letzte ARQC aus Feld 9F26.

PinBlockLengthPosition  
Gibt an, wo die PIN-Blocklänge kodiert ist. In der Regel auf NONE gesetzt. Überprüfen Sie die Spezifikationen Ihres Kartenschemas, wenn Sie sich nicht sicher sind.

PinBlockPaddingType  
Gibt den Polstertyp für den PIN-Block an. In der Regel auf NO\$1PADDING eingestellt. Überprüfen Sie die Spezifikationen Ihres Kartenschemas, wenn Sie sich nicht sicher sind.

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