]> git.ipfire.org Git - thirdparty/wireguard-tools.git/log
thirdparty/wireguard-tools.git
5 years agowg-quick: linux: filter bogus injected packets and don't disable rpfilter
Jason A. Donenfeld [Thu, 21 Nov 2019 10:19:43 +0000 (11:19 +0100)] 
wg-quick: linux: filter bogus injected packets and don't disable rpfilter

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: only touch net.ipv4 for v4
Jason A. Donenfeld [Thu, 21 Nov 2019 09:53:45 +0000 (10:53 +0100)] 
wg-quick: linux: only touch net.ipv4 for v4

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: check for null in binder cleanup functions
Jason A. Donenfeld [Wed, 16 Oct 2019 12:23:27 +0000 (14:23 +0200)] 
wg-quick: android: check for null in binder cleanup functions

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: android: use Binder for setting DNS on Android 10
Nicolas Douma [Wed, 2 Oct 2019 19:10:51 +0000 (21:10 +0200)] 
wg-quick: android: use Binder for setting DNS on Android 10

Signed-off-by: Nicolas Douma <nicolas@serveur.io>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg: windows: enforce named pipe ownership and use protected prefix
Jason A. Donenfeld [Fri, 30 Aug 2019 19:51:27 +0000 (13:51 -0600)] 
wg: windows: enforce named pipe ownership and use protected prefix

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
5 years agowg-quick: linux: don't fail down when using systemd-resolved
Ronan Pigott [Wed, 28 Aug 2019 01:42:14 +0000 (18:42 -0700)] 
wg-quick: linux: don't fail down when using systemd-resolved

systemd-resolved has a compatibility interface for use with resolvconf
scripts when resolvectl is called from a symlink from resolvconf.
However, when tearing down the interface, cmd_down calls del_if and then
unset_dns. In the case of systemd-resolved, deleting the interface also
removes the systemd-resolved entry and causes resolvconf -d to fail when
resolvconf really is a symlink to resolvectl. This causes `wg-quick
down` and 'wg-quick@.service' to exit with failure.

Instead we use the resolvconf '-f' flag to ignore non-existent
interfaces, supported by both openresolv and sd-resolved resolvconf.

