#!/bin/sh
#
# Check or create svc-runner hostkey
#

# include prerequisites
#. /usr/share/svc-runner/check-dirs

SVCRUNNER_USER=svc-runner
SVCRUNNER_GROUP=svc-runner

SVCRUNNER_ETCDIR=/etc/svc-runner

SSH_ALGO=ed25519

if test -f $SVCRUNNER_ETCDIR/sshd.d/authorized_keys ; then
    echo "Not touching existing $SVCRUNNER_ETCDIR/sshd.d/authorized_keys"
else
    echo "No $SVCRUNNER_ETCDIR/sshd.d/authorized_keys present, touching and chowning it."
    touch $SVCRUNNER_ETCDIR/sshd.d/authorized_keys
    chgrp $SVCRUNNER_GROUP $SVCRUNNER_ETCDIR/sshd.d/authorized_keys
    chmod 640 $SVCRUNNER_ETCDIR/sshd.d/authorized_keys
fi

if test -f $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key ; then
    echo "Found existing $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key, not creating it now."
else
    echo "No $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key, preparing to create it ..."
    
    SSHKEYGEN="/usr/bin/ssh-keygen"
    if test ! -x "$SSHKEYGEN"
    then
        echo "Cannot find ${SSHKEYGEN}"
        exit 11
    fi

    echo "Creating $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key ..."
    $SSHKEYGEN -t $SSH_ALGO -N '' -f $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key || exit 21
    chgrp $SVCRUNNER_GROUP $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key
    chmod 640 $SVCRUNNER_ETCDIR/sshd.d/ssh_host_${SSH_ALGO}_key
fi

exit 0

