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:48:43 +0000 (12:48 -0400)
Signed-off-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Emilia Käsper <emilia@openssl.org>
crypto/dsa/dsa_gen.c
doc/crypto/DSA_generate_parameters.pod

index 5a328aaab5b408f6036c738c81738ee2e6c4c55c..9d3b59e0479be3344a4b1a3d5be2e35092d8b1a1 100644 (file)
@@ -203,7 +203,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 16a67f22b0c4233524d22ce1815821c465bd4ebf..b1a4d201b75cd15aabd230cccf932cd244f174ee 100644 (file)
@@ -29,7 +29,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_ex() places the iteration count in
 *B<counter_ret> and a counter used for finding a generator in