From e0d1a2f80a020bd019b017c52e0d724248731788 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Sat, 23 Apr 2011 20:05:19 +0000 Subject: Always return multiple of block length bytes from default DRBG seed callback. Handle case where no multiple of the block size is in the interval [min_len, max_len]. --- crypto/rand/rand_lib.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'crypto') diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index 0e82013163..f3bd4e632e 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -201,6 +201,8 @@ static size_t drbg_get_entropy(DRBG_CTX *ctx, unsigned char **pout, *pout = OPENSSL_malloc(min_len); if (!*pout) return 0; + /* Round up request to multiple of block size */ + min_len = ((min_len + 19) / 20) * 20; if (RAND_SSLeay()->bytes(*pout, min_len) <= 0) { OPENSSL_free(*pout); -- cgit v1.2.3