From: Ismo Puustinen Date: Fri, 18 Sep 2015 20:07:23 +0000 (-0400) Subject: GH367: use random data if seed too short. X-Git-Tag: OpenSSL_1_0_0t~9 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=63bd50533e42ca1823a92e4ed18485d6b3dea27d;p=oweals%2Fopenssl.git GH367: use random data if seed too short. Signed-off-by: Rich Salz Reviewed-by: Emilia Käsper (cherry picked from commit 6f997dc36504d67d1339ceb6bce4ecba673d8568) --- diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c index 4f55331b2b..f6d7bc4795 100644 --- a/crypto/dsa/dsa_gen.c +++ b/crypto/dsa/dsa_gen.c @@ -183,8 +183,9 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits, if (!BN_GENCB_call(cb, 0, m++)) goto err; - if (!seed_len) { - RAND_pseudo_bytes(seed, qsize); + if (!seed_len || !seed_in) { + if (RAND_pseudo_bytes(seed, qsize) < 0) + goto err; seed_is_random = 1; } else { seed_is_random = 0; diff --git a/doc/crypto/DSA_generate_parameters.pod b/doc/crypto/DSA_generate_parameters.pod index be7c924ff8..f24c9c7d44 100644 --- a/doc/crypto/DSA_generate_parameters.pod +++ b/doc/crypto/DSA_generate_parameters.pod @@ -23,7 +23,7 @@ maximum of 1024 bits. If B is B or B E 20, the primes will be generated at random. Otherwise, the seed is used to generate them. If the given seed does not yield a prime q, a new random -seed is chosen and placed at B. +seed is chosen. DSA_generate_parameters() places the iteration count in *B and a counter used for finding a generator in