#! /bin/bash

KEYGEN=/usr/bin/ssh-keygen

RSA1_KEY=/etc/ssh/ssh_host_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key

wait_for_entropy() {
	while true; do
	    avail=$(</proc/sys/kernel/random/entropy_avail)
	    test $avail -ge 1024 && break
	    sleep 1
	done
}

do_rsa1_keygen() {
        if [ ! -s $RSA1_KEY ]; then
		wait_for_entropy
                if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' &>/dev/null; then
                        chmod 600 $RSA1_KEY
                        chmod 644 $RSA1_KEY.pub
                else
                        exit 1
                fi
        fi
}

do_rsa_keygen() {
        if [ ! -s $RSA_KEY ]; then
		wait_for_entropy
                if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' &>/dev/null; then
                        chmod 600 $RSA_KEY
                        chmod 644 $RSA_KEY.pub
                else
                        exit 1
                fi
        fi
}

do_dsa_keygen() {
        if [ ! -s $DSA_KEY ]; then
		wait_for_entropy
                if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' &>/dev/null; then
                        chmod 600 $DSA_KEY
                        chmod 644 $DSA_KEY.pub
                else
                        exit 1
                fi
        fi
}

do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen

#/usr/sbin/minit-svc del xtras/sshd-keygen services/sshd/