]>
Commit | Line | Data |
---|---|---|
71e32384 | 1 | #!/bin/sh |
71e32384 MT |
2 | . /etc/sysconfig/rc |
3 | . $rc_functions | |
4 | ||
48380341 AF |
5 | if [ -e /proc/sys/kernel/random/poolsize ]; then |
6 | poolsize=$(</proc/sys/kernel/random/poolsize); | |
7 | poolsize=$(expr $poolsize / 8 ); | |
8 | else | |
9 | poolsize=512; | |
10 | fi | |
11 | ||
71e32384 MT |
12 | case "$1" in |
13 | start) | |
48380341 AF |
14 | |
15 | #CRNG init need 128bit so wait until there is more) | |
16 | avail=$(</proc/sys/kernel/random/entropy_avail) | |
17 | while [ $avail -lt 130 ]; do | |
18 | avail=$(</proc/sys/kernel/random/entropy_avail) | |
19 | boot_mesg -n "\rWait for entropy: $avail/130 " | |
20 | # Generate some disc access to gather entropy | |
21 | echo avail > /var/tmp/random-tmpfile | |
22 | sync | |
23 | rm -f /var/tmp/random-tmpfile | |
24 | done; | |
25 | ||
26 | boot_mesg "\rInitializing kernel random number generator..." | |
71e32384 MT |
27 | if [ -f /var/tmp/random-seed ]; then |
28 | /bin/cat /var/tmp/random-seed >/dev/urandom | |
29 | fi | |
48380341 AF |
30 | touch /var/tmp/random-seed |
31 | chmod 600 /var/tmp/random-seed | |
71e32384 | 32 | /bin/dd if=/dev/urandom of=/var/tmp/random-seed \ |
48380341 | 33 | count=1 bs=$poolsize &>/dev/null |
71e32384 MT |
34 | evaluate_retval |
35 | ;; | |
36 | ||
37 | stop) | |
38 | boot_mesg "Saving random seed..." | |
48380341 AF |
39 | touch /var/tmp/random-seed |
40 | chmod 600 /var/tmp/random-seed | |
71e32384 | 41 | /bin/dd if=/dev/urandom of=/var/tmp/random-seed \ |
48380341 | 42 | count=1 bs=$poolsize &>/dev/null |
71e32384 MT |
43 | evaluate_retval |
44 | ;; | |
45 | ||
46 | *) | |
47 | echo "Usage: $0 {start|stop}" | |
48 | exit 1 | |
49 | ;; | |
50 | esac | |
51 | ||
52 | # End $rc_base/init.d/random |