#!/bin/sh ### BEGIN INIT INFO # Provides: urandom # Required-Start: $local_fs mountvirtfs # Required-Stop: $local_fs # Default-Start: S # Default-Stop: 0 6 # Short-Description: Save and restore the random seed # Description: Save the random seed on shutdown and restore it on boot, # to ensure that the seed isn't predicable on startup # (because the boot process is predictable) ### END INIT INFO test -c /dev/urandom || exit 0 . /etc/default/rcS case "$1" in start|"") test "$VERBOSE" != no && echo "Initializing random number generator..." # Load and then save 512 bytes, # which is the size of the entropy pool if test -f /var/lib/urandom/random-seed then cat /var/lib/urandom/random-seed >/dev/urandom fi rm -f /var/lib/urandom/random-seed umask 077 dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \ >/dev/null 2>&1 || echo "urandom start: failed." umask 022 ;; stop) # Carry a random seed from shut-down to start-up; # see documentation in linux/drivers/char/random.c test "$VERBOSE" != no && echo "Saving random seed..." umask 077 dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \ >/dev/null 2>&1 || echo "urandom stop: failed." ;; *) echo "Usage: urandom {start|stop}" >&2 exit 1 ;; esac exit 0