aboutsummaryrefslogtreecommitdiff
path: root/package/system/urandom-seed/files/sbin/urandom_seed
blob: 7043e8af4e6a282ef3fe94f16411219867a9d34c (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