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á.
Criptografando novamente um objeto criptografado
Um texto cifrado de cliente existente criptografado em uma chave KMS pode ser criptografado novamente para outra chave KMS por meio de um comando reencrypt. O comando Reencrypt criptografa dados no servidor com uma nova chave KMS sem expor o texto simples dos dados no lado do cliente. Primeiro os dados são descriptografados e, depois, criptografados.
Veja, a seguir, a sintaxe de solicitação.
{ "CiphertextBlob": "blob", "DestinationEncryptionContext": { "string" : "string" }, "DestinationKeyId": "string", "GrantTokens": ["string"], "SourceKeyId": "string", "SourceEncryptionContext": { "string" : "string"} }
A solicitação aceita os dados a seguir no formato JSON.
- CiphertextBlob
-
Texto cifrado dos dados a serem criptografados novamente.
- DestinationEncryptionContext
-
(Opcional) Contexto de criptografia a ser usado quando os dados são recriptografados.
- DestinationKeyId
-
Identificador de chave da chave usada para criptografar novamente os dados.
- GrantTokens
-
(Opcional) Uma lista de tokens de concessão que representam concessões que fornecem permissões para executar a descriptografia.
- SourceKeyId
-
(Opcional) Identificador de chave da chave usada para descriptografar os dados.
- SourceEncryptionContext
-
(Opcional) Contexto de criptografia usado para criptografar e descriptografar os dados especificados no parâmetro
CiphertextBlob
.
O processo combina as operações de descriptografia e criptografia das descrições anteriores: o texto cifrado do cliente é descriptografado sob o HBK inicial referenciado pelo texto cifrado do cliente para o HBK atual sob a chave KMS pretendida. Quando as chaves KMS usadas neste comando são as mesmas, esse comando move o texto cifrado do cliente de uma versão antiga de um HBK para a versão mais recente de um HBK.
Veja, a seguir, a sintaxe de resposta.
{ "CiphertextBlob": blob, "DestinationEncryptionAlgorithm": "string", "KeyId": "string", "SourceEncryptionAlgorithm": "string", "SourceKeyId": "string" }
Se o aplicativo de chamada quiser garantir a autenticidade do texto simples subjacente, ele deverá verificar se o SourceKeyId retornado é o esperado.