summaryrefslogtreecommitdiffstats
path: root/net/netopeer2/files/netopeer2-server-merge-hostkey.default
blob: d9db8bbb6cc86c2cbd2ac09eb41547072a2d6ac3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh

set -e

SYSREPOCFG=$(which sysrepocfg)
OPENSSL=$(which openssl)

KEYSTORE_KEY=$($SYSREPOCFG -X -x "/ietf-keystore:keystore/asymmetric-keys/asymmetric-key[name='genkey']")
if [ -n "$KEYSTORE_KEY" ]; then
	exit 0
fi

OLD_UMASK=$(umask)
umask 077
PRIVPEM=$($OPENSSL genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -outform PEM 2>/dev/null)
umask "$OLD_UMASK"

if [ -z "$PRIVPEM" ]; then
	echo "Failed to generate RSA key with openssl." >&2
	exit 1
fi

PRIVKEY=$(echo "$PRIVPEM" | grep -v -- "-----" | tr -d "\n")

CONFIG="<keystore xmlns=\"urn:ietf:params:xml:ns:yang:ietf-keystore\">
    <asymmetric-keys>
        <asymmetric-key>
            <name>genkey</name>
            <public-key-format xmlns:ct=\"urn:ietf:params:xml:ns:yang:ietf-crypto-types\">ct:ssh-public-key-format</public-key-format>
            <private-key-format xmlns:ct=\"urn:ietf:params:xml:ns:yang:ietf-crypto-types\">ct:rsa-private-key-format</private-key-format>
            <cleartext-private-key>${PRIVKEY}</cleartext-private-key>
        </asymmetric-key>
    </asymmetric-keys>
</keystore>"

echo "$CONFIG" | $SYSREPOCFG --edit -d startup -f xml -m ietf-keystore -v2
$SYSREPOCFG -C startup -m ietf-keystore -v2