aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTudor-Dan Ambarus <tudor.ambarus@microchip.com>2018-03-23 06:42:24 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2018-03-30 13:33:14 -0400
commit8f0691fc51e1ce06ccfccb7336320331a9521b9d (patch)
treea5144dd569042089424e9d3f0b00e3e5a2362b37
parentab6815d028f330ae9490bff01689cd234506fe97 (diff)
crypto: talitos - don't leak pointers to authenc keys
In talitos's aead_setkey we save pointers to the authenc keys in a local variable of type struct crypto_authenc_keys and we don't zeroize it after use. Fix this and don't leak pointers to the authenc keys. Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Reviewed-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/talitos.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index 3cfd53a00dc1..7cebf0a6ffbc 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -904,10 +904,12 @@ static int aead_setkey(struct crypto_aead *authenc,
904 ctx->dma_key = dma_map_single(dev, ctx->key, ctx->keylen, 904 ctx->dma_key = dma_map_single(dev, ctx->key, ctx->keylen,
905 DMA_TO_DEVICE); 905 DMA_TO_DEVICE);
906 906
907 memzero_explicit(&keys, sizeof(keys));
907 return 0; 908 return 0;
908 909
909badkey: 910badkey:
910 crypto_aead_set_flags(authenc, CRYPTO_TFM_RES_BAD_KEY_LEN); 911 crypto_aead_set_flags(authenc, CRYPTO_TFM_RES_BAD_KEY_LEN);
912 memzero_explicit(&keys, sizeof(keys));
911 return -EINVAL; 913 return -EINVAL;
912} 914}
913 915