* configure.ac (random_modules): Reworked the code to select the
authorWerner Koch <wk@gnupg.org>
Fri, 30 Aug 2002 16:36:08 +0000 (16:36 +0000)
committerWerner Koch <wk@gnupg.org>
Fri, 30 Aug 2002 16:36:08 +0000 (16:36 +0000)
random module.  Define USE_ALL_RANDOM_MODULES for value all.

ChangeLog
NEWS
README
THANKS
TODO
configure.ac

index 0a3fc0e..6805558 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-08-29  Werner Koch  <wk@gnupg.org>
+
+       * configure.ac (random_modules): Reworked the code to select the
+       random module.  Define USE_ALL_RANDOM_MODULES for value all.
+
 2002-08-27  David Shaw  <dshaw@jabberwocky.com>
 
        * configure.ac: Check type of mode_t.
diff --git a/NEWS b/NEWS
index 8e0163c..7a565e7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -28,8 +28,13 @@ Noteworthy changes in version 1.1.92
 
     * The default configuration file is now ~/.gnupg/gpg.conf.  If an
       old ~/.gnupg/options is found it will still be used.  This
-      change is required to have more consistent naming scheme with
-      forthcoming tool.
+      change is required to have a more consistent naming scheme with
+      forthcoming tools.
+
+    * The configure option --with-static-rnd=auto allows to build gpg
+      with all available entropy gathering modules included.  At
+      runtime the best usable one will be selected from the list
+      linux, egd, unix. 
 
 
 Noteworthy changes in version 1.1.91 (2002-08-04)
diff --git a/README b/README
index 53f7468..624e49d 100644 (file)
--- a/README
+++ b/README
                     linux - Use the module which accesses /dev/random.
                             This is the first choice and the default one
                             for GNU/Linux or *BSD.
-
+                      auto - Compile linux, egd and unix in and 
+                             automagically select at runtime.
+  
     --with-egd-socket=<name>
                      This is only used when EGD is used as random
                      gatherer. GnuPG uses by default "~/.gnupg/entropy"
diff --git a/THANKS b/THANKS
index 54a9058..5b8fbe9 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -36,6 +36,7 @@ Daniel Resare            daniel@resare.com
 Dave Dykstra              dwd@bell-labs.com
 David C Niemi              niemi@tuxers.net
 David Champion             dgc@uchicago.edu
+David D. Scribner          dscribner@bigfoot.com
 David Ellement            ellement@sdd.hp.com
 David Hallinan            hallinan@rtd.com
 David Hollenberg           dhollen@ISI.EDU
diff --git a/TODO b/TODO
index eca5200..8ce3aaa 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,9 +5,6 @@
   * Check for consistent spelling of user ID, key ID etc.
     Replace "user id not found" in getkey.c by "no valid user ID found".
  
-  * Add remarks to the man page about OpenPGP OPTIONAL algorithms and
-    issue warnings when such an algorithm is used (disabled by expert modus?)
-
   * Return status information even when an imported key is already
     stored.  This is useful for GPGME's detailed info function.
 
@@ -29,9 +26,6 @@
 
   * Check the changes to the gpg random gatherer on all W32 platforms.
 
-  * Put a note into readme.w32 that there is a man page and a options
-    file;  write the registry stuff in regedit format.
-
   * Show more info does not work from edit->trust
 
   * set default charset from nl_langinfo.
@@ -43,8 +37,6 @@
     it's end and allow for multiple signature for one message.  And
     add a real grammar to the code in mainproc.c
 
-  * Option to warn when a non MDC message is decrypted?
-
   * If there is no secure memory, allocate more memory for the secure
     memory block or do it in all cases.
 
   * Add option to put the list of recipients (from the encryption
     layer) into the signatures notation data.
 
-  * With option -i prompt before adding a key to the keyring and show some
-    info what we are about to add.
-
   * --disable-asm should still assemble _udiv_qrnnd when needed
 
   * Get new assembler stuff from gmp 3.1
 
-  * Use new-format headers for compressed packets.
-    The advantage is that a garbled zip files can be better detected.
   * use DEL and ^H for erasing the previous character (util/ttyio.c).
     or better readline.
 
-  * preferences of hash algorithms are not yet used.
-
   * add test cases for invalid data (scrambled armor or other random data)
 
   * add checking of armor trailers.  Try to detect garbled header lines.
   * cat foo | gpg --sign | gpg --list-packets
     Does not list the signature packet.
 
-  * Replace wording "It is NOT certain that the key belongs to its owner..."
-    with "It is NOT certain that the key belongs to the person named in the
-    user ID..." (or similar but clearer message).
-
-
 Things we won't do
 ------------------
 
index 11193ba..2dd48bd 100644 (file)
@@ -50,7 +50,7 @@ dnl  Check for random module options
 dnl
 AC_MSG_CHECKING([which random module to use])
 AC_ARG_ENABLE(static-rnd,
-    [  --enable-static-rnd=[egd|unix|linux]  ],
+    [  --enable-static-rnd=[egd|unix|linux|auto]  ],
 [use_static_rnd=$enableval], [use_static_rnd=default] )
 
 if test "$use_static_rnd" = no; then
