summaryrefslogtreecommitdiff
path: root/os/auth.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/auth.c')
-rw-r--r--os/auth.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/os/auth.c b/os/auth.c
index d2aa980a8..dab4f60bd 100644
--- a/os/auth.c
+++ b/os/auth.c
@@ -314,6 +314,20 @@ GenerateAuthorization(
return -1;
}
+#ifdef HAVE_URANDOM
+
+void
+GenerateRandomData (int len, char *buf)
+{
+ int fd;
+
+ fd = open("/dev/urandom", O_RDONLY);
+ read(fd, buf, len);
+ close(fd);
+}
+
+#else /* !HAVE_URANDOM */
+
/* A random number generator that is more unpredictable
than that shipped with some systems.
This code is taken from the C standard. */
@@ -351,4 +365,6 @@ GenerateRandomData (int len, char *buf)
/* XXX add getrusage, popen("ps -ale") */
}
+#endif /* HAVE_URANDOM */
+
#endif /* XCSECURITY */