1#	$OpenBSD: try-ciphers.sh,v 1.25 2015/03/24 20:22:17 markus Exp $
2#	Placed in the Public Domain.
3
4tid="try ciphers"
5
6cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak
7
8for c in `${SSH} -Q cipher`; do
9	n=0
10	for m in `${SSH} -Q mac`; do
11		trace "proto 2 cipher $c mac $m"
12		verbose "test $tid: proto 2 cipher $c mac $m"
13		cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy
14		echo "Ciphers=$c" >> $OBJ/sshd_proxy
15		echo "MACs=$m" >> $OBJ/sshd_proxy
16		${SSH} -F $OBJ/ssh_proxy -2 -m $m -c $c somehost true
17		if [ $? -ne 0 ]; then
18			fail "ssh -2 failed with mac $m cipher $c"
19		fi
20		# No point trying all MACs for AEAD ciphers since they
21		# are ignored.
22		if ${SSH} -Q cipher-auth | grep "^${c}\$" >/dev/null 2>&1 ; then
23			break
24		fi
25		n=`expr $n + 1`
26	done
27done
28
29if ssh_version 1; then
30	ciphers="3des blowfish"
31else
32	ciphers=""
33fi
34for c in $ciphers; do
35	trace "proto 1 cipher $c"
36	verbose "test $tid: proto 1 cipher $c"
37	${SSH} -F $OBJ/ssh_proxy -1 -c $c somehost true
38	if [ $? -ne 0 ]; then
39		fail "ssh -1 failed with cipher $c"
40	fi
41done
42
43