11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	$OpenBSD: ssh-com-keygen.sh,v 1.4 2004/02/24 17:06:52 markus Exp $
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#	Placed in the Public Domain.
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodtid="ssh.com key import"
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#TEST_COMBASE=/path/to/ssh/com/binaries
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodif [ "X${TEST_COMBASE}" = "X" ]; then
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	fatal '$TEST_COMBASE is not set'
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodfi
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodVERSIONS="
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.0.10
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.0.12
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.0.13
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.1.0
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.2.0
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.3.0
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.3.1
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	2.4.0
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.0.0
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.1.0
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.0
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.2
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.3
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.5
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.9
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.2.9.1
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	3.3.0"
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodCOMPRV=${OBJ}/comkey
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodCOMPUB=${COMPRV}.pub
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodOPENSSHPRV=${OBJ}/opensshkey
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike LockwoodOPENSSHPUB=${OPENSSHPRV}.pub
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# go for it
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodfor v in ${VERSIONS}; do
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	keygen=${TEST_COMBASE}/${v}/ssh-keygen2
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	if [ ! -x ${keygen} ]; then
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		continue
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	fi
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	types="dss"
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood        case $v in
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood        2.3.1|3.*)
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood                types="$types rsa"
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood                ;;
461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood        esac
471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	for t in $types; do
481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		verbose "ssh-keygen $v/$t"
491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		rm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB
501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		${keygen} -q -P -t $t ${COMPRV} > /dev/null 2>&1
511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		if [ $? -ne 0 ]; then
521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			fail "${keygen} -t $t failed"
531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			continue
541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fi
551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		${SSHKEYGEN} -if ${COMPUB} > ${OPENSSHPUB}
561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		if [ $? -ne 0 ]; then
571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			fail "import public key ($v/$t) failed"
581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			continue
591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fi
601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		${SSHKEYGEN} -if ${COMPRV} > ${OPENSSHPRV}
611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		if [ $? -ne 0 ]; then
621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			fail "import private key ($v/$t) failed"
631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			continue
641305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fi
651305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		chmod 600 ${OPENSSHPRV}
661305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		${SSHKEYGEN} -yf ${OPENSSHPRV} |\
671305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			diff - ${OPENSSHPUB}
681305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		if [ $? -ne 0 ]; then
691305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood			fail "public keys ($v/$t) differ"
701305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		fi
711305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	done
721305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwooddone
731305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
741305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodrm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB
75