diff --git a/src/ipc-freebsd.h b/src/ipc-freebsd.h index e8037af..2c10c10 100644 --- a/src/ipc-freebsd.h +++ b/src/ipc-freebsd.h @@ -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")) { diff --git a/src/ipc-openbsd.h b/src/ipc-openbsd.h index 30554b1..c529d9a 100644 --- a/src/ipc-openbsd.h +++ b/src/ipc-openbsd.h @@ -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) {