diff options
author | markm <markm@FreeBSD.org> | 2000-09-10 14:31:40 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2000-09-10 14:31:40 +0000 |
commit | 9188fde5018f953dfa93074a47334ea93e8232fa (patch) | |
tree | a830647bb0740f3360da7fe8d0e16d18421bd0d7 /sys/i386/isa/pcvt | |
parent | 92be8785e1b24977e9f19bcbad1044ff83b6dc73 (diff) | |
download | FreeBSD-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.h | 1 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_kbd.c | 4 |
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; |