blob: 6da8240392c8a78dc83ff473f2c476c67e72a51d [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh
2
3set -e
4
5# avoid problems with sudo path
6SYSREPOCFG=`which sysrepocfg`
7OPENSSL=`which openssl`
8
9# check that there is no SSH key with this name yet
10KEYSTORE_KEY=`$SYSREPOCFG -X -x "/ietf-keystore:keystore/asymmetric-keys/asymmetric-key[name='genkey']/name"`
11if [ -z "$KEYSTORE_KEY" ]; then
12
13# generate a new key
14PRIVPEM=`$OPENSSL genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -outform PEM 2>/dev/null`
15# remove header/footer
16PRIVKEY=`grep -v -- "-----" - <<STDIN
17$PRIVPEM
18STDIN`
19# get public key
20PUBPEM=`$OPENSSL rsa -pubout 2>/dev/null <<STDIN
21$PRIVPEM
22STDIN`
23# remove header/footer
24PUBKEY=`grep -v -- "-----" - <<STDIN
25$PUBPEM
26STDIN`
27
28# generate edit config
29CONFIG="<keystore xmlns=\"urn:ietf:params:xml:ns:yang:ietf-keystore\">
30 <asymmetric-keys>
31 <asymmetric-key>
32 <name>genkey</name>
33 <algorithm>rsa2048</algorithm>
34 <public-key>$PUBKEY</public-key>
35 <private-key>$PRIVKEY</private-key>
36 </asymmetric-key>
37 </asymmetric-keys>
38</keystore>"
39TMPFILE=`mktemp -u`
40printf -- "$CONFIG" > $TMPFILE
41# apply it to startup and running
42$SYSREPOCFG --edit=$TMPFILE -d startup -f xml -m ietf-keystore -v2
43$SYSREPOCFG -C startup -m ietf-keystore -v2
44# remove the tmp file
45rm $TMPFILE
46
47fi