Trust stuff works partly.
authorWerner Koch <wk@gnupg.org>
Sat, 24 Jan 1998 16:32:26 +0000 (16:32 +0000)
committerWerner Koch <wk@gnupg.org>
Sat, 24 Jan 1998 16:32:26 +0000 (16:32 +0000)
README
acconfig.h
cipher/random.c
configure.in
mpi/longlong.h
mpi/mpi-bit.c

diff --git a/README b/README
index 55be1b2..1f2879c 100644 (file)
--- a/README
+++ b/README
 
     4) You end up with a binary "g10" in /usr/local/bin
 
+    5) create a directory ".g10" under your hoem directory ("mkdir ~/.g10")
 
 
 
-    Resources
-    ---------
-    G10 needs a directory "~/.g10" to store the default keyrings
-    and other files.
-
-
     Key Generation
     --------------
 
@@ -75,8 +70,9 @@
     good random numbers for prime number generation, it uses a /dev/random
     which will emit only bytes if the kernel can gather enough entropy.
     If you see no progress, you should start some other activities such
-    as mouse moves or a "find /".  Because we have no hardware device
-    to generate random we have to use this method.
+    as mouse moves, "find /" or using the keyboard (on another window).
+    Because we have no hardware device to generate random we have to use
+    this method.
 
     Key generation shows progress by printing different characters to
     stderr:
 
        g10 --sign-key Donald
 
-    To sign the key of of "Donald" with your default userid
+    This let you sign the key of "Donald" with your default userid.
 
        g10 --sign-key -u Karl -u Joe Donald
 
-    To sign the key of of "Donald" with the userids of "Karl" and "Joe".
+    This let you sign the key of of "Donald" with the userids of "Karl"
+    and "Joe".
     All existing signatures are checked, if some are invalid, a menu is
     offered to delete some of them, and the you are asked for every user
     wether you want to sign this key.
 
-    You may remove a signature at any time by usiing the option "--edit-sig",
-    which also asks for the sigs to remove.
+    You may remove a signature at any time using the option "--edit-sig",
+    which asks for the sigs to remove.
 
 
     Sign
     Ditto, but sign the file with the user id "Suttner"
 
 
-
-    Examine a data or key file
-    --------------------------
-
-       g10 --list-packets datafile
-
-    Use this to list the contents of a data file. If the file is encrypted
-    you are asked for the passphrase, so that G10 is able to look at the
-    inner structure of a encrypted packet.
-
-
     Batch mode
     ----------
     If you use the option "--batch", G10 runs in non-interactive mode and
     you can use the option "--passhrase-fd n", which works like PGPs
     PGPPASSFD.
 
-    Batch mode also causes PGP to terminate as soon as a BAD signature is
+    Batch mode also causes G10 to terminate as soon as a BAD signature is
     detected.
 
 
     stderr to get detailed informations about the errors.
 
 
+    Esoteric commands
+    -----------------
+
+       g10 --list-packets datafile
+
+    Use this to list the contents of a data file. If the file is encrypted
+    you are asked for the passphrase, so that G10 is able to look at the
+    inner structure of a encrypted packet.
+
+       --quick-random
+
+    Do not use the stroing random generator but a faster one.  This can be
+    used to generate keys for tests; those are marked as insecure.
+
+       --list-trustdb
+
+    List the contents of the trustdb in a human readable format
+
+       --list-trustdb  <usernames>
+
+    List the tree of certificates for the given usernames
+
+       --list-trust-path  depth  username
+
+    List the possible trust paths for the given username, up to the specified
+    depth.  If depth is negative, duplicate introducers are not listed,
+    because those would increase the trust probabilty only minimal.
+    (you must use the special option "--" to stop option parsing when
+     using a negative number)
+
+       --print-mds  filenames
+
+    List all available message digest values for the fiven filenames
+
+       --gen-prime n
+
+    Generate and print a simple prime number of size n
+
+       --gen-prime n q
+
+    Generate a prime number suitable for ElGamal signatures of size n with
+    a q as largest primefactor of n-1.
+
+       --gen-prime n q 1
+
+    Ditto, but calculate a generator too.
+
+
+    For more options/commands see the file g10/OPTIONS.
+
 
     Debug Flags
     -----------
          32    memory allocation stuff
          64    caching
          128   show memory statistics at exit
-
+         256   trust verification stuff
 
 
     Other Notes
index 113ec9f..3f83ef1 100644 (file)
 @BOTTOM@
 
 
+/* The AC_CHECK_SIZEOF() fails for some machines.
+ * we provide some fallback values here */
+#if !SIZEOF_UNSIGNED_SHORT
+  #undef SIZEOF_UNSIGNED_SHORT
+  #define SIZEOF_UNSIGNED_SHORT 2
+#endif
+#if !SIZEOF_UNSIGNED_INT
+  #undef SIZEOF_UNSIGNED_INT
+  #define SIZEOF_UNSIGNED_INT 4
+#endif
+#if !SIZEOF_UNSIGNED_LONG
+  #undef SIZEOF_UNSIGNED_LONG
+  #define SIZEOF_UNSIGNED_LONG 4
+#endif
+
+
 #endif /*G10_CONFIG_H*/
