gentleknife / rpms / libgcrypt

Forked from rpms/libgcrypt 3 years ago
Clone

Blame SOURCES/libgcrypt-1.5.3-urandom-only.patch

241384
diff -up libgcrypt-1.5.3/random/random-csprng.c.urandom-only libgcrypt-1.5.3/random/random-csprng.c
241384
--- libgcrypt-1.5.3/random/random-csprng.c.urandom-only	2013-07-25 11:10:04.000000000 +0200
241384
+++ libgcrypt-1.5.3/random/random-csprng.c	2015-04-10 10:31:39.797534903 +0200
241384
@@ -855,7 +855,7 @@ _gcry_rngcsprng_update_seed_file (void)
241384
   if ( !allow_seed_file_update )
241384
     {
241384
       unlock_pool ();
241384
-      log_info(_("note: random_seed file not updated\n"));
241384
+    /*  log_info(_("note: random_seed file not updated\n")); */
241384
       return;
241384
     }
241384
 
241384
@@ -1120,8 +1120,7 @@ getfnc_gather_random (void))(void (*)(co
241384
              enum random_origins, size_t, int);
241384
 
241384
 #if USE_RNDLINUX
241384
-  if ( !access (NAME_OF_DEV_RANDOM, R_OK)
241384
-       && !access (NAME_OF_DEV_URANDOM, R_OK))
241384
+  if (!access (NAME_OF_DEV_URANDOM, R_OK))
241384
     {
241384
       fnc = _gcry_rndlinux_gather_random;
241384
       return fnc;
241384
diff -up libgcrypt-1.5.3/random/rndlinux.c.urandom-only libgcrypt-1.5.3/random/rndlinux.c
241384
--- libgcrypt-1.5.3/random/rndlinux.c.urandom-only	2014-12-12 16:51:56.000000000 +0100
241384
+++ libgcrypt-1.5.3/random/rndlinux.c	2015-04-10 10:34:13.615111926 +0200
241384
@@ -132,7 +132,11 @@ _gcry_rndlinux_gather_random (void (*add
241384
   if (level >= 2)
241384
     {
241384
       if( fd_random == -1 )
241384
-        fd_random = open_device ( NAME_OF_DEV_RANDOM, 1 );
241384
+        /* We try to open /dev/random first but in case the open fails
241384
+           we gracefully retry with /dev/urandom. */
241384
+        fd_random = open_device ( NAME_OF_DEV_RANDOM, 0 );
241384
+        if (fd_random == -1)
241384
+          fd_random = open_device ( NAME_OF_DEV_URANDOM, 1 );
241384
       fd = fd_random;
241384
     }
241384
   else if (level != -1)