* configure.in: check for srand48, srand, and srandom.
authorMark Eichin <eichin@mit.edu>
Thu, 27 Oct 1994 18:33:35 +0000 (18:33 +0000)
committerMark Eichin <eichin@mit.edu>
Thu, 27 Oct 1994 18:33:35 +0000 (18:33 +0000)
* 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

src/appl/bsd/ChangeLog
src/appl/bsd/configure.in
src/appl/bsd/krlogind.c

index a8ad665d83c27712ddf3df49380f054753a21562..0483348180f637812e0c57a98c1ed9f21e6179d4 100644 (file)
@@ -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):
index fbf70b61b81ebf1b38c6e9a5102e3e0645028144..88c19198b94e2dc94f56e01b8f7382c6356818a2 100644 (file)
@@ -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
index 8f5634c015be11c04bf6432a49613cf343a225af..b50fffccce0c236e1bc01558e3125857d2d1c889 100644 (file)
@@ -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));