See ChangeLog: Sat Jan 9 16:02:23 CET 1999 Werner Koch
authorWerner Koch <wk@gnupg.org>
Sat, 9 Jan 1999 15:06:57 +0000 (15:06 +0000)
committerWerner Koch <wk@gnupg.org>
Sat, 9 Jan 1999 15:06:57 +0000 (15:06 +0000)
ChangeLog
cipher/ChangeLog
cipher/Makefile.am
cipher/md.c
cipher/random.c
cipher/rndunix.c
configure.in
mpi/ChangeLog
mpi/mpi-bit.c
mpi/mpi-cmp.c

index f7a5f88..45630ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * configure.in: Add a way to statically link rndunix
+
 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): New.
index 347d346..ad7d6f8 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * rndunix.c (gather_random): check for setuid.
+
+       * Makefile.am: Add a way to staically link random modules
+
 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * md.c (md_stop_debug): Do a flush first.
index a27989c..4a71710 100644 (file)
@@ -1,18 +1,18 @@
 ## Process this file with automake to produce Makefile.in
 
-gnupg_extensions = tiger twofish rndunix
-
 INCLUDES =  -I$(top_srcdir)/include -I$(top_srcdir)/intl
 
 noinst_LIBRARIES = libcipher.a
+
+EXTRA_PROGRAMS  = tiger twofish rndunix rndlinux
 if ENABLE_GNUPG_EXTENSIONS
-pkglib_PROGRAMS  = $(gnupg_extensions)
+pkglib_PROGRAMS  = @DYNAMIC_CIPHER_MODS@ @DYNAMIC_RANDOM_MODS@
 else
 pkglib_PROGRAMS  =
 endif
 
-DYNLINK_MOD_CFLAGS = -DIS_MODULE @DYNLINK_MOD_CFLAGS@
 
+DYNLINK_MOD_CFLAGS = -DIS_MODULE @DYNLINK_MOD_CFLAGS@
 
 libcipher_a_SOURCES = cipher.c \
                 pubkey.c       \
@@ -33,7 +33,6 @@ libcipher_a_SOURCES = cipher.c        \
                 random.h       \
                 random.c       \
                 rand-internal.h \
-                rndlinux.c     \
                 rmd.h          \
                 rmd160.c       \
                 sha1.h         \
@@ -43,9 +42,14 @@ libcipher_a_SOURCES = cipher.c       \
                 g10c.c         \
                 smallprime.c
 
+
+EXTRA_libcipher_a_SOURCES = rndlinux.c rndunix.c
 EXTRA_tiger_SOURCES = tiger.c
 EXTRA_twofish_SOURCES = twofish.c
 
+libcipher_a_DEPENDENCIES = @STATIC_RANDOM_OBJS@ @STATIC_CIPHER_OBJS@
+libcipher_a_LIBADD =      @STATIC_RANDOM_OBJS@ @STATIC_CIPHER_OBJS@
+
 
 tiger: $(srcdir)/tiger.c
        `echo $(COMPILE) $(DYNLINK_MOD_CFLAGS) -o tiger $(srcdir)/tiger.c | \
index f7be5e4..6e335db 100644 (file)
@@ -1,5 +1,5 @@
 /* md.c  -  message digest dispatcher
- *     Copyright (C) 1998 Free Software Foundation, Inc.
+ *     Copyright (C) 1998,1999 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
index 6f8a20a..1812467 100644 (file)
@@ -122,13 +122,9 @@ initialize()
   #elif USE_RNDUNIX
     rndunix_constructor();
   #elif USE_RNDW32
-    rndw32_constructor();
   #elif USE_RNDOS2
-    rndos2_constructor();
   #elif USE_RNDATARI
-    rndatari_constructor();
   #elif USE_RNDMVS
-    rndmvs_constructor();
   #endif
 }
 
index c005afb..9e49ebc 100644 (file)
@@ -2,6 +2,7 @@
  *                                                                         *
  *   BeOS Randomness-Gathering Code                                        *
  *   Copyright Peter Gutmann, Paul Kendall, and Chris Wedgwood 1996-1998    *
+ *   Copyright (C) 1998, 1999  Werner Koch
  *                                                                         *
  ****************************************************************************/
 
@@ -678,6 +679,9 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
     size_t n;
 
     if( !gatherer_pid ) {
+       /* make sure we are not setuid */
+       if( getuid() != geteuid() )
+           BUG();
        /* time to start the gatherer process */
        if( pipe( pipedes ) ) {
            g10_log_error("pipe() failed: %s\n", strerror(errno));
index f710486..6fcc58a 100644 (file)
@@ -259,6 +259,48 @@ else
 fi
 
 
+dnl
+dnl Figure how to link the random modules
+dnl
+if test "$ac_cv_have_dev_random" = yes; then
+    AC_DEFINE(USE_RNDLINUX)
+    STATIC_RANDOM_OBJS="rndlinux.o"
+    DYNAMIC_RANDOM_MODS=""
+else
+    case "${target}" in
+        i386--mingw32)
+            AC_DEFINE(USE_RNDW32)
+            STATIC_RANDOM_OBJS=""
+            DYNAMIC_RANDOM_MODS=""
+            ;;
+        m68k-atari-mint)
+            AC_DEFINE(USE_RNDATARI)
+            STATIC_RANDOM_OBJS=""
+            DYNAMIC_RANDOM_MODS=""
+            ;;
+        *)
+            AC_DEFINE(USE_RNDUNIX)
+            STATIC_RANDOM_OBJS="rndunix.o"
+            DYNAMIC_RANDOM_MODS=""
+           ;;
+    esac
+fi
+
+AC_SUBST(STATIC_RANDOM_OBJS)
+AC_SUBST(DYNAMIC_RANDOM_MODS)
+
+
+dnl
+dnl Figure how to link the cipher modules
+dnl
+dnl (form now these are only dynamic)
+STATIC_CIPHER_OBJS=""
+DYNAMIC_CIPHER_MODS="twofish tiger"
+AC_SUBST(STATIC_CIPHER_OBJS)
+AC_SUBST(DYNAMIC_CIPHER_MODS)
+
+
+
 dnl setup assembler stuff
 AC_MSG_CHECKING(for mpi assembler functions)
 if test -f $srcdir/mpi/config.links ; then
index 9d79660..2a49d40 100644 (file)
@@ -1,3 +1,7 @@
+Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * mpi-cmp.c (mpi_cmp_ui): Normalized the arg.
+
 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * mpi-bit.c (mpi_normalize): New.
index 227a929..00aa5d0 100644 (file)
@@ -1,5 +1,5 @@
 /* mpi-bit.c  -  MPI bit level fucntions
- *     Copyright (C) 1998 Free Software Foundation, Inc.
+ *     Copyright (C) 1998, 1999 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
index 3c3c76b..2a6cdbf 100644 (file)
@@ -1,5 +1,5 @@
 /* mpi-cmp.c  -  MPI functions
- *     Copyright (C) 1998 Free Software Foundation, Inc.
+ *     Copyright (C) 1998, 1999 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -28,6 +28,7 @@ mpi_cmp_ui( MPI u, unsigned long v )
 {
     mpi_limb_t limb = v;
 
+    mpi_normalize( u );
     if( !u->nlimbs && !limb )
        return 0;
     if( u->sign )