xref: /freebsd/crypto/openssh/regress/agent-timeout.sh (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
1#	$OpenBSD: agent-timeout.sh,v 1.6 2019/11/26 23:43:10 djm Exp $
2#	Placed in the Public Domain.
3
4tid="agent timeout test"
5
6SSHAGENT_TIMEOUT=10
7
8trace "start agent"
9eval `${SSHAGENT} -s ${EXTRA_AGENT_ARGS}` > /dev/null
10r=$?
11if [ $r -ne 0 ]; then
12	fail "could not start ssh-agent: exit code $r"
13else
14	trace "add keys with timeout"
15	keys=0
16	for t in ${SSH_KEYTYPES}; do
17		${SSHADD} -kt ${SSHAGENT_TIMEOUT} $OBJ/$t > /dev/null 2>&1
18		if [ $? -ne 0 ]; then
19			fail "ssh-add did succeed exit code 0"
20		fi
21		keys=$((${keys} + 1))
22	done
23	n=`${SSHADD} -l 2> /dev/null | wc -l`
24	trace "agent has $n keys"
25	if [ $n -ne $keys ]; then
26		fail "ssh-add -l did not return $keys keys: $n"
27	fi
28	trace "sleeping 2*${SSHAGENT_TIMEOUT} seconds"
29	sleep ${SSHAGENT_TIMEOUT}
30	sleep ${SSHAGENT_TIMEOUT}
31	${SSHADD} -l 2> /dev/null | grep 'The agent has no identities.' >/dev/null
32	if [ $? -ne 0 ]; then
33		fail "ssh-add -l still returns keys after timeout"
34	fi
35
36	trace "kill agent"
37	${SSHAGENT} -k > /dev/null
38fi
39