aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/ipc.c
diff options
context:
space:
mode:
authorMatt Dunwoodie <ncon@mail.noconroy.net>2019-08-29 14:06:27 +1000
committerMatt Dunwoodie <ncon@mail.noconroy.net>2019-08-29 14:06:27 +1000
commit608b96e058baad32be249f7267b93e76adcd5711 (patch)
treebeeae0c73e49aacf545d48f6e5c73e3efb9ef9cd /src/tools/ipc.c
parentAdd support for rdomain (diff)
downloadwireguard-monolithic-historical-608b96e058baad32be249f7267b93e76adcd5711.tar.xz
wireguard-monolithic-historical-608b96e058baad32be249f7267b93e76adcd5711.zip
Return null key when masked
Diffstat (limited to 'src/tools/ipc.c')
-rw-r--r--src/tools/ipc.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/tools/ipc.c b/src/tools/ipc.c
index 3301c54..d23b2cb 100644
--- a/src/tools/ipc.c
+++ b/src/tools/ipc.c
@@ -1017,13 +1017,19 @@ static int openbsd_get_device(struct wgdevice **device, const char *interface)
dev->flags |= WGDEVICE_HAS_LISTEN_PORT;
}
- if (!IS_NULL_KEY(wgs.gs_pubkey) || IS_MASKED_KEY(wgs.gs_pubkey)) {
- memcpy(dev->public_key, wgs.gs_pubkey, WG_KEY_SIZE);
+ if (!IS_NULL_KEY(wgs.gs_pubkey)) {
+ if (IS_MASKED_KEY(wgs.gs_pubkey))
+ bzero(dev->public_key, WG_KEY_SIZE);
+ else
+ memcpy(dev->public_key, wgs.gs_pubkey, WG_KEY_SIZE);
dev->flags |= WGDEVICE_HAS_PUBLIC_KEY;
}
- if (!IS_NULL_KEY(wgs.gs_privkey) || IS_MASKED_KEY(wgs.gs_privkey)) {
- memcpy(dev->private_key, wgs.gs_privkey, WG_KEY_SIZE);
+ if (!IS_NULL_KEY(wgs.gs_privkey)) {
+ if (IS_MASKED_KEY(wgs.gs_privkey))
+ bzero(dev->private_key, WG_KEY_SIZE);
+ else
+ memcpy(dev->private_key, wgs.gs_privkey, WG_KEY_SIZE);
dev->flags |= WGDEVICE_HAS_PRIVATE_KEY;
}
@@ -1053,8 +1059,11 @@ static int openbsd_get_device(struct wgdevice **device, const char *interface)
peer->flags |= WGPEER_HAS_PUBLIC_KEY;
}
- if (!IS_NULL_KEY(wgp.gp_psk) || IS_MASKED_KEY(wgp.gp_psk)) {
- memcpy(peer->preshared_key, wgp.gp_psk, WG_KEY_SIZE);
+ if (!IS_NULL_KEY(wgp.gp_psk)) {
+ if (IS_MASKED_KEY(wgs.gs_privkey))
+ bzero(peer->preshared_key, WG_KEY_SIZE);
+ else
+ memcpy(peer->preshared_key, wgp.gp_psk, WG_KEY_SIZE);
peer->flags |= WGPEER_HAS_PRESHARED_KEY;
}