diff options
-rwxr-xr-x | hwrand.pl | 8 | ||||
-rwxr-xr-x | hwrand.py | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/hwrand.pl b/hwrand.pl new file mode 100755 index 0000000..87fd667 --- /dev/null +++ b/hwrand.pl @@ -0,0 +1,8 @@ +#!/usr/bin/perl +open my $hw, "</dev/hwrng" and open my $rnd, "</dev/random" or die; +for (;;) { + my $l = read $hw, my $d, 512; + ioctl $rnd, 0x40085203, pack("ii", 4 * $l, $l) . $d or die; + vec(my $w, fileno $rnd, 1) = 1; + select undef, $w, undef, undef +} diff --git a/hwrand.py b/hwrand.py new file mode 100755 index 0000000..92016a1 --- /dev/null +++ b/hwrand.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python +import fcntl, select, struct +with open('/dev/hwrng', 'rb') as hw, open('/dev/random') as rnd: + while True: + d = hw.read(512) + fcntl.ioctl(rnd, 0x40085203, struct.pack('ii', 4 * len(d), len(d)) + d) + select.select([], [rnd], []) |