summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2004-08-16 19:10:30 +0000
committerSimon Josefsson <simon@josefsson.org>2004-08-16 19:10:30 +0000
commitf960d38c20612907b89b6f8c52c35f1c81d5e9f7 (patch)
tree33de0f18c42cf65bd6a6bbcf420103ccdb58acbb /configure.in
parent8898bf167f4a15717536ebf00e86e2747bc486bc (diff)
downloadgnutls-f960d38c20612907b89b6f8c52c35f1c81d5e9f7.tar.gz
Move randomness calls to generic crypto API.
Implement randomness for libgcrypt and nettle wrappers.
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in69
1 files changed, 69 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index 81042ca7f7..262e162567 100644
--- a/configure.in
+++ b/configure.in
@@ -311,6 +311,75 @@ if test "$nettle" != "no" ; then
NETTLE_CFLAGS="-I\$(top_srcdir)/nettle"
NETTLE_LIBS="\$(top_builddir)/nettle/libnettle.la"
AX_CREATE_STDINT_H([nettle/nettle-types.h], [sys/types.h])
+
+ # 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)]),
+ 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)]),
+ 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)]),
+ NAME_OF_NONCE_DEVICE=$enableval)
+ AC_MSG_RESULT($NAME_OF_NONCE_DEVICE)
+
+ 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
+]]))
+
+ # 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])
else
AC_MSG_RESULT(no)
fi