30 lines
674 B
Text
30 lines
674 B
Text
|
#!/bin/sh /etc/rc.common
|
||
|
|
||
|
START=99
|
||
|
|
||
|
EXTRA_COMMANDS="save"
|
||
|
|
||
|
_log() {
|
||
|
logger -t urandom_seed "$1"
|
||
|
}
|
||
|
|
||
|
_save() {
|
||
|
touch $1.tmp || { _log "touch $1 failed"; return; }
|
||
|
chown root:root $1.tmp || { _log "chown $1 failed"; return; }
|
||
|
chmod 600 $1.tmp || { _log "chmod $1 failed"; return; }
|
||
|
getrandom 512 > $1.tmp || { _log "getrandom failed"; return; }
|
||
|
mv $1.tmp $1 || { _log "mv $1 failed"; return; }
|
||
|
}
|
||
|
|
||
|
save() {
|
||
|
SEED="$(uci -q get system.@system[0].urandom_seed)"
|
||
|
[ "${SEED:0:1}" == "/" ] && _save "$SEED" && _log "Seed saved ($SEED)"
|
||
|
|
||
|
SEED=/etc/urandom.seed
|
||
|
[ ! -f $SEED ] && _save "$SEED" && _log "Seed saved ($SEED)"
|
||
|
}
|
||
|
|
||
|
boot() {
|
||
|
save
|
||
|
}
|