#!/bin/sh

# Create the host keys for the OpenSSH server.
KEYTYPE=$1
case $KEYTYPE in
	"dsa") ;;
	"ed25519") ;;
	"rsa") ;; # always ok
	"ecdsa") ;;
	*) # wrong argument
		exit 12 ;;
esac

KEYDIR="/storage/ssh"
KEY=$KEYDIR/ssh_host_${KEYTYPE}_key
KEYGEN=/usr/bin/ssh-keygen

if [[ ! -x $KEYGEN ]]; then
	exit 13
fi

if [[ ! -d $KEYDIR ]]; then
    /usr/bin/logger -t $0 -p INFO "mkdir for host keys ..."
    /bin/mkdir -p $KEYDIR
else
	# remove old keys
	rm -f $KEY{,.pub}
fi

/usr/bin/logger -t $0 -p INFO "create new $1 host key ..."

# create new keys
if ! $KEYGEN -q -t $KEYTYPE -f $KEY -C '' -N '' > /dev/null ; then
	/usr/bin/logger -t $0 -p INFO "$1 keygen return $?, exit 1"
	exit 1
fi

/usr/bin/logger -t $0 -p INFO "$1 host key generated"

exit 0
