

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Decrypt
<a name="decrypt-operation"></a>

Una llamada AWS KMS a para descifrar un valor de texto cifrado acepta un texto cifrado con un valor cifrado y un contexto de cifrado. AWS KMS autentica la llamada mediante [solicitudes firmadas con la versión 4 de la AWS firma](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) y extrae del texto cifrado el HBKID de la clave de empaquetado. El HBKID se utiliza para obtener el *EKT* necesario a fin de descifrar el texto cifrado, el ID de clave y la política del ID de clave. La solicitud se autoriza en función de la política de clave, las concesiones que puedan encontrarse presentes y las políticas de IAM asociadas que hagan referencia al ID de clave. La función `Decrypt` es análoga a la función de cifrado.

A continuación se presenta la sintaxis de la solicitud `Decrypt`.

```
{
	"CiphertextBlob": "blob",
	"EncryptionContext": { "string" : "string" }
	"GrantTokens": ["string"]
}
```

A continuación se presentan los parámetros de solicitud.

**CiphertextBlob**  
Texto cifrado, incluido metadatos.

** EncryptionContext**  
(Opcional) El contexto de cifrado. Si esto se especificó en la función `Encrypt`, debe especificarse aquí o se produce un error en la operación de descifrado. Para obtener más información, consulte [Contexto de cifrado](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html) en la *Guía para desarrolladores de AWS Key Management Service *.

**GrantTokens**  
(Opcional) Una lista de tokens de concesión que representan concesiones que proporcionan permisos para realizar el descifrado.

El *texto cifrado* y *EKT* se envían, junto con el contexto de cifrado, a través de una sesión autenticada a un HSM para su descifrado.

El HSM ejecuta lo siguiente:

1. Descifra el *EKT* para obtener la *HBK = Decrypt(DKi, EKT) *.

1. Extrae el nonce *N* desde la estructura del *texto cifrado*.

1. Vuelve a generar una clave de cifrado *K* derivada de AES-GCM de 256 bits desde *HBK* y *N*.

1. Descifra el *texto cifrado* para obtener *plaintext = Decrypt(K, context, ciphertext)*.

El identificador de clave y el texto sin formato resultantes se devuelven al AWS KMS host a través de la sesión segura y, a continuación, a la aplicación del cliente que realiza la llamada a través de una conexión TLS.

A continuación, se muestra la sintaxis de respuesta.

```
{
    "KeyId": "string",
    "Plaintext": blob
}
```

Si la aplicación que llama desea asegurarse de la autenticidad del texto sin formato, debe verificar que el ID de clave devuelto es el esperado.