diff options
author | Matt Dunwoodie <ncon@mail.noconroy.net> | 2019-08-29 14:06:27 +1000 |
---|---|---|
committer | Matt Dunwoodie <ncon@mail.noconroy.net> | 2019-08-29 14:06:27 +1000 |
commit | 608b96e058baad32be249f7267b93e76adcd5711 (patch) | |
tree | beeae0c73e49aacf545d48f6e5c73e3efb9ef9cd /src/tools/ipc.c | |
parent | Add support for rdomain (diff) | |
download | wireguard-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.c | 21 |
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; } |