xref: /openbsd-src/regress/usr.bin/ssh/ssh-com-keygen.sh (revision 46c9f5bf67ee071ca19df6c6221865448ba4be44)
1*46c9f5bfSmarkus#	$OpenBSD: ssh-com-keygen.sh,v 1.4 2004/02/24 17:06:52 markus Exp $
298f48076Smarkus#	Placed in the Public Domain.
398f48076Smarkus
498f48076Smarkustid="ssh.com key import"
598f48076Smarkus
698f48076Smarkus#TEST_COMBASE=/path/to/ssh/com/binaries
798f48076Smarkusif [ "X${TEST_COMBASE}" = "X" ]; then
898f48076Smarkus	fatal '$TEST_COMBASE is not set'
998f48076Smarkusfi
1098f48076Smarkus
1198f48076SmarkusVERSIONS="
1298f48076Smarkus	2.0.10
1398f48076Smarkus	2.0.12
1498f48076Smarkus	2.0.13
1598f48076Smarkus	2.1.0
1698f48076Smarkus	2.2.0
1798f48076Smarkus	2.3.0
1898f48076Smarkus	2.3.1
1998f48076Smarkus	2.4.0
2098f48076Smarkus	3.0.0
21de247f79Smarkus	3.1.0
22de247f79Smarkus	3.2.0
23357f04a7Smarkus	3.2.2
24357f04a7Smarkus	3.2.3
25*46c9f5bfSmarkus	3.2.5
26*46c9f5bfSmarkus	3.2.9
27*46c9f5bfSmarkus	3.2.9.1
28de247f79Smarkus	3.3.0"
2998f48076Smarkus
3098f48076SmarkusCOMPRV=${OBJ}/comkey
3198f48076SmarkusCOMPUB=${COMPRV}.pub
3298f48076SmarkusOPENSSHPRV=${OBJ}/opensshkey
3398f48076SmarkusOPENSSHPUB=${OPENSSHPRV}.pub
3498f48076Smarkus
3598f48076Smarkus# go for it
3698f48076Smarkusfor v in ${VERSIONS}; do
3798f48076Smarkus	keygen=${TEST_COMBASE}/${v}/ssh-keygen2
3898f48076Smarkus	if [ ! -x ${keygen} ]; then
3998f48076Smarkus		continue
4098f48076Smarkus	fi
4198f48076Smarkus	types="dss"
4298f48076Smarkus        case $v in
4398f48076Smarkus        2.3.1|3.*)
4498f48076Smarkus                types="$types rsa"
4598f48076Smarkus                ;;
4698f48076Smarkus        esac
4798f48076Smarkus	for t in $types; do
4898f48076Smarkus		verbose "ssh-keygen $v/$t"
4998f48076Smarkus		rm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB
5098f48076Smarkus		${keygen} -q -P -t $t ${COMPRV} > /dev/null 2>&1
5198f48076Smarkus		if [ $? -ne 0 ]; then
5298f48076Smarkus			fail "${keygen} -t $t failed"
5398f48076Smarkus			continue
5498f48076Smarkus		fi
5598f48076Smarkus		${SSHKEYGEN} -if ${COMPUB} > ${OPENSSHPUB}
5698f48076Smarkus		if [ $? -ne 0 ]; then
5798f48076Smarkus			fail "import public key ($v/$t) failed"
5898f48076Smarkus			continue
5998f48076Smarkus		fi
6098f48076Smarkus		${SSHKEYGEN} -if ${COMPRV} > ${OPENSSHPRV}
6198f48076Smarkus		if [ $? -ne 0 ]; then
6298f48076Smarkus			fail "import private key ($v/$t) failed"
6398f48076Smarkus			continue
6498f48076Smarkus		fi
6598f48076Smarkus		chmod 600 ${OPENSSHPRV}
6698f48076Smarkus		${SSHKEYGEN} -yf ${OPENSSHPRV} |\
6798f48076Smarkus			diff - ${OPENSSHPUB}
6898f48076Smarkus		if [ $? -ne 0 ]; then
6998f48076Smarkus			fail "public keys ($v/$t) differ"
7098f48076Smarkus		fi
7198f48076Smarkus	done
7298f48076Smarkusdone
7398f48076Smarkus
7498f48076Smarkusrm -f $COMPRV $COMPUB $OPENSSHPRV $OPENSSHPUB
75