summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Eichin <eichin@mit.edu>1994-10-27 18:33:35 +0000
committerMark Eichin <eichin@mit.edu>1994-10-27 18:33:35 +0000
commit4c0dd02caea5a7a04becd467b0de77a62b5530a8 (patch)
treee58f149d0e88a568d72c02967ec97ca90f08e706 /src
parent41629ce3ae47282f362eae51763ee6dafeebafea (diff)
* configure.in: check for srand48, srand, and srandom.
* krlogind.c (v4_des_write): use the best available of the three random number systems for padding (based on code from lib/crypto/os/rnd_confoun.c.) git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@4590 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/appl/bsd/ChangeLog7
-rw-r--r--src/appl/bsd/configure.in1
-rw-r--r--src/appl/bsd/krlogind.c28
3 files changed, 34 insertions, 2 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog
index a8ad665d8..048334818 100644
--- a/src/appl/bsd/ChangeLog
+++ b/src/appl/bsd/ChangeLog
@@ -1,3 +1,10 @@
+Thu Oct 27 14:31:17 1994 Mark Eichin (eichin@cygnus.com)
+
+ * configure.in: check for srand48, srand, and srandom.
+ * krlogind.c (v4_des_write): use the best available of the three
+ random number systems for padding (based on code from
+ lib/crypto/os/rnd_confoun.c.)
+
Wed Oct 26 00:04:02 1994 Theodore Y. Ts'o (tytso@dcl)
* krsh.c (main):
diff --git a/src/appl/bsd/configure.in b/src/appl/bsd/configure.in
index fbf70b61b..88c19198b 100644
--- a/src/appl/bsd/configure.in
+++ b/src/appl/bsd/configure.in
@@ -93,4 +93,5 @@ AC_COMPILE_CHECK([number of arguments to setpgrp],
AC_DEFINE(SETPGRP_TWOARG))
dnl
ADD_DEF(-DKERBEROS)
+AC_HAVE_FUNCS(srand48 srand srandom)
V5_AC_OUTPUT_MAKEFILE
diff --git a/src/appl/bsd/krlogind.c b/src/appl/bsd/krlogind.c
index 8f5634c01..b50fffccc 100644
--- a/src/appl/bsd/krlogind.c
+++ b/src/appl/bsd/krlogind.c
@@ -1595,6 +1595,29 @@ recvauth()
#ifdef KRB5_KRB4_COMPAT
+/* Random number support only needed for v4_des_write */
+#ifdef HAVE_SRAND48
+#define SRAND srand48
+#define RAND lrand48
+#define RAND_TYPE long
+#endif
+
+#if !defined(RAND_TYPE) && defined(HAVE_SRAND)
+#define SRAND srand
+#define RAND rand
+#define RAND_TYPE int
+#endif
+
+#if !defined(RAND_TYPE) && defined(HAVE_SRANDOM)
+#define SRAND srandom
+#define RAND random
+#define RAND_TYPE long
+#endif
+
+#if !defined(RAND_TYPE)
+You need a random number generator!
+#endif
+
int
v4_des_read(fd, buf, len)
int fd;
@@ -1702,10 +1725,11 @@ int len;
if (len < 8) {
if (!seeded) {
+ RAND_TYPE rval = time((long *) 0);
seeded = 1;
- srandom((int) time((long *)0));
+ SRAND(rval);
}
- garbage = random();
+ garbage = RAND();
/* insert random garbage */
(void) memcpy(garbage_buf, &garbage, min(sizeof(long),8));