summaryrefslogtreecommitdiff
path: root/package/base-files/files/sbin/urandom_seed
blob: 16d36574eb7ff5a35d0691ae2064d07a98fc9623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh
set -e

trap '[ "$?" -eq 0 ] || echo "An error occured" >&2' EXIT

save() {
    touch "$1.tmp"
    chown root:root "$1.tmp"
    chmod 600 "$1.tmp"
    getrandom 512 > "$1.tmp"
    mv "$1.tmp" "$1"
    echo "Seed saved ($1)"
}

SEED="$(uci -q get system.@system[0].urandom_seed || true)"
[ "${SEED:0:1}" == "/" ] && save "$SEED"

SEED=/etc/urandom.seed
[ ! -f $SEED ] && save "$SEED"
true