@@ -61,6 +61,9 @@ case "$use_static_rnd" in
     egd | linux | unix | default )
       AC_MSG_RESULT($use_static_rnd)
       ;;
+    auto )
+      AC_MSG_RESULT(automagically selected at runtime)
+      ;;
     * )
       AC_MSG_RESULT(invalid argument)
       AC_MSG_ERROR(there is no random module rnd$use_static_rnd)
@@ -636,67 +639,64 @@ fi
 dnl
 dnl Figure out the default random module.
 dnl
-static_random_module=""
+random_modules=""
 if test "$use_static_rnd" = default; then
-  if test "$ac_cv_have_dev_random" = yes; then
-      static_random_module="rndlinux"
+     if test "$ac_cv_have_dev_random" = yes; then
+        random_modules="rndlinux"
+     else
+         case "${target}" in
+            *-*-mingw32*|*-*-cygwin*)
+                random_modules="rndw32"
+                ;;
+            i?86-emx-os2|i?86-*-os2*emx)
+                random_modules="rndos2"
+                ;;
+            m68k-atari-mint)
+                random_modules="rndatari"
+                ;;
+            i?86-*-msdosdjgpp*)
+                :
+                ;;
+            *)
+                random_modules="rndunix"
+                ;;
+         esac
+     fi
+else
+  if test "$use_static_rnd" = auto; then
+     random_modules="rndlinux rndegd rndunix"
+     AC_DEFINE(USE_ALL_RANDOM_MODULES, 1, 
+                  [Allow to select random modules at runtime.])
   else
-      case "${target}" in
-          *-*-mingw32*|*-*-cygwin*)
-              static_random_module="rndw32"
-              ;;
-          i?86-emx-os2|i?86-*-os2*emx)
-              static_random_module="rndos2"
-              ;;
-          m68k-atari-mint)
-              static_random_module="rndatari"
-              ;;
-          i?86-*-msdosdjgpp*)
-              :
-              ;;
-          *)
-              static_random_module="rndunix"
-             ;;
-      esac
+     random_modules="rnd$use_static_rnd";
   fi
 fi
-case "$static_random_module" in
-  rndlinux)
-      AC_DEFINE(USE_RNDLINUX,1, 
-                  [Defined if the /dev/random based RNG shoudl be used.])
-        ;;
-  rndunix)
-       AC_DEFINE(USE_RNDUNIX,1, 
+
+if test -z "$random_modules"; then
+   AC_MSG_ERROR(no random module available)
+fi
+print_egd_warning=no
+for rndmod in $random_modules "" ; do
+  case "$rndmod" in
+    rndlinux)
+         AC_DEFINE(USE_RNDLINUX,1, 
+                  [Defined if the /dev/random based RNG should be used.])
+         ;;
+    rndunix)
+         AC_DEFINE(USE_RNDUNIX,1, 
                   [Defined if the default Unix RNG should be used.])
-       AC_MSG_WARN([[
-***
-*** The performance of the UNIX random gatherer module is not very good
-*** and it does not keep the entropy pool over multiple invocations of
-*** GnuPG.  The suggested way to overcome this problem is to use the
-***
-***               Entropy Gathering Daemon (EGD)
-***
-*** which provides a entropy source for the whole system.  It is written
-*** in Perl and available at the GnuPG FTP servers.  For more information
-*** consult the GnuPG webpages:
-***
-***           http://www.gnupg.org/download.html#egd
-***
-*** You may want to run ./configure with --enable-static-rnd=egd to use it.
-***]])
-        ;;
-  rndegd)
-       AC_DEFINE(USE_RNDEGD,1, 
-                  [Defined if the EGD based RNG shoudl be used.])
-        ;;
-  rndw32)
-       AC_DEFINE(USE_RNDW32,1, 
+         print_egd_warning=yes
+          ;;
+    rndegd)
+         AC_DEFINE(USE_RNDEGD,1, 
+                  [Defined if the EGD based RNG should be used.])
+         ;;
+    rndw32)
+         AC_DEFINE(USE_RNDW32,1, 
                   [Defined if the Windows specific RNG should be used.])
         ;;
-   *)
-       AC_MSG_ERROR(no random module available)
-        ;;
-esac
+   esac
+done
 
 dnl setup assembler stuff
 AC_MSG_CHECKING(for mpi assembler functions)
@@ -800,6 +800,28 @@ fi
 
 AC_SUBST(NETLIBS)
 
+
+if test "$print_egd_warning" = yes; then
+  AC_MSG_WARN([[
+***
+*** The performance of the UNIX random gatherer module is not very good
+*** and it does not keep the entropy pool over multiple invocations of
+*** GnuPG.  The suggested way to overcome this problem is to use the
+***
+***               Entropy Gathering Daemon (EGD)
+***
+*** which provides a entropy source for the whole system.  It is written
+*** in Perl and available at the GnuPG FTP servers.  For more information
+*** consult the GnuPG webpages:
+***
+***           http://www.gnupg.org/download.html#egd
+***
+*** You may want to run ./configure with --enable-static-rnd=egd to use it.
+***]])
+fi
+
+
+
 # Note the \\\\ for backslashes.  Autoconf eats one layer, leaving \\
 
 AC_SUBST(GNUPG_LIBEXECDIR,"${libexecdir}/gnupg")