xref: /freebsd/crypto/openssh/regress/ssh-com.sh (revision 77b7cdf1999ee965ad494fddd184b18f532ac91a)
1#	$OpenBSD: ssh-com.sh,v 1.4 2002/07/16 08:58:16 markus Exp $
2#	Placed in the Public Domain.
3
4tid="connect to ssh.com server"
5
6#TEST_COMBASE=/path/to/ssh/com/binaries
7if [ "X${TEST_COMBASE}" = "X" ]; then
8	fatal '$TEST_COMBASE is not set'
9fi
10
11VERSIONS="
12	2.0.12
13	2.0.13
14	2.1.0
15	2.2.0
16	2.3.0
17	2.4.0
18	3.0.0
19	3.1.0
20	3.2.0
21	3.3.0"
22# 2.0.10 does not support UserConfigDirectory
23# 2.3.1 requires a config in $HOME/.ssh2
24
25SRC=`dirname ${SCRIPT}`
26
27# ssh.com
28cat << EOF > $OBJ/sshd2_config
29#*:
30	# Port and ListenAdress are not used.
31	QuietMode			yes
32	Port				4343
33	ListenAddress			127.0.0.1
34	UserConfigDirectory		${OBJ}/%U
35	Ciphers				AnyCipher
36	PubKeyAuthentication		yes
37	#AllowedAuthentications		publickey
38	AuthorizationFile		authorization
39	HostKeyFile			${SRC}/dsa_ssh2.prv
40	PublicHostKeyFile		${SRC}/dsa_ssh2.pub
41	RandomSeedFile			${OBJ}/random_seed
42	MaxConnections			0 
43	PermitRootLogin			yes
44	VerboseMode			no
45	CheckMail			no
46	Ssh1Compatibility		no
47EOF
48
49# create client config
50sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \
51	< $OBJ/ssh_config > $OBJ/ssh_config_com
52
53# we need a DSA key for
54rm -f                             ${OBJ}/dsa ${OBJ}/dsa.pub
55${SSHKEYGEN} -q -N '' -t dsa -f	  ${OBJ}/dsa
56
57# setup userdir, try rsa first
58mkdir -p ${OBJ}/${USER}
59cp /dev/null ${OBJ}/${USER}/authorization
60for t in rsa dsa; do
61	${SSHKEYGEN} -e -f ${OBJ}/$t.pub	>  ${OBJ}/${USER}/$t.com
62	echo Key $t.com			>> ${OBJ}/${USER}/authorization
63	echo IdentityFile ${OBJ}/$t	>> ${OBJ}/ssh_config_com
64done
65
66# convert and append DSA hostkey
67(
68	echo -n 'ssh2-localhost-with-alias,127.0.0.1,::1 '
69	${SSHKEYGEN} -if ${SRC}/dsa_ssh2.pub
70) >> $OBJ/known_hosts
71
72# go for it
73for v in ${VERSIONS}; do
74	sshd2=${TEST_COMBASE}/${v}/sshd2
75	if [ ! -x ${sshd2} ]; then
76		continue
77	fi
78	trace "sshd2 ${v}"
79	PROXY="proxycommand ${sshd2} -qif ${OBJ}/sshd2_config 2> /dev/null"
80	${SSH} -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0
81        if [ $? -ne 0 ]; then
82                fail "ssh connect to sshd2 ${v} failed"
83        fi
84
85	ciphers="3des-cbc blowfish-cbc arcfour"
86	macs="hmac-md5"
87	case $v in
88	2.4.*)
89		ciphers="$ciphers cast128-cbc"
90		macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96"
91		;;
92	3.*)
93		ciphers="$ciphers aes128-cbc cast128-cbc"
94		macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96"
95		;;
96	esac
97	#ciphers="3des-cbc"
98	for m in $macs; do
99	for c in $ciphers; do
100		trace "sshd2 ${v} cipher $c mac $m"
101		verbose "test ${tid}: sshd2 ${v} cipher $c mac $m"
102		${SSH} -c $c -m $m -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0
103		if [ $? -ne 0 ]; then
104			fail "ssh connect to sshd2 ${v} with $c/$m failed"
105		fi
106	done
107	done
108done
109
110rm -rf ${OBJ}/${USER}
111for i in sshd_config_proxy ssh_config_proxy random_seed \
112	sshd2_config dsa.pub dsa ssh_config_com; do
113	rm -f ${OBJ}/$i
114done
115