]> git.ipfire.org Git - ipfire-2.x.git/blame - src/initscripts/system/random
random: update initskript for machines with low entropy
[ipfire-2.x.git] / src / initscripts / system / random
CommitLineData
71e32384 1#!/bin/sh
71e32384
MT
2. /etc/sysconfig/rc
3. $rc_functions
4
48380341
AF
5if [ -e /proc/sys/kernel/random/poolsize ]; then
6 poolsize=$(</proc/sys/kernel/random/poolsize);
7 poolsize=$(expr $poolsize / 8 );
8else
9 poolsize=512;
10fi
11
71e32384
MT
12case "$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 ;;
50esac
51
52# End $rc_base/init.d/random