49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
#!/sbin/runscript
 | 
						|
# Copyright 1999-2007 Gentoo Foundation
 | 
						|
# Distributed under the terms of the GNU General Public License v2
 | 
						|
 | 
						|
URANDOM_SEED=${URANDOM_SEED:-/var/run/random-seed}
 | 
						|
 | 
						|
description="Initializes the random number generator."
 | 
						|
 | 
						|
depend() {
 | 
						|
	need localmount
 | 
						|
}
 | 
						|
 | 
						|
save_seed() {
 | 
						|
	local poolsize=1
 | 
						|
 | 
						|
	if [ -e /proc/sys/kernel/random/poolsize ] ; then
 | 
						|
		poolsize=$(($(cat /proc/sys/kernel/random/poolsize) / 4096))
 | 
						|
	fi
 | 
						|
 | 
						|
	(	# sub shell to prevent umask pollution
 | 
						|
		umask 077
 | 
						|
		dd if=/dev/urandom of="${URANDOM_SEED}" count=${poolsize} 2>/dev/null
 | 
						|
	)
 | 
						|
}
 | 
						|
 | 
						|
start() {
 | 
						|
	[ -c /dev/urandom ] || return
 | 
						|
	if [ -f "${URANDOM_SEED}" ] ; then
 | 
						|
		cat "${URANDOM_SEED}" > /dev/urandom
 | 
						|
	fi
 | 
						|
	if ! rm -f "${URANDOM_SEED}" ; then
 | 
						|
		ewarn "Skipping ${URANDOM_SEED} initialization (ro root?)"
 | 
						|
		return 0
 | 
						|
	fi
 | 
						|
	ebegin "Initializing random number generator"
 | 
						|
	save_seed
 | 
						|
	eend $? "Error initializing random number generator"
 | 
						|
}
 | 
						|
 | 
						|
stop() {
 | 
						|
	ebegin "Saving random seed"
 | 
						|
	# Carry a random seed from shut-down to start-up;
 | 
						|
	# see documentation in linux/drivers/char/random.c
 | 
						|
	save_seed
 | 
						|
	eend $? "Failed to save random seed"
 | 
						|
}
 | 
						|
 | 
						|
# vim: set ts=4 :
 |