#!/bin/sh
#
# sshd        Starts sshd.
#

# Do not generate keys when reboot was done during sysinit
[ -e /var/local/telem/sysinit_reboot ] && exit 0

# Make sure the ssh-keygen progam exists
[ -f /usr/bin/ssh-keygen ] || exit 0

# # Check for the SSH1 RSA key
# if [ ! -s /etc/ssh/ssh_host_key ] ; then
# 	echo Removing old RSA key...
# 	! rm /etc/ssh/ssh_host_key 2> /dev/null
# fi
# 
# if [ ! -f /etc/ssh/ssh_host_key ] ; then
# 	echo Generating RSA Key...
# 	/usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -C '' -N ''
# fi

# Check for the SSH2 RSA key
if [ ! -s /etc/ssh/ssh_host_rsa_key ] ; then
	echo Removing old RSA key...
	! rm /etc/ssh/ssh_host_rsa_key 2> /dev/null
fi

if [ ! -f /etc/ssh/ssh_host_rsa_key ] ; then
	echo Generating RSA Key...
	/usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -C '' -N ''
fi

# Check for the SSH2 DSA key
if [ ! -s /etc/ssh/ssh_host_dsa_key ] ; then
	echo Removing old DSA key...
	! rm /etc/ssh/ssh_host_dsa_key 2> /dev/null
fi

if [ ! -f /etc/ssh/ssh_host_dsa_key ] ; then
	echo Generating DSA Key...
	echo THIS CAN TAKE A MINUTE OR TWO DEPENDING ON YOUR PROCESSOR!
	echo
        /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -C '' -N ''
fi

# Check for the SSH2 ECDSA key
if [ ! -s /etc/ssh/ssh_host_ecdsa_key ] ; then
	echo Removing old ECDSA key...
	! rm /etc/ssh/ssh_host_ecdsa_key 2> /dev/null
fi

if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then
	echo Generating ECDSA Key...
	echo THIS CAN TAKE A MINUTE OR TWO DEPENDING ON YOUR PROCESSOR!
	echo
	/usr/bin/ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -C '' -N ''
fi

# Check for the SSH2 ED25519 key
if [ ! -s /etc/ssh/ssh_host_ed25519_key ] ; then
	echo Removing old ED25519 key...
	! rm /etc/ssh/ssh_host_ed25519_key 2> /dev/null
fi

if [ ! -f /etc/ssh/ssh_host_ed25519_key ]; then
	echo Generating ED25519 Key...
	echo THIS CAN TAKE A MINUTE OR TWO DEPENDING ON YOUR PROCESSOR!
	echo
	/usr/bin/ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -C '' -N ''
fi
                
umask 077

start() {
 	logger -s -p "user.info" -t "$0" "Starting sshd: "
	/usr/sbin/sshd
	touch /var/lock/sshd
	logger -s -p "user.info" -t "$0" "OK"
}	
stop() {
	logger -s -p "user.info" -t "$0" "Stopping sshd: "
        killall	sshd 
	rm -f /var/lock/sshd
	logger -s -p "user.info" -t "$0" "OK" 
}
restart() {
	stop
	start
}	

case "$1" in
  start)
  	start
	;;
  stop)
  	stop
	;;
  restart|reload)
  	restart
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?

