[openssl] master update

bernd.edlinger at hotmail.de bernd.edlinger at hotmail.de
Wed May 20 12:48:52 UTC 2020


The branch master has been updated
       via  ddec332f329a432a45c0131d83f3bfb46114532b (commit)
      from  a7ad40c502d3484e0a574e121cfba70631f224bf (commit)


- Log -----------------------------------------------------------------
commit ddec332f329a432a45c0131d83f3bfb46114532b
Author: Bernd Edlinger <bernd.edlinger at hotmail.de>
Date:   Sun May 17 02:08:56 2020 +0200

    Fix egd and devrandom source configs
    
    ./config --with-rand-seed=egd
    
    need to defines OPENSSL_RAND_SEED_EGD and OPENSSL_NO_EGD
    so get rid of OPENSSL_NO_EGD (compiles but I did not really test EGD)
    
    ./config --with-rand-seed=devrandom
    
    does not work since wait_random_seeded works under the assumption
    that OPENSSL_RAND_SEED_GETRANDOM is supposed to be enabled as well,
    that is usually the case, but not when only devrandom is enabled.
    Skip the wait code in this special case.
    
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/11848)

-----------------------------------------------------------------------

Summary of changes:
 Configure               | 3 +++
 crypto/rand/rand_unix.c | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Configure b/Configure
index 7738073455..1a22f47822 100755
--- a/Configure
+++ b/Configure
@@ -1124,6 +1124,9 @@ if (scalar(@seed_sources) == 0) {
     print "Using os-specific seed configuration\n";
     push @seed_sources, 'os';
 }
+if (scalar(grep { $_ eq 'egd' } @seed_sources) > 0) {
+    delete $disabled{'egd'};
+}
 if (scalar(grep { $_ eq 'none' } @seed_sources) > 0) {
     die "Cannot seed with none and anything else" if scalar(@seed_sources) > 1;
     warn <<_____ if scalar(@seed_sources) == 1;
diff --git a/crypto/rand/rand_unix.c b/crypto/rand/rand_unix.c
index 081ffca908..869c2d04dd 100644
--- a/crypto/rand/rand_unix.c
+++ b/crypto/rand/rand_unix.c
@@ -391,7 +391,8 @@ static struct random_device {
 } random_devices[OSSL_NELEM(random_device_paths)];
 static int keep_random_devices_open = 1;
 
-#   if defined(__linux) && defined(DEVRANDOM_WAIT)
+#   if defined(__linux) && defined(DEVRANDOM_WAIT) \
+       && defined(OPENSSL_RAND_SEED_GETRANDOM)
 static void *shm_addr;
 
 #    if !defined(FIPS_MODULE)
@@ -474,7 +475,7 @@ static int wait_random_seeded(void)
     }
     return seeded;
 }
-#   else /* defined __linux */
+#   else /* defined __linux && DEVRANDOM_WAIT && OPENSSL_RAND_SEED_GETRANDOM */
 static int wait_random_seeded(void)
 {
     return 1;


More information about the openssl-commits mailing list