Signed-off-by: Ronan Pigott <rpigott@berkeley.edu>
[zx2c4: moved -f argument to end to remain compatible with Debian's resolvconf]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: openbsd: fix alternate routing table syntax
Ankur Kothari [Mon, 5 Aug 2019 22:57:28 +0000 (08:57 +1000)] 
wg-quick: openbsd: fix alternate routing table syntax

route(8) has always used the `-T` option to specify the
routing table; there is no `rdomain` option.

Signed-off-by: Ankur Kothari <ankur@lipidity.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: android: refactor and add incoming allow rules
Jason A. Donenfeld [Mon, 8 Jul 2019 10:56:41 +0000 (12:56 +0200)] 
wg-quick: android: refactor and add incoming allow rules

Suggested-by: Yağmur Oymak <yagmur.oymak@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: darwin: support being called from launchd
Jason A. Donenfeld [Wed, 19 Jun 2019 11:18:34 +0000 (13:18 +0200)] 
wg-quick: darwin: support being called from launchd

This causes wg-quick up to wait for the monitor to exit before it exits,
so that launchd can correctly wait on it.

Reported-by: Cameron Palmer <cameron@promon.no>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: pass WG_ENDPOINT_RESOLUTION_RETRIES=infinity to systemd unit
Jason A. Donenfeld [Fri, 31 May 2019 19:10:41 +0000 (21:10 +0200)] 
wg: pass WG_ENDPOINT_RESOLUTION_RETRIES=infinity to systemd unit

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: add wincompat layer to wg(8)
Jason A. Donenfeld [Sat, 11 May 2019 17:34:19 +0000 (19:34 +0200)] 
wg: add wincompat layer to wg(8)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: allow setting WG_ENDPOINT_RESOLUTION_RETRIES
Jason A. Donenfeld [Tue, 28 May 2019 20:45:15 +0000 (22:45 +0200)] 
wg: allow setting WG_ENDPOINT_RESOLUTION_RETRIES

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: specify protocol to ip(8), because of inconsistencies
Jason A. Donenfeld [Fri, 17 May 2019 15:30:38 +0000 (17:30 +0200)] 
wg-quick: specify protocol to ip(8), because of inconsistencies

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: look up existing routes properly
Jason A. Donenfeld [Fri, 17 May 2019 10:32:46 +0000 (12:32 +0200)] 
wg-quick: look up existing routes properly

This was never really correct, and then 5.1 broke it entirely.

Reported-by: piraty1@inbox.ru
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: make darwin and freebsd path search strict like linux
Jason A. Donenfeld [Tue, 23 Apr 2019 09:16:16 +0000 (18:16 +0900)] 
wg-quick: make darwin and freebsd path search strict like linux

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: freebsd: workaround SIOCGIFSTATUS race in FreeBSD kernel
Jason A. Donenfeld [Sun, 21 Apr 2019 01:11:36 +0000 (10:11 +0900)] 
wg-quick: freebsd: workaround SIOCGIFSTATUS race in FreeBSD kernel

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: avoid unneccessary next_peer assignments in sort_peers()
Luis Ressel [Sat, 23 Mar 2019 00:31:19 +0000 (01:31 +0100)] 
wg: avoid unneccessary next_peer assignments in sort_peers()

Signed-off-by: Luis Ressel <aranea@aixah.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: add 'strip' subcommand
Luis Ressel [Wed, 13 Mar 2019 23:36:22 +0000 (00:36 +0100)] 
wg-quick: add 'strip' subcommand

`wg-quick strip` prints the config file to stdout after stripping it of
all wg-quick-specific options.

This enables tricks such as `wg addconf $DEV <(wg-quick strip $DEV)`.

Signed-off-by: Luis Ressel <aranea@aixah.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: warn if an AllowedIP has a nonzero host part
Luis Ressel [Sat, 16 Mar 2019 23:02:32 +0000 (00:02 +0100)] 
wg: warn if an AllowedIP has a nonzero host part

Signed-off-by: Luis Ressel <aranea@aixah.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: freebsd: export TMPDIR when restoring and don't make empty
Jason A. Donenfeld [Mon, 18 Mar 2019 20:41:10 +0000 (14:41 -0600)] 
wg-quick: freebsd: export TMPDIR when restoring and don't make empty

Otherwise mktemp doesn't see it, and if it's empty we wind up in /.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: add support for Haiku
Alexander von Gluck IV [Thu, 28 Feb 2019 16:23:45 +0000 (10:23 -0600)] 
wg: add support for Haiku

Signed-off-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: genkey: account for short reads of /dev/urandom
Jason A. Donenfeld [Thu, 28 Feb 2019 22:37:24 +0000 (23:37 +0100)] 
wg: genkey: account for short reads of /dev/urandom

Apparently Haiku has a misbehaving /dev/urandom.

While we're at it, simplify the function signature to completely succeed
or completely fail and make sure the caller checks the result.

Reported-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Nitpicked-by: Aaron Jones <aaronmdjones@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: freebsd: rebreak interface loopback, while fixing localhost
Jason A. Donenfeld [Thu, 28 Feb 2019 18:03:11 +0000 (19:03 +0100)] 
wg-quick: freebsd: rebreak interface loopback, while fixing localhost

The commit 7c833642 ("wg-quick: freebsd: allow loopback to work") was
supposed to make things better, but actually it just started sending
legitimate localhost traffic over the WireGuard interface, which is
really quite bad.

This reverts commit 7c833642dfa342218602ab18e7091e86408d2982.

Reported-by: Matt Smith <matt.xtaz@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: c_acc doesn't need to be initialized
Jason A. Donenfeld [Fri, 8 Feb 2019 01:32:15 +0000 (02:32 +0100)] 
wg: c_acc doesn't need to be initialized

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: fight compiler slightly harder
Jason A. Donenfeld [Tue, 5 Feb 2019 00:00:52 +0000 (01:00 +0100)] 
wg: fight compiler slightly harder

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agonoise: store clamped key instead of raw key
Jason A. Donenfeld [Sun, 3 Feb 2019 20:50:54 +0000 (21:50 +0100)] 
noise: store clamped key instead of raw key

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agohighlighter: when subtracting char, cast to unsigned
Jason A. Donenfeld [Thu, 31 Jan 2019 01:03:10 +0000 (02:03 +0100)] 
highlighter: when subtracting char, cast to unsigned

Windows.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agosystemd: wg-quick should depend on nss-lookup.target
Jason A. Donenfeld [Wed, 30 Jan 2019 17:53:37 +0000 (18:53 +0100)] 
systemd: wg-quick should depend on nss-lookup.target

Since wg-quick(8) calls wg(8) which does hostname lookups, we should
probably only run this after we're allowed to look up hostnames.

Reported-by: Anton Castelli <anton.c42@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: remove unused check phony declaration
Jason A. Donenfeld [Thu, 24 Jan 2019 17:14:38 +0000 (18:14 +0100)] 
wg: remove unused check phony declaration

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: freebsd: allow loopback to work
Jason A. Donenfeld [Thu, 24 Jan 2019 02:26:51 +0000 (03:26 +0100)] 
wg-quick: freebsd: allow loopback to work

FreeBSD adds a route for point-to-point destination addresses. We don't
really want to specify any destination address, but unfortunately we
have to. Before we tried to cheat by giving our own address as the
destination, but this had the unfortunate effect of preventing
loopback from working on our local ip address. We work around this with
yet another kludge: we set the destination address to 127.0.0.1. Since
127.0.0.1 is already assigned to an interface, this has the same effect
of not specifying a destination address, and therefore we accomplish the
intended behavior.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agonetlink: use __kernel_timespec for handshake time
Jason A. Donenfeld [Tue, 22 Jan 2019 12:38:52 +0000 (13:38 +0100)] 
netlink: use __kernel_timespec for handshake time

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agocontrib: introduce simple highlighter library
Jason A. Donenfeld [Sat, 5 Jan 2019 16:02:14 +0000 (17:02 +0100)] 
contrib: introduce simple highlighter library

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: normalize -> clamp
Jason A. Donenfeld [Fri, 11 Jan 2019 09:13:35 +0000 (01:13 -0800)] 
global: normalize -> clamp

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agokeygen-html: bring back pure javascript implementation
Jason A. Donenfeld [Thu, 26 Jul 2018 18:05:47 +0000 (20:05 +0200)] 
keygen-html: bring back pure javascript implementation

This reverts commit 9d5baf7d1d14ca7eb0852b41566330259229d489.

Benoît Viguier has proofs that values will stay well within 2^53. We
also have an improved carry function that's much simpler.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoKconfig: IPsec isn't IPSec
Jason A. Donenfeld [Tue, 8 Jan 2019 02:03:39 +0000 (18:03 -0800)] 
Kconfig: IPsec isn't IPSec

Reported-by: Raf Czlonka <rczlonka@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: update copyright
Jason A. Donenfeld [Wed, 2 Jan 2019 00:58:10 +0000 (01:58 +0100)] 
global: update copyright

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: curve25519: handle unaligned loads/stores safely
Jason A. Donenfeld [Thu, 20 Dec 2018 17:30:21 +0000 (18:30 +0100)] 
wg: curve25519: handle unaligned loads/stores safely

Reported-by: Chris Hewitt <chris@chrishewitt.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agomakefile: use immediate expansion and use correct template patterns
Jason A. Donenfeld [Sat, 15 Dec 2018 23:50:39 +0000 (00:50 +0100)] 
makefile: use immediate expansion and use correct template patterns

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: bring interface up while setting MTU
Aaron Jones [Sun, 16 Dec 2018 21:04:02 +0000 (21:04 +0000)] 
wg-quick: bring interface up while setting MTU

This avoids another ip(8) invocation for little benefit.
Confirmed to work with iproute2 and busybox.

Signed-off-by: Aaron Jones <aaronmdjones@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoembeddable-wg-library: do not warn on unrecognized netlink attributes
Jason A. Donenfeld [Fri, 7 Dec 2018 04:36:26 +0000 (05:36 +0100)] 
embeddable-wg-library: do not warn on unrecognized netlink attributes

This is a follow up of bcf8684c9ec90fe0d283a67d1654d05fb3eae019.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: various formatting tweeks
Jason A. Donenfeld [Mon, 12 Nov 2018 03:35:07 +0000 (22:35 -0500)] 
global: various formatting tweeks

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: android: do not choke on empty allowed-ips
Jason A. Donenfeld [Mon, 12 Nov 2018 03:11:56 +0000 (22:11 -0500)] 
wg-quick: android: do not choke on empty allowed-ips

Reported-by: Samuel Holland <samuel@sholland.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agokeygen-html: add missing glue macro
Jason A. Donenfeld [Tue, 6 Nov 2018 02:30:06 +0000 (03:30 +0100)] 
keygen-html: add missing glue macro

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg.8: AllowedIPs isn't actually required
Jason A. Donenfeld [Fri, 19 Oct 2018 01:35:25 +0000 (03:35 +0200)] 
wg.8: AllowedIPs isn't actually required

An empty allowed IPs is totally valid, for folks wishing to move IP
addresses between multiple peers atomically.

Suggested-by: Comex <comexk@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg.8: specify that wg(8) shows runtime info too
Jason A. Donenfeld [Fri, 19 Oct 2018 01:33:53 +0000 (03:33 +0200)] 
wg.8: specify that wg(8) shows runtime info too

Suggested-by: Comex <comexk@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: wait for interface to disappear on freebsd
Jason A. Donenfeld [Fri, 12 Oct 2018 14:55:35 +0000 (16:55 +0200)] 
wg-quick: wait for interface to disappear on freebsd

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: don't fail if a netlink interface dump is inconsistent
Jason A. Donenfeld [Fri, 12 Oct 2018 14:40:29 +0000 (16:40 +0200)] 
wg: don't fail if a netlink interface dump is inconsistent

Netlink returns NLM_F_DUMP_INTR if the set of all tunnels changed
during the dump. That's unfortunate, but is pretty common on busy
systems that are adding and removing tunnels all the time. Rather
than retrying, potentially indefinitely, we just work with the
partial results.

Reported-by: Robert Gerus <ar@is-a.cat>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: compile on gnu99
Jason A. Donenfeld [Tue, 9 Oct 2018 13:23:42 +0000 (15:23 +0200)] 
wg: compile on gnu99

We don't actually use any C11 features, so we can at least compile with
ancient gcc.

Reported-by: Aaron M. D. Jones <aaronmdjones@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: use libc's endianness macro if no compiler macro
Jason A. Donenfeld [Tue, 9 Oct 2018 13:21:27 +0000 (15:21 +0200)] 
wg: use libc's endianness macro if no compiler macro

This lets us be compiled with ancient gcc.

Reported-by: Jeff Brandt <jeff@jeffcolo.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: rename struct wireguard_ to struct wg_
Jason A. Donenfeld [Mon, 8 Oct 2018 01:36:20 +0000 (03:36 +0200)] 
global: rename struct wireguard_ to struct wg_

This required a bit of pruning of our christmas trees.

Suggested-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agonetlink: do not stuff index into nla type
Jason A. Donenfeld [Mon, 8 Oct 2018 01:06:47 +0000 (03:06 +0200)] 
netlink: do not stuff index into nla type

It's not used for anything, and LKML doesn't like the type being used as
an index value.

Suggested-by: Eugene Syromiatnikov <esyr@redhat.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agocrypto: clean up remaining .h->.c
Jason A. Donenfeld [Sun, 7 Oct 2018 13:35:51 +0000 (15:35 +0200)] 
crypto: clean up remaining .h->.c

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick.8: add policy routing example
Jason A. Donenfeld [Fri, 5 Oct 2018 17:19:08 +0000 (19:19 +0200)] 
wg-quick.8: add policy routing example

Suggested-by: Toke Høiland-Jørgensen <toke@toke.dk>
Suggested-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agocrypto: make constant naming scheme consistent
Jason A. Donenfeld [Mon, 24 Sep 2018 20:02:13 +0000 (22:02 +0200)] 
crypto: make constant naming scheme consistent

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: put SPDX identifier on its own line
Jason A. Donenfeld [Wed, 19 Sep 2018 23:49:47 +0000 (01:49 +0200)] 
global: put SPDX identifier on its own line

The kernel has very specific rules correlating file type with comment
type, and also SPDX identifiers can't be merged with other comments.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agoglobal: prefer sizeof(*pointer) when possible
Jason A. Donenfeld [Tue, 4 Sep 2018 16:44:42 +0000 (10:44 -0600)] 
global: prefer sizeof(*pointer) when possible

Suggested-by: Sultan Alsawaf <sultanxda@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agocrypto: import zinc
Jason A. Donenfeld [Wed, 29 Aug 2018 05:50:35 +0000 (23:50 -0600)] 
crypto: import zinc

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg: ipc: do not warn on unrecognized netlink attributes
Jason A. Donenfeld [Mon, 3 Sep 2018 01:25:32 +0000 (19:25 -0600)] 
wg: ipc: do not warn on unrecognized netlink attributes

It makes extending things more difficult.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agocrypto: use unaligned helpers
Jason A. Donenfeld [Fri, 24 Aug 2018 01:08:03 +0000 (18:08 -0700)] 
crypto: use unaligned helpers

This is not useful for WireGuard, but for the general use case we
probably want it this way, and the speed difference is mostly lost in
the noise.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
6 years agowg-quick: check correct variable for route deduplication
Jason A. Donenfeld [Tue, 21 Aug 2018 22:42:17 +0000 (15:42 -0700)] 
wg-quick: check correct variable for route deduplication

Reported-by: John Sager <john@sager.me.uk>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: prefer system paths for tools
Jason A. Donenfeld [Sun, 12 Aug 2018 07:28:28 +0000 (00:28 -0700)] 
wg-quick: darwin: prefer system paths for tools

The only things wg-quick(8) needs from Homebrew are bash(1) and wg(8).
Other than that, it's explicitly coded against the native system
utilities. Since wg-quick(8) and bash(1) are invoked in auto_su by their
full absolute path (via $SELF and $BASH, respectively), we can simply
set the $PATH to be prefixed by the default system binary paths. This
way, if users install tools that conflict with system tools -- such as
GNU coreutils -- we won't accidently call those.

Reported-by: Deirdre Connolly <durumcrustulum@gmail.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: remove compat code
Jason A. Donenfeld [Tue, 24 Jul 2018 16:05:33 +0000 (18:05 +0200)] 
wg-quick: android: remove compat code

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: allow package to be overridden
Jason A. Donenfeld [Tue, 24 Jul 2018 11:12:40 +0000 (13:12 +0200)] 
wg-quick: android: allow package to be overridden

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agoembeddable-wg-library: do not left shift negative numbers
Jason A. Donenfeld [Thu, 19 Jul 2018 17:15:15 +0000 (19:15 +0200)] 
embeddable-wg-library: do not left shift negative numbers

Otherwise we incur undefined behavior.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: allow link local default gateway
Jason A. Donenfeld [Mon, 16 Jul 2018 15:27:00 +0000 (17:27 +0200)] 
wg-quick: allow link local default gateway

It's unclear why it was like this in the first place, but it apparently
broke certain IPv6 setups.

Reported-by: Jonas Blahut <j@die-blahuts.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: only error on wg show if all interfaces fail
Jason A. Donenfeld [Sun, 8 Jul 2018 17:46:05 +0000 (19:46 +0200)] 
wg: only error on wg show if all interfaces fail

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: support excluding applications
Jason A. Donenfeld [Thu, 5 Jul 2018 17:26:13 +0000 (19:26 +0200)] 
wg-quick: android: support excluding applications

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: prevent outgoing handshake packets from being dropped
Jason A. Donenfeld [Mon, 25 Jun 2018 03:43:16 +0000 (05:43 +0200)] 
wg-quick: android: prevent outgoing handshake packets from being dropped

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: fix misspelling of strchrnul in comment
Jonathan Neuschäfer [Thu, 21 Jun 2018 23:39:25 +0000 (01:39 +0200)] 
wg: fix misspelling of strchrnul in comment

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agomanpages: eliminate whitespace at the end of the line
Jonathan Neuschäfer [Thu, 21 Jun 2018 23:39:25 +0000 (01:39 +0200)] 
manpages: eliminate whitespace at the end of the line

This eliminates a few style warnings from "mandoc -T lint src/tools/wg*.8".

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: don't forget to free compiled regexes
Jason A. Donenfeld [Sun, 17 Jun 2018 03:13:22 +0000 (05:13 +0200)] 
wg-quick: android: don't forget to free compiled regexes

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: disable roaming to v6 networks when v4 is specified
Jason A. Donenfeld [Sun, 17 Jun 2018 03:06:37 +0000 (05:06 +0200)] 
wg-quick: android: disable roaming to v6 networks when v4 is specified

This works around an unfortunate bug in 464XLAT transitions.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agodns-hatchet: apply resolv.conf's selinux context to new resolv.conf
Jason A. Donenfeld [Sat, 16 Jun 2018 22:06:58 +0000 (00:06 +0200)] 
dns-hatchet: apply resolv.conf's selinux context to new resolv.conf

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: getentropy requires 10.12
Jason A. Donenfeld [Thu, 14 Jun 2018 02:18:15 +0000 (04:18 +0200)] 
wg: getentropy requires 10.12

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: support getentropy(3)
Jason A. Donenfeld [Fri, 8 Jun 2018 01:18:28 +0000 (03:18 +0200)] 
wg: support getentropy(3)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: encoding: add missing static array constraints
Jason A. Donenfeld [Tue, 5 Jun 2018 22:05:47 +0000 (00:05 +0200)] 
wg: encoding: add missing static array constraints

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: change name of intent
Jason A. Donenfeld [Mon, 4 Jun 2018 00:49:20 +0000 (02:49 +0200)] 
wg-quick: android: change name of intent

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: android: delay setting users until end
Jason A. Donenfeld [Thu, 31 May 2018 14:38:06 +0000 (16:38 +0200)] 
wg-quick: android: delay setting users until end

`ndc users add` eventually invokes SOCK_DESTROY on user sockets, causing
them to reconnect. By delaying this until after routes are set, we
ensure that the sockets reconnect using the tunnel, rather than the old
route.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: constanter time encoding
Jason A. Donenfeld [Wed, 30 May 2018 19:32:27 +0000 (21:32 +0200)] 
wg: constanter time encoding

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: set DNS servers after delay on route change
Jason A. Donenfeld [Tue, 29 May 2018 23:37:57 +0000 (01:37 +0200)] 
wg-quick: darwin: set DNS servers after delay on route change

This works around a race condition in macOS's network daemons, while
also adding one in the form of possibly calling kill -ALRM on a stale
PID; unfortunately bash can't wait from a trap.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: freebsd: configure as p2p link
Jason A. Donenfeld [Sun, 27 May 2018 03:24:07 +0000 (05:24 +0200)] 
wg-quick: freebsd: configure as p2p link

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: add multiple IP addresses
Jason A. Donenfeld [Sun, 27 May 2018 03:22:55 +0000 (05:22 +0200)] 
wg-quick: darwin: add multiple IP addresses

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: determine IPs when saving interface
Jason A. Donenfeld [Sun, 27 May 2018 00:42:04 +0000 (02:42 +0200)] 
wg-quick: determine IPs when saving interface

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: freebsd: work around security vulnerabilities in bash
Jason A. Donenfeld [Wed, 23 May 2018 14:33:14 +0000 (16:33 +0200)] 
wg-quick: freebsd: work around security vulnerabilities in bash

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: allow enumeration of socket files
Jason A. Donenfeld [Wed, 23 May 2018 13:31:47 +0000 (15:31 +0200)] 
wg-quick: allow enumeration of socket files

These OSes have an unpriv'd ifconfig, so this isn't an even larger info
leak.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: better bash completion for non-renaming OSes
Jason A. Donenfeld [Wed, 23 May 2018 13:17:41 +0000 (15:17 +0200)] 
wg-quick: better bash completion for non-renaming OSes

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: support FreeBSD/Darwin search path
Jason A. Donenfeld [Wed, 23 May 2018 13:08:30 +0000 (15:08 +0200)] 
wg-quick: support FreeBSD/Darwin search path

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: always pass -v as first argument to install
Jason A. Donenfeld [Wed, 23 May 2018 03:20:34 +0000 (05:20 +0200)] 
wg: always pass -v as first argument to install

This lets crippled OSes sed out our -v more easily.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: openbsd: add new implementation
Jason A. Donenfeld [Tue, 22 May 2018 14:32:01 +0000 (16:32 +0200)] 
wg-quick: openbsd: add new implementation

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: freebsd: add new implementation
Jason A. Donenfeld [Mon, 21 May 2018 20:04:37 +0000 (22:04 +0200)] 
wg-quick: freebsd: add new implementation

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: do not remove routes when no real interface
Jason A. Donenfeld [Tue, 22 May 2018 14:32:40 +0000 (16:32 +0200)] 
wg-quick: darwin: do not remove routes when no real interface

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: rename namefile environment variable
Jason A. Donenfeld [Tue, 22 May 2018 13:28:06 +0000 (15:28 +0200)] 
wg-quick: darwin: rename namefile environment variable

This paves the way for an openbsd implementation.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: fix OpenBSD build
Filippo Valsorda [Mon, 21 May 2018 04:10:54 +0000 (00:10 -0400)] 
wg: fix OpenBSD build

License: MIT
Signed-off-by: Filippo Valsorda <valsorda@google.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agoncat-client-server: do not always call sudo and use env bash
Jason A. Donenfeld [Mon, 21 May 2018 23:08:51 +0000 (01:08 +0200)] 
ncat-client-server: do not always call sudo and use env bash

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg: fix errno propagation and messages
Jason A. Donenfeld [Fri, 18 May 2018 17:51:33 +0000 (19:51 +0200)] 
wg: fix errno propagation and messages

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: simpler inclusion check
Jason A. Donenfeld [Thu, 17 May 2018 17:29:48 +0000 (19:29 +0200)] 
wg-quick: darwin: simpler inclusion check

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: reorder functions
Jason A. Donenfeld [Thu, 17 May 2018 02:58:27 +0000 (04:58 +0200)] 
wg-quick: darwin: reorder functions

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: networksetup does not like missing stdio
Jason A. Donenfeld [Thu, 17 May 2018 02:50:18 +0000 (04:50 +0200)] 
wg-quick: darwin: networksetup does not like missing stdio

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: avoid routing loop if no default
Jason A. Donenfeld [Thu, 17 May 2018 02:07:11 +0000 (04:07 +0200)] 
wg-quick: darwin: avoid routing loop if no default

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
7 years agowg-quick: darwin: sometimes there are no network services
Jason A. Donenfeld [Thu, 17 May 2018 01:26:51 +0000 (03:26 +0200)] 
wg-quick: darwin: sometimes there are no network services

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>