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