summaryrefslogtreecommitdiff
path: root/regress/agent.sh
diff options
context:
space:
mode:
Diffstat (limited to 'regress/agent.sh')
-rw-r--r--regress/agent.sh73
1 files changed, 68 insertions, 5 deletions
diff --git a/regress/agent.sh b/regress/agent.sh
index 39403653c..a3ad1385f 100644
--- a/regress/agent.sh
+++ b/regress/agent.sh
@@ -1,4 +1,4 @@
1# $OpenBSD: agent.sh,v 1.17 2019/12/21 02:33:07 djm Exp $ 1# $OpenBSD: agent.sh,v 1.19 2020/07/15 04:55:47 dtucker Exp $
2# Placed in the Public Domain. 2# Placed in the Public Domain.
3 3
4tid="simple agent test" 4tid="simple agent test"
@@ -45,17 +45,20 @@ for t in ${SSH_KEYTYPES}; do
45 # add to authorized keys 45 # add to authorized keys
46 cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER 46 cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER
47 # add private key to agent 47 # add private key to agent
48 ${SSHADD} $OBJ/$t-agent #> /dev/null 2>&1 48 ${SSHADD} $OBJ/$t-agent > /dev/null 2>&1
49 if [ $? -ne 0 ]; then 49 if [ $? -ne 0 ]; then
50 fail "ssh-add failed exit code $?" 50 fail "ssh-add failed exit code $?"
51 fi 51 fi
52 # add private key to second agent 52 # add private key to second agent
53 SSH_AUTH_SOCK=$FW_SSH_AUTH_SOCK ${SSHADD} $OBJ/$t-agent #> /dev/null 2>&1 53 SSH_AUTH_SOCK=$FW_SSH_AUTH_SOCK ${SSHADD} $OBJ/$t-agent > /dev/null 2>&1
54 if [ $? -ne 0 ]; then 54 if [ $? -ne 0 ]; then
55 fail "ssh-add failed exit code $?" 55 fail "ssh-add failed exit code $?"
56 fi 56 fi
57 # Remove private key to ensure that we aren't accidentally using it. 57 # Move private key to ensure that we aren't accidentally using it.
58 rm -f $OBJ/$t-agent 58 # Keep the corresponding public keys/certs around for later use.
59 mv -f $OBJ/$t-agent $OBJ/$t-agent-private
60 cp -f $OBJ/$t-agent.pub $OBJ/$t-agent-private.pub
61 cp -f $OBJ/$t-agent-cert.pub $OBJ/$t-agent-private-cert.pub
59done 62done
60 63
61# Remove explicit identity directives from ssh_proxy 64# Remove explicit identity directives from ssh_proxy
@@ -152,12 +155,72 @@ for t in ${SSH_KEYTYPES}; do
152 fi 155 fi
153done 156done
154 157
158## Deletion tests.
159
155trace "delete all agent keys" 160trace "delete all agent keys"
156${SSHADD} -D > /dev/null 2>&1 161${SSHADD} -D > /dev/null 2>&1
157r=$? 162r=$?
158if [ $r -ne 0 ]; then 163if [ $r -ne 0 ]; then
159 fail "ssh-add -D failed: exit code $r" 164 fail "ssh-add -D failed: exit code $r"
160fi 165fi
166# make sure they're gone
167${SSHADD} -l > /dev/null 2>&1
168r=$?
169if [ $r -ne 1 ]; then
170 fail "ssh-add -l returned unexpected exit code: $r"
171fi
172trace "readd keys"
173# re-add keys/certs to agent
174for t in ${SSH_KEYTYPES}; do
175 ${SSHADD} $OBJ/$t-agent-private >/dev/null 2>&1 || \
176 fail "ssh-add failed exit code $?"
177done
178# make sure they are there
179${SSHADD} -l > /dev/null 2>&1
180r=$?
181if [ $r -ne 0 ]; then
182 fail "ssh-add -l failed: exit code $r"
183fi
184
185check_key_absent() {
186 ${SSHADD} -L | grep "^$1 " >/dev/null
187 if [ $? -eq 0 ]; then
188 fail "$1 key unexpectedly present"
189 fi
190}
191check_key_present() {
192 ${SSHADD} -L | grep "^$1 " >/dev/null
193 if [ $? -ne 0 ]; then
194 fail "$1 key missing from agent"
195 fi
196}
197
198# delete the ed25519 key
199trace "delete single key by file"
200${SSHADD} -qdk $OBJ/ssh-ed25519-agent || fail "ssh-add -d ed25519 failed"
201check_key_absent ssh-ed25519
202check_key_present ssh-ed25519-cert-v01@openssh.com
203# Put key/cert back.
204${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \
205 fail "ssh-add failed exit code $?"
206check_key_present ssh-ed25519
207# Delete both key and certificate.
208trace "delete key/cert by file"
209${SSHADD} -qd $OBJ/ssh-ed25519-agent || fail "ssh-add -d ed25519 failed"
210check_key_absent ssh-ed25519
211check_key_absent ssh-ed25519-cert-v01@openssh.com
212# Put key/cert back.
213${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \
214 fail "ssh-add failed exit code $?"
215check_key_present ssh-ed25519
216# Delete certificate via stdin
217${SSHADD} -qd - < $OBJ/ssh-ed25519-agent-cert.pub || fail "ssh-add -d - failed"
218check_key_present ssh-ed25519
219check_key_absent ssh-ed25519-cert-v01@openssh.com
220# Delete key via stdin
221${SSHADD} -qd - < $OBJ/ssh-ed25519-agent.pub || fail "ssh-add -d - failed"
222check_key_absent ssh-ed25519
223check_key_absent ssh-ed25519-cert-v01@openssh.com
161 224
162trace "kill agent" 225trace "kill agent"
163${SSHAGENT} -k > /dev/null 226${SSHAGENT} -k > /dev/null