diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2019-03-27 23:25:50 +0100 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2020-09-13 18:05:34 +0200 |
commit | 036bb6a6da613033ac5bb2e742dd24c287fe3a89 (patch) | |
tree | 3fb44ee08d6eac1797ecef6004e2264f0359e983 /proto | |
parent | d7ad58f87c0b73b913087ca28dba6b14bbe85ec0 (diff) |
Wireguard: Move key conversion
Diffstat (limited to 'proto')
-rw-r--r-- | proto/wireguard/wireguard.c | 17 |
1 files changed, 8 insertions, 9 deletions
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) |