summaryrefslogtreecommitdiffstats
path: root/crypto/drbg.c
diff options
context:
space:
mode:
authorStephan Mueller <smueller@chronox.de>2016-11-18 12:27:56 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2016-11-21 22:50:24 +0800
commit8ff4c191d1123ea1ba610dbc25e93568d9e7756c (patch)
tree534f7ab1c873752c3d9c06b34462a25a0ec8e770 /crypto/drbg.c
parent18f47f5e4737d5466a0e2774349bbb58d5512676 (diff)
downloadlinux-8ff4c191d1123ea1ba610dbc25e93568d9e7756c.tar.gz
linux-8ff4c191d1123ea1ba610dbc25e93568d9e7756c.tar.bz2
linux-8ff4c191d1123ea1ba610dbc25e93568d9e7756c.zip
crypto: drbg - advance output buffer pointer
The CTR DRBG segments the number of random bytes to be generated into 128 byte blocks. The current code misses the advancement of the output buffer pointer when the requestor asks for more than 128 bytes of data. In this case, the next 128 byte block of random numbers is copied to the beginning of the output buffer again. This implies that only the first 128 bytes of the output buffer would ever be filled. The patch adds the advancement of the buffer pointer to fill the entire buffer. 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.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/crypto/drbg.c b/crypto/drbg.c
index fb33f7d3b052..9a95b619e19a 100644
--- a/crypto/drbg.c
+++ b/crypto/drbg.c
@@ -1766,6 +1766,7 @@ static int drbg_kcapi_sym_ctr(struct drbg_state *drbg,
init_completion(&drbg->ctr_completion);
outlen -= cryptlen;
+ outbuf += cryptlen;
}
return 0;