index b082022..dbf7147 100644 (file)
@@ -167,6 +167,10 @@ the OS a chance to collect more entropy! (Need %d more bytes)\n", length );
 #else /* not HAVE_DEV_RANDOM */
 
 
+#ifndef RAND_MAX   /* for SunOS */
+  #define RAND_MAX 32767
+#endif
+
 static void
 fill_buffer( byte *buffer, size_t length, int level )
 {
@@ -178,11 +182,20 @@ fill_buffer( byte *buffer, size_t length, int level )
                   "it compile - it is in no way a strong RNG!\n\n"
                   "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n\n");
        initialized=1;
+      #ifdef HAVE_RAND
        srand(make_timestamp()*getpid());
+      #else
+       srandom(make_timestamp()*getpid());
+      #endif
     }
 
+  #ifdef HAVE_RAND
     while( length-- )
        *buffer++ = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
+  #else
+    while( length-- )
+       *buffer++ = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
+  #endif
 }
 
 #endif
index 6a97d41..39e8776 100644 (file)
@@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR(scripts)
 AC_CONFIG_HEADER(config.h)
 
 
-VERSION=`cat ./VERSION`
+VERSION=`cat $srcdir/VERSION`
 PACKAGE=g10
 AC_SUBST(VERSION)
 AC_SUBST(PACKAGE)
@@ -90,10 +90,6 @@ dnl Checks for libraries.
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS(unistd.h)
-AC_CHECK_HEADERS(zlib.h,
-                [LIBS="$LIBS -lz"],
-                AC_MSG_WARN([zlib missing - creating without ZLIB support!])
-               )
 
 
 dnl Checks for typedefs, structures, and compiler characteristics.
@@ -150,12 +146,20 @@ AC_CHECK_SIZEOF(unsigned short, 2)
 AC_CHECK_SIZEOF(unsigned int, 4)
 AC_CHECK_SIZEOF(unsigned long, 4)
 
+if test "$ac_cv_sizeof_unsigned_short" = "0" \
+   || test "$ac_cv_sizeof_unsigned_int" = "0" \
+   || test "$ac_cv_sizeof_unsigned_long" = "0"; then
+    AC_MSG_WARN([Hmmm, something is wrong with the sizes - using defaults]);
+fi
 
 
 
 dnl Checks for library functions.
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr)
+AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul)
+
+
+
 
 dnl check wether we have a random device
 AC_CACHE_CHECK(for random device, ac_cv_have_dev_random,
@@ -175,8 +179,8 @@ if test "$ac_cv_mpi_config_done" = yes; then
     AC_MSG_RESULT(done)
 else
 ac_cv_mpi_config_done=""
-if test -f ./mpi/config.links ; then
-    . ./mpi/config.links
+if test -f $srcdir/mpi/config.links ; then
+    . $srcdir/mpi/config.links
     ac_cv_mpi_extra_asm_modules="$mpi_extra_modules"
     AC_LINK_FILES( ${mpi_ln_src}, ${mpi_ln_dst} )
     ac_cv_mpi_config_done="yes"
@@ -198,11 +202,18 @@ fi
 AC_SUBST(MPI_EXTRA_ASM_OBJS)
 
 
+dnl Do we have zlib? Must do it here because Solaris failed
+dnl when compiling a conftest (due to the "-lz" from LIBS).
+AC_CHECK_HEADERS(zlib.h,
+                [LIBS="$LIBS -lz"],
+                AC_MSG_WARN([zlib missing - creating without ZLIB support!])
+               )
+
 dnl checking whether we have other cipher source files
 CIPHER_EXTRA_OBJS=""
 CIPHER_EXTRA_DIST=""
 AC_CACHE_CHECK(for extra cipher modules, ac_cv_have_rsa_cipher,
-[if test -f cipher/rsa.c && test -f cipher/rsa.h; then
+[if test -f $srcdir/cipher/rsa.c && test -f $srcdir/cipher/rsa.h; then
   ac_cv_have_rsa_cipher=yes; else ac_cv_have_rsa_cipher=no; fi])
 if test $ac_cv_have_rsa_cipher = yes; then
     AC_DEFINE(HAVE_RSA_CIPHER)
index c341c3d..c924355 100644 (file)
@@ -1,4 +1,5 @@
 /* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
+   Note: I added some stuff for use with g10
 
 Copyright (C) 1991, 1992, 1993, 1994, 1996 Free Software Foundation, Inc.
 
@@ -1440,6 +1441,7 @@ extern
 const
 #endif
 unsigned char __clz_tab[];
+#define MPI_INTERNAL_NEED_CLZ_TAB 1
 #define count_leading_zeros(count, x) \
   do {                                                                 \
     UWtype __xr = (x);                                                 \
index 864dc02..d1f440a 100644 (file)
 #include "longlong.h"
 
 
+#ifdef MPI_INTERNAL_NEED_CLZ_TAB
+unsigned char
+__clz_tab[] =
+{
+  0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+  6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+  7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+  8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+};
+#endif
+
+
+
+
+
+
+
+
 /****************
  * Return the number of bits in A.
  */