Symbolically clear the round keys after aes256gcm_(en|de)crypt()

Fixes #617
This commit is contained in:
Frank Denis
2017-11-05 23:46:55 +01:00
parent 820bf58b93
commit 1947a49020
@@ -855,12 +855,16 @@ crypto_aead_aes256gcm_encrypt(unsigned char *c,
const unsigned char *k)
{
CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx;
int ret;
crypto_aead_aes256gcm_beforenm(&ctx, k);
return crypto_aead_aes256gcm_encrypt_afternm
ret = crypto_aead_aes256gcm_encrypt_afternm
(c, clen_p, m, mlen, ad, adlen, nsec, npub,
(const crypto_aead_aes256gcm_state *) &ctx);
sodium_memzero(ctx, sizeof ctx);
return ret;
}
int
@@ -895,12 +899,16 @@ crypto_aead_aes256gcm_decrypt(unsigned char *m,
const unsigned char *k)
{
CRYPTO_ALIGN(16) crypto_aead_aes256gcm_state ctx;
int ret;
crypto_aead_aes256gcm_beforenm(&ctx, k);
return crypto_aead_aes256gcm_decrypt_afternm
ret = crypto_aead_aes256gcm_decrypt_afternm
(m, mlen_p, nsec, c, clen, ad, adlen, npub,
(const crypto_aead_aes256gcm_state *) &ctx);
sodium_memzero(ctx, sizeof ctx);
return ret;
}
int