summaryrefslogtreecommitdiff
path: root/crypto/drbg.c
diff options
context:
space:
mode:
authorStephan Mueller <smueller@chronox.de>2015-04-17 14:54:08 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2015-04-21 09:14:38 +0800
commita73b9524f62b17b2f24e8ed3063f398a1412eeae (patch)
tree6853b0aa7ad72665b52849cb952af225ca7eba46 /crypto/drbg.c
parentd6648305e24043502a8b44b913ca32bef4884674 (diff)
downloadlinux-crypto-a73b9524f62b17b2f24e8ed3063f398a1412eeae.tar.gz
linux-crypto-a73b9524f62b17b2f24e8ed3063f398a1412eeae.zip
cryoto: drbg - clear all temporary memory
The buffer uses for temporary data must be cleared entirely. In AES192 the used buffer is drbg_statelen(drbg) + drbg_blocklen(drbg) as documented in the comment above drbg_ctr_df. This patch ensures that the temp buffer is completely wiped. Signed-off-by: Stephan Mueller <smueller@chronox.de> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/drbg.c')
-rw-r--r--crypto/drbg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/drbg.c b/crypto/drbg.c
index b69409cb..8d2944fa 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -487,7 +487,7 @@ static int drbg_ctr_df(struct drbg_state *drbg,
out:
memset(iv, 0, drbg_blocklen(drbg));
- memset(temp, 0, drbg_statelen(drbg));
+ memset(temp, 0, drbg_statelen(drbg) + drbg_blocklen(drbg));
memset(pad, 0, drbg_blocklen(drbg));
return ret;
}