From 036bb6a6da613033ac5bb2e742dd24c287fe3a89 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Wed, 27 Mar 2019 23:25:50 +0100 Subject: Wireguard: Move key conversion --- proto/wireguard/wireguard.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'proto/wireguard') diff --git a/proto/wireguard/wireguard.c b/proto/wireguard/wireguard.c index 56507e2b..ade81f1a 100644 --- a/proto/wireguard/wireguard.c +++ b/proto/wireguard/wireguard.c @@ -20,8 +20,14 @@ int get_device(struct wg_proto *p, wg_device **pdev, const char *device_name) wg_device *dev = calloc(1, sizeof(wg_device)); strncpy(dev->name, device_name, sizeof(dev->name)); - dev->flags = WGDEVICE_HAS_PRIVATE_KEY | WGDEVICE_HAS_LISTEN_PORT; - memcpy(dev->private_key, p->private_key, sizeof(dev->private_key)); + if (c->private_key) + { + dev->flags |= WGDEVICE_HAS_PRIVATE_KEY | WGDEVICE_HAS_PUBLIC_KEY; + wg_key_from_base64(dev->private_key, c->private_key); + wg_generate_public_key(dev->public_key, dev->private_key); + } + if (dev->listen_port) + dev->flags |= WGDEVICE_HAS_LISTEN_PORT; dev->listen_port = c->listen_port; debug("listen port %d\n", c->listen_port); @@ -626,13 +632,6 @@ wg_init(struct proto_config *C) P->reload_routes = wg_reload_routes; // P->accept_ra_types = RA_ANY; - log(L_TRACE "WG: private_key %s", c->private_key); - if (c->private_key) - wg_key_from_base64(p->private_key, c->private_key); - log(L_TRACE "WG: public_key %s", c->peer.public_key); - if (c->peer.public_key) - wg_key_from_base64(p->peer.public_key, c->peer.public_key); - /* Add all channels */ struct wg_channel_config *cc; WALK_LIST(cc, C->channels) -- cgit v1.2.3