summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-11-23 01:17:25 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2017-11-23 11:09:12 +0100
commit3b352a9748e9c209ef562b8a196bc7b4ecb7b9d9 (patch)
tree5cc01e33908a1dbf8bd0cd9cfd7880cea6d169ea
parent71db96bcb99cc8e8e06885d7fa8819c6a02c963a (diff)
tools: fix removing preshared keys
Also clean up related logic quite a bit and add unit tests. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rwxr-xr-xsrc/tests/netns.sh18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/tests/netns.sh b/src/tests/netns.sh
index 2ad8d88..8118b02 100755
--- a/src/tests/netns.sh
+++ b/src/tests/netns.sh
@@ -427,6 +427,24 @@ ip0 link del wg0
! n0 wg show doesnotexist || false
+n0 ip link add wg0 type wireguard
+n0 wg set wg0 private-key <(echo "$key1") peer "$pub2" preshared-key <(echo "$psk")
+[[ $(n0 wg show wg0 private-key) == "$key1" ]]
+[[ $(n0 wg show wg0 preshared-keys) == "$pub2 $psk" ]]
+n0 wg set wg0 private-key /dev/null peer "$pub2" preshared-key /dev/null
+[[ $(n0 wg show wg0 private-key) == "(none)" ]]
+[[ $(n0 wg show wg0 preshared-keys) == "$pub2 (none)" ]]
+n0 wg set wg0 peer "$pub2"
+n0 wg set wg0 private-key <(echo "$key2")
+[[ $(n0 wg show wg0 public-key) == "$pub2" ]]
+[[ -z $(n0 wg show wg0 peers) ]]
+n0 wg set wg0 peer "$pub2"
+[[ -z $(n0 wg show wg0 peers) ]]
+n0 wg set wg0 private-key <(echo "$key1")
+n0 wg set wg0 peer "$pub2"
+[[ $(n0 wg show wg0 peers) == "$pub2" ]]
+n0 ip link del wg0
+
declare -A objects
while read -t 0.1 -r line 2>/dev/null || [[ $? -ne 142 ]]; do
[[ $line =~ .*(wg[0-9]+:\ [A-Z][a-z]+\ [0-9]+)\ .*(created|destroyed).* ]] || continue