1*cba96d16Sriastradh#!/bin/sh 2*cba96d16Sriastradh# 3*cba96d16Sriastradh# $NetBSD: entropy,v 1.1 2021/01/10 23:24:25 riastradh Exp $ 4*cba96d16Sriastradh# 5*cba96d16Sriastradh 6*cba96d16Sriastradh# PROVIDE: entropy 7*cba96d16Sriastradh# REQUIRE: random_seed rndctl 8*cba96d16Sriastradh# BEFORE: ike ipsec network 9*cba96d16Sriastradh 10*cba96d16Sriastradh$_rc_subr_loaded . /etc/rc.subr 11*cba96d16Sriastradh 12*cba96d16Sriastradhname="entropy" 13*cba96d16Sriastradhstart_cmd="entropy_start" 14*cba96d16Sriastradhstop_cmd=":" 15*cba96d16Sriastradh 16*cba96d16Sriastradhentropy_start() 17*cba96d16Sriastradh{ 18*cba96d16Sriastradh case ${entropy-} in 19*cba96d16Sriastradh '') ;; 20*cba96d16Sriastradh check) echo -n "Checking for entropy..." 21*cba96d16Sriastradh # dd will print an error message `Resource temporarily 22*cba96d16Sriastradh # unavailable' to stderr, which is a little annoying, 23*cba96d16Sriastradh # but getting rid of it is also a little annoying. 24*cba96d16Sriastradh if dd if=/dev/random iflag=nonblock of=/dev/null bs=1 count=1 \ 25*cba96d16Sriastradh msgfmt=quiet; then 26*cba96d16Sriastradh echo "done" 27*cba96d16Sriastradh else 28*cba96d16Sriastradh echo "not enough entropy available, aborting boot." 29*cba96d16Sriastradh stop_boot 30*cba96d16Sriastradh fi 31*cba96d16Sriastradh ;; 32*cba96d16Sriastradh wait) echo -n "Waiting for entropy..." 33*cba96d16Sriastradh dd if=/dev/random of=/dev/null bs=1 count=1 msgfmt=quiet 34*cba96d16Sriastradh echo "done" 35*cba96d16Sriastradh ;; 36*cba96d16Sriastradh esac 37*cba96d16Sriastradh} 38*cba96d16Sriastradh 39*cba96d16Sriastradhload_rc_config "$name" 40*cba96d16Sriastradhrun_rc_command "$1" 41