|
|
- #!/bin/sh
-
- set -e
-
- # avoid problems with sudo path
- SYSREPOCFG=`which sysrepocfg`
- OPENSSL=`which openssl`
-
- # check that there is no SSH key with this name yet
- KEYSTORE_KEY=`$SYSREPOCFG -X -x "/ietf-keystore:keystore/asymmetric-keys/asymmetric-key[name='genkey']/name"`
- if [ -z "$KEYSTORE_KEY" ]; then
-
- # generate a new key
- PRIVPEM=`$OPENSSL genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -outform PEM 2>/dev/null`
- # remove header/footer
- PRIVKEY=`grep -v -- "-----" - <<STDIN
- $PRIVPEM
- STDIN`
- # get public key
- PUBPEM=`$OPENSSL rsa -pubout 2>/dev/null <<STDIN
- $PRIVPEM
- STDIN`
- # remove header/footer
- PUBKEY=`grep -v -- "-----" - <<STDIN
- $PUBPEM
- STDIN`
-
- # generate edit config
- CONFIG="<keystore xmlns=\"urn:ietf:params:xml:ns:yang:ietf-keystore\">
- <asymmetric-keys>
- <asymmetric-key>
- <name>genkey</name>
- <algorithm>rsa2048</algorithm>
- <public-key>$PUBKEY</public-key>
- <private-key>$PRIVKEY</private-key>
- </asymmetric-key>
- </asymmetric-keys>
- </keystore>"
- TMPFILE=`mktemp -u`
- printf -- "$CONFIG" > $TMPFILE
- # apply it to startup and running
- $SYSREPOCFG --edit=$TMPFILE -d startup -f xml -m ietf-keystore -v2
- $SYSREPOCFG -C startup -m ietf-keystore -v2
- # remove the tmp file
- rm $TMPFILE
-
- fi
|