summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/pcvt
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2000-09-10 14:31:40 +0000
committermarkm <markm@FreeBSD.org>2000-09-10 14:31:40 +0000
commit9188fde5018f953dfa93074a47334ea93e8232fa (patch)
treea830647bb0740f3360da7fe8d0e16d18421bd0d7 /sys/i386/isa/pcvt
parent92be8785e1b24977e9f19bcbad1044ff83b6dc73 (diff)
downloadFreeBSD-src-9188fde5018f953dfa93074a47334ea93e8232fa.zip
FreeBSD-src-9188fde5018f953dfa93074a47334ea93e8232fa.tar.gz
Provide keyboard entropy harvesting for PCVT users.
Diffstat (limited to 'sys/i386/isa/pcvt')
-rw-r--r--sys/i386/isa/pcvt/pcvt_hdr.h1
-rw-r--r--sys/i386/isa/pcvt/pcvt_kbd.c4
2 files changed, 5 insertions, 0 deletions
diff --git a/sys/i386/isa/pcvt/pcvt_hdr.h b/sys/i386/isa/pcvt/pcvt_hdr.h
index e58520a..2078f5f 100644
--- a/sys/i386/isa/pcvt/pcvt_hdr.h
+++ b/sys/i386/isa/pcvt/pcvt_hdr.h
@@ -59,6 +59,7 @@
#include <sys/uio.h>
#include <sys/callout.h>
#include <sys/kernel.h>
+#include <sys/random.h>
#include <sys/syslog.h>
#include <sys/malloc.h>
#include <sys/time.h>
diff --git a/sys/i386/isa/pcvt/pcvt_kbd.c b/sys/i386/isa/pcvt/pcvt_kbd.c
index f7f946d..d104196 100644
--- a/sys/i386/isa/pcvt/pcvt_kbd.c
+++ b/sys/i386/isa/pcvt/pcvt_kbd.c
@@ -751,6 +751,8 @@ loop:
{
keybuf[0] = dt;
+ random_harvest(keybuf, sizeof(keybuf), 1, 0, RANDOM_KEYBOARD);
+
return ((u_char *)keybuf);
}
@@ -825,6 +827,8 @@ loop:
/* got a normal scan key */
regular:
+ random_harvest(&dt, sizeof(dt), 1, 0, RANDOM_KEYBOARD);
+
#if PCVT_SCANSET == 1
kbd_status.breakseen = dt & 0x80 ? 1 : 0;
dt &= 0x7f;
OpenPOWER on IntegriCloud