summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2000-07-09 12:26:38 +0000
committermarkm <markm@FreeBSD.org>2000-07-09 12:26:38 +0000
commitf0aab2e149e35046e2affbb856cf524f696ab5c8 (patch)
tree55b29b679f8c930006adda648658fbe227874270
parent89ca69193464a4d38b274170f31e1230f83f97d2 (diff)
downloadFreeBSD-src-f0aab2e149e35046e2affbb856cf524f696ab5c8.zip
FreeBSD-src-f0aab2e149e35046e2affbb856cf524f696ab5c8.tar.gz
Add entropy-harvesting calls.
/dev/random now has new-and-improved entropy!
-rw-r--r--sys/dev/syscons/syscons.c4
-rw-r--r--sys/dev/syscons/sysmouse.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index aea3c7e..1c60164 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -47,6 +47,7 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/cons.h>
+#include <sys/random.h>
#include <machine/clock.h>
#include <machine/console.h>
@@ -2955,6 +2956,9 @@ next_code:
if (!(c & RELKEY))
sc_touch_scrn_saver();
+ /* do the /dev/random device a favour */
+ random_harvest((u_int64_t)c, 1, 0, RANDOM_KEYBOARD);
+
if (scp->kbd_mode != K_XLATE)
return KEYCHAR(c);
diff --git a/sys/dev/syscons/sysmouse.c b/sys/dev/syscons/sysmouse.c
index 453215a..5c92b23 100644
--- a/sys/dev/syscons/sysmouse.c
+++ b/sys/dev/syscons/sysmouse.c
@@ -32,6 +32,7 @@
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/proc.h>
+#include <sys/random.h>
#include <sys/tty.h>
#include <sys/kernel.h>
@@ -333,6 +334,11 @@ sysmouse_event(mouse_info_t *info)
sysmouse_tty);
}
+ /* do the /dev/random device a favour */
+ /* The nasty-looking cast is to force treatment of 8 u_chars */
+ /* in buf as a u_int64_t */
+ random_harvest(*((u_int64_t *)buf), 2, 0, RANDOM_MOUSE);
+
return mouse_status.flags;
}
OpenPOWER on IntegriCloud