# -* shell-script -*-

readoptions() {
	HRNGDEVICE=
	HRNGSELECT=
	RNGDOPTIONS=
	test -r /etc/default/rng-tools-debian && . /etc/default/rng-tools-debian
	HRNGDEVICE_=
}

hrngselect() {
	test -z "$HRNGSELECT" || printf '%s' "$HRNGSELECT" \
	    >/sys/devices/virtual/misc/hw_random/rng_current
}

finddevice() {
	if test -n "$HRNGDEVICE" && test -c "$HRNGDEVICE"; then
		# use it unseen
		HRNGDEVICE_=
		return 0
	fi
	# list of devices to try/auto-detect
	for x in hw_random hwrandom intel_rng i810_rng hwrng; do
		for y in /dev /dev/misc; do
			test -c "$y/$x" || continue
			if timeout -k 1s 5s \
			    dd if="$y/$x" bs=1 count=1 >/dev/null 2>&1; then
				HRNGDEVICE=$y/$x
				HRNGDEVICE_=auto
				return 0
			fi
			logger -t rng-tools-debian \
			    "found $y/$x but could not use it"
		done
	done
	return 1
}

skipdevice() {
	case $HRNGDEVICE_:$HRNGDEVICE in
	(auto:/dev/hwrng|auto:/dev/misc/hwrng)
		return 0 ;;
	(*)
		return 1 ;;
	esac
}
