+2006-03-07 Simon Josefsson <jas@extundo.com>
+
+ * modules/gc-random: New file.
+
2006-03-03 Simon Josefsson <jas@extundo.com>
* build-aux/maint.mk: Add refresh-po rule, based on ideas from
+2006-03-07 Simon Josefsson <jas@extundo.com>
+
+ * gc-libgcrypt.c, gc-gnulib.c: Use GC_USE_RANDOM.
+
2006-03-01 Simon Josefsson <jas@extundo.com>
* readline.c: Fix typo, tiny patch from Stepan Kasal
-/* gc-gl-common.c --- Common gnulib internal crypto interface functions
- * Copyright (C) 2002, 2003, 2004, 2005 Simon Josefsson
+/* gc-gnulib.c --- Common gnulib internal crypto interface functions
+ * Copyright (C) 2002, 2003, 2004, 2005, 2006 Simon Josefsson
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
#include <string.h>
/* For randomize. */
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
+#ifdef GC_USE_RANDOM
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <fcntl.h>
+# include <errno.h>
+#endif
/* Hashes. */
#ifdef GC_USE_MD2
return;
}
+#ifdef GC_USE_RANDOM
+
/* Randomness. */
static Gc_rc
return randomize (2, data, datalen);
}
+#endif
+
/* Memory allocation. */
void
/* gc-libgcrypt.c --- Crypto wrappers around Libgcrypt for GC.
- * Copyright (C) 2002, 2003, 2004, 2005 Simon Josefsson
+ * Copyright (C) 2002, 2003, 2004, 2005, 2006 Simon Josefsson
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
return;
}
+#ifdef GC_USE_RANDOM
+
/* Randomness. */
Gc_rc
return GC_OK;
}
+#endif
+
/* Memory allocation. */
void
+2006-03-07 Simon Josefsson <jas@extundo.com>
+
+ * gc-random.m4: New file, mostly from gc.m4. Warn instead of
+ error on missing devices (the functions will return an error).
+
+ * gc.m4: Move random stuff to gc-random.m4
+
2006-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
* poll.m4 (gl_FUNC_POLL): If we deem poll(2) unacceptable, use
--- /dev/null
+# gc-random.m4 serial 1
+dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_GC_RANDOM],
+[
+ # Devices with randomness.
+ # FIXME: Are these the best defaults?
+
+ case "${target}" in
+ *-openbsd*)
+ NAME_OF_RANDOM_DEVICE="/dev/srandom"
+ NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/prandom"
+ NAME_OF_NONCE_DEVICE="/dev/urandom"
+ ;;
+
+ *-netbsd*)
+ NAME_OF_RANDOM_DEVICE="/dev/srandom"
+ NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
+ NAME_OF_NONCE_DEVICE="/dev/urandom"
+ ;;
+
+ *-solaris* | *-irix* | *-dec-osf* )
+ NAME_OF_RANDOM_DEVICE="/dev/random"
+ NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/random"
+ NAME_OF_NONCE_DEVICE="/dev/random"
+ ;;
+
+ *)
+ NAME_OF_RANDOM_DEVICE="/dev/random"
+ NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
+ NAME_OF_NONCE_DEVICE="/dev/urandom"
+ ;;
+ esac
+
+ AC_MSG_CHECKING([device with (strong) random data...])
+ AC_ARG_ENABLE(random-device,
+ AC_HELP_STRING([--enable-random-device],
+ [device with (strong) randomness (for Nettle)]),
+ test "$enableval" != "no" && NAME_OF_RANDOM_DEVICE=$enableval)
+ AC_MSG_RESULT($NAME_OF_RANDOM_DEVICE)
+
+ AC_MSG_CHECKING([device with pseudo random data...])
+ AC_ARG_ENABLE(pseudo-random-device,
+ AC_HELP_STRING([--enable-pseudo-random-device],
+ [device with pseudo randomness (for Nettle)]),
+ test "$enableval" != "no" && NAME_OF_PSEUDO_RANDOM_DEVICE=$enableval)
+ AC_MSG_RESULT($NAME_OF_PSEUDO_RANDOM_DEVICE)
+
+ AC_MSG_CHECKING([device with unpredictable data for nonces...])
+ AC_ARG_ENABLE(nonce-device,
+ AC_HELP_STRING([--enable-nonce-device],
+ [device with unpredictable nonces (for Nettle)]),
+ test "$enableval" != "no" && NAME_OF_NONCE_DEVICE=$enableval)
+ AC_MSG_RESULT($NAME_OF_NONCE_DEVICE)
+
+ if test "$cross_compiling" != yes; then
+ AC_CHECK_FILE($NAME_OF_RANDOM_DEVICE,,
+ AC_MSG_WARN([[device for (strong) random data `$NAME_OF_RANDOM_DEVICE' does not exist]]))
+ AC_CHECK_FILE($NAME_OF_PSEUDO_RANDOM_DEVICE,,
+ AC_MSG_WARN([[device for pseudo-random data `$NAME_OF_PSEUDO_RANDOM_DEVICE' does not exist]]))
+ AC_CHECK_FILE($NAME_OF_NONCE_DEVICE,,
+ AC_MSG_WARN([[device for unpredictable nonces `$NAME_OF_NONCE_DEVICE' does not exist]]))
+ else
+ AC_MSG_NOTICE([[Cross compiling, assuming random devices exists on the target host...]])
+ fi
+
+ # FIXME?: Open+read 42 bytes+close twice and compare data. Should differ.
+
+ AC_DEFINE_UNQUOTED(NAME_OF_RANDOM_DEVICE, "$NAME_OF_RANDOM_DEVICE",
+ [defined to the name of the (strong) random device])
+ AC_DEFINE_UNQUOTED(NAME_OF_PSEUDO_RANDOM_DEVICE,
+ "$NAME_OF_PSEUDO_RANDOM_DEVICE",
+ [defined to the name of the pseudo random device])
+ AC_DEFINE_UNQUOTED(NAME_OF_NONCE_DEVICE, "$NAME_OF_NONCE_DEVICE",
+ [defined to the name of the unpredictable nonce device])
+
+ AC_DEFINE(GC_USE_RANDOM, 1, [Define if you want to support RNG through GC.])
+])
-# gc.m4 serial 1
-dnl Copyright (C) 2005 Free Software Foundation, Inc.
+# gc.m4 serial 2
+dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_LIBOBJ([gc-libgcrypt])
else
AC_LIBOBJ([gc-gnulib])
-
- # Devices with randomness.
- # FIXME: Are these the best defaults?
-
- case "${target}" in
- *-openbsd*)
- NAME_OF_RANDOM_DEVICE="/dev/srandom"
- NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/prandom"
- NAME_OF_NONCE_DEVICE="/dev/urandom"
- ;;
-
- *-netbsd*)
- NAME_OF_RANDOM_DEVICE="/dev/srandom"
- NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
- NAME_OF_NONCE_DEVICE="/dev/urandom"
- ;;
-
- *-solaris* | *-irix* | *-dec-osf* )
- NAME_OF_RANDOM_DEVICE="/dev/random"
- NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/random"
- NAME_OF_NONCE_DEVICE="/dev/random"
- ;;
-
- *)
- NAME_OF_RANDOM_DEVICE="/dev/random"
- NAME_OF_PSEUDO_RANDOM_DEVICE="/dev/urandom"
- NAME_OF_NONCE_DEVICE="/dev/urandom"
- ;;
- esac
-
- AC_MSG_CHECKING([device with (strong) random data...])
- AC_ARG_ENABLE(random-device,
- AC_HELP_STRING([--enable-random-device],
- [device with (strong) randomness (for Nettle)]),
- test "$enableval" != "no" && NAME_OF_RANDOM_DEVICE=$enableval)
- AC_MSG_RESULT($NAME_OF_RANDOM_DEVICE)
-
- AC_MSG_CHECKING([device with pseudo random data...])
- AC_ARG_ENABLE(pseudo-random-device,
- AC_HELP_STRING([--enable-pseudo-random-device],
- [device with pseudo randomness (for Nettle)]),
- test "$enableval" != "no" && NAME_OF_PSEUDO_RANDOM_DEVICE=$enableval)
- AC_MSG_RESULT($NAME_OF_PSEUDO_RANDOM_DEVICE)
-
- AC_MSG_CHECKING([device with unpredictable data for nonces...])
- AC_ARG_ENABLE(nonce-device,
- AC_HELP_STRING([--enable-nonce-device],
- [device with unpredictable nonces (for Nettle)]),
- test "$enableval" != "no" && NAME_OF_NONCE_DEVICE=$enableval)
- AC_MSG_RESULT($NAME_OF_NONCE_DEVICE)
-
- if test "$cross_compiling" != yes; then
- AC_CHECK_FILE($NAME_OF_RANDOM_DEVICE,,
- AC_MSG_ERROR([[device for (strong) random data `$NAME_OF_RANDOM_DEVICE' does not exist]]))
- AC_CHECK_FILE($NAME_OF_PSEUDO_RANDOM_DEVICE,,
- AC_MSG_ERROR([[device for pseudo-random data `$NAME_OF_PSEUDO_RANDOM_DEVICE' does not exist]]))
- AC_CHECK_FILE($NAME_OF_NONCE_DEVICE,,
- AC_MSG_ERROR([[device for unpredictable nonces `$NAME_OF_NONCE_DEVICE' does not exist]]))
- else
- AC_MSG_NOTICE([[Cross compiling, assuming random devices exists...]])
- fi
-
- # FIXME: Open+read 42 bytes+close twice and compare data. Should differ.
-
- AC_DEFINE_UNQUOTED(NAME_OF_RANDOM_DEVICE, "$NAME_OF_RANDOM_DEVICE",
- [defined to the name of the (strong) random device])
- AC_DEFINE_UNQUOTED(NAME_OF_PSEUDO_RANDOM_DEVICE,
- "$NAME_OF_PSEUDO_RANDOM_DEVICE",
- [defined to the name of the pseudo random device])
- AC_DEFINE_UNQUOTED(NAME_OF_NONCE_DEVICE, "$NAME_OF_NONCE_DEVICE",
- [defined to the name of the unpredictable nonce device])
fi
])
--- /dev/null
+Description:
+Generic crypto random number functions.
+
+Files:
+m4/gc-random.m4
+
+Depends-on:
+gc
+
+configure.ac:
+gl_GC_RANDOM
+
+Makefile.am:
+
+Include:
+"gc.h"
+
+License:
+LGPL
+
+Maintainer:
+Simon Josefsson