Criptografia do lado do cliente
O AWS Encryption SDK inclui uma operação de API para executar criptografia de envelope usando uma chave KMS. Para obter recomendações completas e detalhes de uso, consulte a documentação relacionada. Os aplicativos do cliente podem usar o AWS Encryption SDK para executar criptografia de envelope usando o AWS KMS.
// Instantiate the SDK final AwsCrypto crypto = new AwsCrypto(); // Set up the KmsMasterKeyProvider backed by the default credentials final KmsMasterKeyProvider prov = new KmsMasterKeyProvider(keyId); // Do the encryption final byte[] ciphertext = crypto.encryptData(prov, message);
A aplicação do cliente pode executar as etapas a seguir:
Uma solicitação é feita sob uma chave KMS para uma nova chave de dados. Uma chave de dados criptografada e uma versão em texto simples da chave de dados são retornados.
No AWS Encryption SDK, a chave de dados de texto simples é usada para criptografar a mensagem. Então, a chave de dados de texto simples é excluída da memória.
A chave de dados e mensagem criptografadas são combinadas em uma única matriz de bytes de texto cifrado.

A mensagem criptografada com envelope pode ser descriptografada usando a funcionalidade de descriptografia para obter a mensagem criptografada originalmente.
final AwsCrypto crypto = new AwsCrypto(); final KmsMasterKeyProvider prov = new KmsMasterKeyProvider(keyId); // Decrypt the data final CryptoResult<byte[], KmsMasterKey> res = crypto.decryptData(prov, ciphertext); // We need to check the KMS key to ensure that the // assumed key was used if (!res.getMasterKeyIds().get(0).equals(keyId)) { throw new IllegalStateException("Wrong key id!"); } byte[] plaintext = res.getResult();
O AWS Encryption SDK analisa a mensagem criptografada com envelope para obter a chave de dados criptografada e fazer uma solicitação para o AWS KMS descriptografar a chave de dados.
O AWS Encryption SDK recebe a chave de dados de texto simples do AWS KMS.
A chave de dados é, então, usada para descriptografar a mensagem, com retorno do texto simples inicial.
