]> git.ipfire.org Git - thirdparty/wireguard-tools.git/commitdiff
ipc: uniformly ignore preshared keys that are zero
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 11 Mar 2021 22:35:15 +0000 (15:35 -0700)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 11 Mar 2021 22:35:15 +0000 (15:35 -0700)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
src/ipc-freebsd.h
src/ipc-openbsd.h

index e8037affb4ee072c975afc304ce1891a147a2ead..2c10c1020feac397a3fb2d190ecb0ffd6a7de355 100644 (file)
@@ -136,7 +136,8 @@ static int kernel_get_device(struct wgdevice **device, const char *ifname)
                        binary = nvlist_get_binary(nvl_peers[i], "preshared-key", &size);
                        if (binary && size == sizeof(peer->preshared_key)) {
                                memcpy(peer->preshared_key, binary, sizeof(peer->preshared_key));
-                               peer->flags |= WGPEER_HAS_PRESHARED_KEY;
+                               if (!key_is_zero(peer->preshared_key))
+                                       peer->flags |= WGPEER_HAS_PRESHARED_KEY;
                        }
                }
                if (nvlist_exists_number(nvl_peers[i], "persistent-keepalive-interval")) {
index 30554b111a060bc07eca2ebede3eadc09e962070..c529d9aa6601975a6fa28bdf6f4e89bf6f034df3 100644 (file)
@@ -129,7 +129,8 @@ static int kernel_get_device(struct wgdevice **device, const char *iface)
 
                if (wg_peer->p_flags & WG_PEER_HAS_PSK) {
                        memcpy(peer->preshared_key, wg_peer->p_psk, sizeof(peer->preshared_key));
-                       peer->flags |= WGPEER_HAS_PRESHARED_KEY;
+                       if (!key_is_zero(peer->preshared_key))
+                               peer->flags |= WGPEER_HAS_PRESHARED_KEY;
                }
 
                if (wg_peer->p_flags & WG_PEER_HAS_PKA) {