

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Validação do KEK
<a name="as2805.kekvalidation"></a>

![Exemplo de diagrama de rede de alto nível para aplicativos de PIN usando criptografia AWS de pagamento](http://docs.aws.amazon.com/pt_br/payment-cryptography/latest/userguide/images/as2805/kek_validation.png)


Quando seu serviço (node1) se conecta ao node2, cada lado garantirá que eles estejam usando o mesmo KEK para operações subsequentes usando um processo chamado KEK Validation. 

**1. Etapas para validar a primeira chave**

**1.1 Receber KRs**  
O Node2 gerará um KRs e o enviará para você como parte do processo de login. Eles podem usar criptografia AWS de pagamento para gerar esse valor ou outra solução.

**1.2 Gerar resposta de validação KEK**  
Seu nó gerará uma resposta de validação KEK com entradas como KEK (r) e as KRs fornecidas na etapa 1.  

**Example**  

```
cat >> generate-kek-validation-response.json
{
    "KekValidationType": {
        "KekValidationResponse": {
            "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
        }
    },
    "RandomKeySendVariantMask": "VARIANT_MASK_82",
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"
}
```

```
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-response.json
```

```
{
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza",
 "KeyCheckValue": "0A3674",
 "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB",
 "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
}
```

**1.3 Retorno calculado KRr**  
Retorne o calculado KRr para node2. Esse nó o comparará com o valor calculado da etapa 1.

**2. Etapas para validar a segunda chave**

**2.1 Gerar KRr e KRs**  
Seu nó gerará um valor aleatório e uma cópia invertida (revertida) desse valor usando criptografia de AWS pagamento. O serviço produzirá esses dois valores agrupados pelo (s) KEK (s). Eles são conhecidos como KR (s) e KR (r).  

**Example**  

```
cat >> generate-kek-validation-request.json 
{
    "KekValidationType": {
        "KekValidationRequest": {
            "DeriveKeyAlgorithm": "TDES_2KEY"
        }
    },
"RandomKeySendVariantMask": "VARIANT_MASK_82",
    "KeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv"
}
```

```
$ aws payment-cryptography-data generate-as2805-kek-validation --cli-input-json file://generate-kek-validation-request.json
```

```
{
 "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/rhfm6tenpxapkmrv",
 "KeyCheckValue": "DC1081",
 "RandomKeyReceive": "A4B7E249C40C98178C1B856DB7FB76EB",
 "RandomKeySend": "9217DC67B8763BABCFDF3DADFCD0F84A"
}
```

**2.2 Enviar KRs para o node2**  
Envie o KRs para o node2. Guarde o KRr para validação posterior.

**2.3 O Node2 gera uma resposta de validação KEK**  
O Node2 usa o KEKr e KRs, gera o KRr e o envia de volta ao seu serviço.

**2.4 Validar a resposta**  
Compare KRr a etapa 1 com o valor retornado da etapa 3. Se coincidirem, prossiga.