summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2024-10-24 05:28:34 +0200
committerDamien Miller <djm@mindrot.org>2024-10-24 05:29:59 +0200
commitde644b1831b970f6655f871c051774cc871e8e74 (patch)
treefa79eca4210c275a07a5e1737ace505dd1285159
parentupstream: amake ssh-agent drop all keys when it receives SIGUSR1; (diff)
downloadopenssh-de644b1831b970f6655f871c051774cc871e8e74.tar.xz
openssh-de644b1831b970f6655f871c051774cc871e8e74.zip
upstream: test SIGUSR1 dropping all keys from ssh-agent
OpenBSD-Regress-ID: 8654b9aa8eb695b1499fffc408c25319592bf0e0
-rw-r--r--regress/agent.sh27
1 files changed, 25 insertions, 2 deletions
diff --git a/regress/agent.sh b/regress/agent.sh
index 5f1060608..f0022aca5 100644
--- a/regress/agent.sh
+++ b/regress/agent.sh
@@ -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