#!/bin/sh

random_seed=/etc/random-seed
script=$(basename "$0")

if [ "$1" = "start" ]
then
	logger "Initializing random number generator..."
	if [ ! -f $random_seed ]; then
		touch $random_seed
		# Use rand-hw initially.
		for i in $( (echo 5; usleep 1000; echo 4; usleep 1000; echo 128; usleep 1000; echo 0 ; usleep 1000; echo 0) | \
			/sred/root/sectest/sectest | grep RND | cut -d = -f2 | cut -c 3- | sed 's/\([0-9A-F]\{2\}\)/\\\\\\x\1/gI');
		do printf "%s" "$i"; done > $random_seed
 	fi
	chmod 600 $random_seed
	cat $random_seed >/dev/urandom
	if [ ! /etc/platform/04-random -ef /etc/down/97-random ]; then
		mkdir -p /etc/down
		ln -f "$0" /etc/down/97-random
	fi
fi

# /etc/down will execute with filesystem in r/w mode.
if [ "$1" = "stop" -a "$script" = "97-random" ]
then
	logger "Saving random seed..."
	touch $random_seed
	chmod 600 $random_seed
	dd if=/dev/urandom of=$random_seed count=1 bs=512 2>/dev/null
fi
