rng-tools: uci-fy, default to doing nothing

Enabling the default configuration will pipe /dev/urandom back into
/dev/random ala the current package behavior.  Because this amounts to
disabling the in-kernel entropy estimation, default disabled.

While here, uci-paramaterize the high watermark.
While here, add a pre-command hook for real RNGs that need 'stty raw'
or other such hooks.  (e.g. the TrueRNG devices)

As offered in github openwrt/packages#3422, take over maintainership.

See github openwrt/packages#3142.

Signed-off-by: Nathaniel Wesley Filardo <nwfilardo@gmail.com>
This commit is contained in:
Nathaniel Wesley Filardo
2016-10-30 18:27:54 -04:00
parent 2b324358e5
commit bce6d283c1
3 changed files with 24 additions and 6 deletions
+12 -4
View File
@@ -3,12 +3,20 @@
START=98
RNGD_AMOUNT=4000
RNGD_DEVICE="/dev/urandom"
# Use /dev/urandom as source, as hardware sources like /dev/hwrng are usually not present
RNGD_FILLWATER=$(uci -q get system.@rngd[0].fill_watermark)
RNGD_DEVICE=$(uci -q get system.@rngd[0].device)
RNGD_ENABLED=$(uci -q get system.@rngd[0].enabled)
RNGD_PRECMD=$(uci -q get system.@rngd[0].precmd)
: ${RNGD_FILLWATER:=4000}
echo PRECMD=\'$RNGD_PRECMD\'
start() {
service_start /sbin/rngd -r $RNGD_DEVICE -W $RNGD_AMOUNT
[ 1 -eq "$RNGD_ENABLED" ] && {
[ -z "${RNGD_PRECMD}" ] || ${RNGD_PRECMD} ${RNGD_DEVICE}
service_start /sbin/rngd -r ${RNGD_DEVICE} -W ${RNGD_FILLWATER}
}
}
stop() {
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
uci -q show system.@rngd[0] || {
uci add system rngd
uci set system.@rngd[0].enabled=0
uci set system.@rngd[0].device=/dev/urandom
uci commit
}