#!/bin/sh
#
# $NetBSD: entropy,v 1.1 2021/01/10 23:24:25 riastradh Exp $
#

# PROVIDE: entropy
# REQUIRE: random_seed rndctl
# BEFORE: ike ipsec network

$_rc_subr_loaded . /etc/rc.subr

name="entropy"
start_cmd="entropy_start"
stop_cmd=":"

entropy_start()
{
       case ${entropy-} in
       '')     ;;
       check)  echo -n "Checking for entropy..."
               # dd will print an error message `Resource temporarily
               # unavailable' to stderr, which is a little annoying,
               # but getting rid of it is also a little annoying.
               if dd if=/dev/random iflag=nonblock of=/dev/null bs=1 count=1 \
                   msgfmt=quiet; then
                       echo "done"
               else
                       echo "not enough entropy available, aborting boot."
                       stop_boot
               fi
               ;;
       wait)   echo -n "Waiting for entropy..."
               dd if=/dev/random of=/dev/null bs=1 count=1 msgfmt=quiet
               echo "done"
               ;;
       esac
}

load_rc_config "$name"
run_rc_command "$1"