test SIGUSR1 dropping all keys from ssh-agent
authordjm <djm@openbsd.org>
Thu, 24 Oct 2024 03:28:34 +0000 (03:28 +0000)
committerdjm <djm@openbsd.org>
Thu, 24 Oct 2024 03:28:34 +0000 (03:28 +0000)
regress/usr.bin/ssh/agent.sh

index 5f10606..f0022ac 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: agent.sh,v 1.21 2023/03/01 09:29:32 dtucker Exp $
+#      $OpenBSD: agent.sh,v 1.22 2024/10/24 03:28:34 djm Exp $
 #      Placed in the Public Domain.
 
 tid="simple agent test"
@@ -157,7 +157,7 @@ done
 
 ## Deletion tests.
 
-trace "delete all agent keys"
+trace "delete all agent keys using -D"
 ${SSHADD} -D > /dev/null 2>&1
 r=$?
 if [ $r -ne 0 ]; then
@@ -181,6 +181,29 @@ r=$?
 if [ $r -ne 0 ]; then
        fail "ssh-add -l failed: exit code $r"
 fi
+trace "delete all agent keys using SIGUSR1"
+kill -s USR1 $SSH_AGENT_PID
+r=$?
+if [ $r -ne 0 ]; then
+       fail "kill -s USR1 failed: exit code $r"
+fi
+# make sure they're gone
+${SSHADD} -l > /dev/null 2>&1
+r=$?
+if [ $r -ne 1 ]; then
+       fail "ssh-add -l returned unexpected exit code: $r"
+fi
+# re-add keys/certs to agent
+for t in ${SSH_KEYTYPES}; do
+       ${SSHADD} $OBJ/$t-agent-private >/dev/null 2>&1 || \
+               fail "ssh-add failed exit code $?"
+done
+# make sure they are there
+${SSHADD} -l > /dev/null 2>&1
+r=$?
+if [ $r -ne 0 ]; then
+       fail "ssh-add -l failed: exit code $r"
+fi
 
 check_key_absent() {
        ${SSHADD} -L | grep "^$1 " >/dev/null