GH367: use random data if seed too short.
authorIsmo Puustinen <ismo.puustinen@intel.com>
Fri, 18 Sep 2015 20:07:23 +0000 (16:07 -0400)
committerRich Salz <rsalz@openssl.org>
Tue, 29 Sep 2015 16:49:16 +0000 (12:49 -0400)
Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
(cherry picked from commit 6f997dc36504d67d1339ceb6bce4ecba673d8568)

crypto/dsa/dsa_gen.c
doc/crypto/DSA_generate_parameters.pod

index d686ab0af77058239d00dec8abf9a9200ac1c5db..defa4994b6eae3f313971f223e9a27e313761034 100644 (file)
@@ -201,7 +201,7 @@ int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,
             if (!BN_GENCB_call(cb, 0, m++))
                 goto err;
 
-            if (!seed_len) {
+            if (!seed_len || !seed_in) {
                 if (RAND_pseudo_bytes(seed, qsize) < 0)
                     goto err;
                 seed_is_random = 1;
index be7c924ff8f971eefa18499b275b8df00971a81c..f24c9c7d447d538f91a77a91979705f5dc9bed83 100644 (file)
@@ -23,7 +23,7 @@ maximum of 1024 bits.
 If B<seed> is B<NULL> or B<seed_len> E<lt> 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>.
+seed is chosen.
 
 DSA_generate_parameters() places the iteration count in
 *B<counter_ret> and a counter used for finding a generator in