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