1264377Sdes#	$OpenBSD: agent.sh,v 1.10 2014/02/27 21:21:25 djm Exp $
298937Sdes#	Placed in the Public Domain.
398937Sdes
498937Sdestid="simple agent test"
598937Sdes
6180746SdesSSH_AUTH_SOCK=/nonexistent ${SSHADD} -l > /dev/null 2>&1
798937Sdesif [ $? -ne 2 ]; then
898937Sdes	fail "ssh-add -l did not fail with exit code 2"
998937Sdesfi
1098937Sdes
1198937Sdestrace "start agent"
1298937Sdeseval `${SSHAGENT} -s` > /dev/null
1398937Sdesr=$?
1498937Sdesif [ $r -ne 0 ]; then
1598937Sdes	fail "could not start ssh-agent: exit code $r"
1698937Sdeselse
1798937Sdes	${SSHADD} -l > /dev/null 2>&1
1898937Sdes	if [ $? -ne 1 ]; then
1998937Sdes		fail "ssh-add -l did not fail with exit code 1"
2098937Sdes	fi
2198937Sdes	trace "overwrite authorized keys"
22255670Sdes	printf '' > $OBJ/authorized_keys_$USER
23262566Sdes	for t in ed25519 rsa rsa1; do
2498937Sdes		# generate user key for agent
2598937Sdes		rm -f $OBJ/$t-agent
2698937Sdes		${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t-agent ||\
2798937Sdes			 fail "ssh-keygen for $t-agent failed"
2898937Sdes		# add to authorized keys
2998937Sdes		cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER
3098937Sdes		# add privat key to agent
3198937Sdes		${SSHADD} $OBJ/$t-agent > /dev/null 2>&1
3298937Sdes		if [ $? -ne 0 ]; then
3398937Sdes			fail "ssh-add did succeed exit code 0"
3498937Sdes		fi
3598937Sdes	done
3698937Sdes	${SSHADD} -l > /dev/null 2>&1
37262566Sdes	r=$?
38262566Sdes	if [ $r -ne 0 ]; then
39262566Sdes		fail "ssh-add -l failed: exit code $r"
4098937Sdes	fi
4198937Sdes	# the same for full pubkey output
4298937Sdes	${SSHADD} -L > /dev/null 2>&1
43262566Sdes	r=$?
44262566Sdes	if [ $r -ne 0 ]; then
45262566Sdes		fail "ssh-add -L failed: exit code $r"
4698937Sdes	fi
4798937Sdes
4898937Sdes	trace "simple connect via agent"
4998937Sdes	for p in 1 2; do
5098937Sdes		${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p
51262566Sdes		r=$?
52262566Sdes		if [ $r -ne 5$p ]; then
53262566Sdes			fail "ssh connect with protocol $p failed (exit code $r)"
5498937Sdes		fi
5598937Sdes	done
5698937Sdes
5798937Sdes	trace "agent forwarding"
5898937Sdes	for p in 1 2; do
5998937Sdes		${SSH} -A -$p -F $OBJ/ssh_proxy somehost ${SSHADD} -l > /dev/null 2>&1
60262566Sdes		r=$?
61262566Sdes		if [ $r -ne 0 ]; then
62262566Sdes			fail "ssh-add -l via agent fwd proto $p failed (exit code $r)"
6398937Sdes		fi
6498937Sdes		${SSH} -A -$p -F $OBJ/ssh_proxy somehost \
6598937Sdes			"${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p"
66262566Sdes		r=$?
67262566Sdes		if [ $r -ne 5$p ]; then
68262566Sdes			fail "agent fwd proto $p failed (exit code $r)"
6998937Sdes		fi
7098937Sdes	done
7198937Sdes
7298937Sdes	trace "delete all agent keys"
7398937Sdes	${SSHADD} -D > /dev/null 2>&1
74262566Sdes	r=$?
75262566Sdes	if [ $r -ne 0 ]; then
76262566Sdes		fail "ssh-add -D failed: exit code $r"
7798937Sdes	fi
7898937Sdes
7998937Sdes	trace "kill agent"
8098937Sdes	${SSHAGENT} -k > /dev/null
8198937Sdesfi
82