11.1Sriastrad#!/bin/sh
21.1Sriastrad#
31.1Sriastrad# $NetBSD: entropy,v 1.1 2021/01/10 23:24:25 riastradh Exp $
41.1Sriastrad#
51.1Sriastrad
61.1Sriastrad# PROVIDE: entropy
71.1Sriastrad# REQUIRE: random_seed rndctl
81.1Sriastrad# BEFORE: ike ipsec network
91.1Sriastrad
101.1Sriastrad$_rc_subr_loaded . /etc/rc.subr
111.1Sriastrad
121.1Sriastradname="entropy"
131.1Sriastradstart_cmd="entropy_start"
141.1Sriastradstop_cmd=":"
151.1Sriastrad
161.1Sriastradentropy_start()
171.1Sriastrad{
181.1Sriastrad	case ${entropy-} in
191.1Sriastrad	'')	;;
201.1Sriastrad	check)	echo -n "Checking for entropy..."
211.1Sriastrad		# dd will print an error message `Resource temporarily
221.1Sriastrad		# unavailable' to stderr, which is a little annoying,
231.1Sriastrad		# but getting rid of it is also a little annoying.
241.1Sriastrad		if dd if=/dev/random iflag=nonblock of=/dev/null bs=1 count=1 \
251.1Sriastrad		    msgfmt=quiet; then
261.1Sriastrad			echo "done"
271.1Sriastrad		else
281.1Sriastrad			echo "not enough entropy available, aborting boot."
291.1Sriastrad			stop_boot
301.1Sriastrad		fi
311.1Sriastrad		;;
321.1Sriastrad	wait)	echo -n "Waiting for entropy..."
331.1Sriastrad		dd if=/dev/random of=/dev/null bs=1 count=1 msgfmt=quiet
341.1Sriastrad		echo "done"
351.1Sriastrad		;;
361.1Sriastrad	esac
371.1Sriastrad}
381.1Sriastrad
391.1Sriastradload_rc_config "$name"
401.1Sriastradrun_rc_command "$1"
41