<feed xmlns='http://www.w3.org/2005/Atom'>
<title>aports/testing/wireguard-tools, branch master</title>
<subtitle>Main aports tree
</subtitle>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/'/>
<entry>
<title>wireguard-tools: move to community</title>
<updated>2019-05-21T11:01:05+00:00</updated>
<author>
<name>Carlo Landmeter</name>
<email>clandmeter@alpinelinux.org</email>
</author>
<published>2019-05-21T09:51:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=a6c09238f337b2061b221ae15c8235075922e3da'/>
<id>a6c09238f337b2061b221ae15c8235075922e3da</id>
<content type='text'>
Closes: GH-7980
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes: GH-7980
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard-*: upgrade to 20190406</title>
<updated>2019-04-09T08:27:46+00:00</updated>
<author>
<name>André Klitzing</name>
<email>aklitzing@gmail.com</email>
</author>
<published>2019-04-09T08:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=d7751deb90034a3debbdb3482705b0a8c6de0fe4'/>
<id>d7751deb90034a3debbdb3482705b0a8c6de0fe4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard: upgrade to 0.0.20190227</title>
<updated>2019-02-28T08:51:34+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2019-02-28T08:11:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=0bfe7f682357065e5be342360b62d5037af54e55'/>
<id>0bfe7f682357065e5be342360b62d5037af54e55</id>
<content type='text'>
* 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. Note that the bad behavior is still present in Darwin,
where such workaround does not exist.

* tools: remove unused check phony declaration
* highlighter: when subtracting char, cast to unsigned
* chacha20: name enums
* tools: fight compiler slightly harder
* tools: c_acc doesn't need to be initialized
* queueing: more reasonable allocator function convention

Usual nits.

* 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.

* compat: backport ALIGN_DOWN
* noise: whiten the nanoseconds portion of the timestamp

This mitigates unrelated sidechannel attacks that think they can turn
WireGuard into a useful time oracle.

* hashtables: decouple hashtable allocations from the main device allocation

The hashtable allocations are quite large, and cause the device allocation in
the net framework to stall sometimes while it tries to find a contiguous
region that can fit the device struct. To fix the allocation stalls, decouple
the hashtable allocations from the device allocation and allocate the
hashtables with kvmalloc's implicit __GFP_NORETRY so that the allocations fall
back to vmalloc with little resistance.

* chacha20poly1305: permit unaligned strides on certain platforms

The map allocations required to fix this are mostly slower than unaligned
paths.

* noise: store clamped key instead of raw key

This causes `wg show` to now show the right thing. Useful for doing
comparisons.

* compat: ipv6_stub is sometimes null

On ancient kernels, ipv6_stub is sometimes null in cases where IPv6 has
been disabled with a command line flag or other failures.

* Makefile: don't duplicate code in install and modules-install
* Makefile: make the depmod path configurable

* queueing: net-next has changed signature of skb_probe_transport_header

A 5.1 change. This could change again, but for now it allows us to keep this
snapshot aligned with our upstream submissions.

* netlink: don't remove allowed ips for new peers
* peer: only synchronize_rcu_bh and traverse trie once when removing all peers
* allowedips: maintain per-peer list of allowedips

This is a rather big and important change that makes it much much faster to do
operations involving thousands of peers. Batch peer/allowedip addition and
clearing is several orders of magnitude faster now.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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. Note that the bad behavior is still present in Darwin,
where such workaround does not exist.

* tools: remove unused check phony declaration
* highlighter: when subtracting char, cast to unsigned
* chacha20: name enums
* tools: fight compiler slightly harder
* tools: c_acc doesn't need to be initialized
* queueing: more reasonable allocator function convention

Usual nits.

* 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.

* compat: backport ALIGN_DOWN
* noise: whiten the nanoseconds portion of the timestamp

This mitigates unrelated sidechannel attacks that think they can turn
WireGuard into a useful time oracle.

* hashtables: decouple hashtable allocations from the main device allocation

The hashtable allocations are quite large, and cause the device allocation in
the net framework to stall sometimes while it tries to find a contiguous
region that can fit the device struct. To fix the allocation stalls, decouple
the hashtable allocations from the device allocation and allocate the
hashtables with kvmalloc's implicit __GFP_NORETRY so that the allocations fall
back to vmalloc with little resistance.

* chacha20poly1305: permit unaligned strides on certain platforms

The map allocations required to fix this are mostly slower than unaligned
paths.

* noise: store clamped key instead of raw key

This causes `wg show` to now show the right thing. Useful for doing
comparisons.

* compat: ipv6_stub is sometimes null

On ancient kernels, ipv6_stub is sometimes null in cases where IPv6 has
been disabled with a command line flag or other failures.

* Makefile: don't duplicate code in install and modules-install
* Makefile: make the depmod path configurable

* queueing: net-next has changed signature of skb_probe_transport_header

A 5.1 change. This could change again, but for now it allows us to keep this
snapshot aligned with our upstream submissions.

* netlink: don't remove allowed ips for new peers
* peer: only synchronize_rcu_bh and traverse trie once when removing all peers
* allowedips: maintain per-peer list of allowedips

This is a rather big and important change that makes it much much faster to do
operations involving thousands of peers. Batch peer/allowedip addition and
clearing is several orders of magnitude faster now.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard-tools: fix quotes in checksum</title>
<updated>2019-01-25T15:06:55+00:00</updated>
<author>
<name>Natanael Copa</name>
<email>ncopa@alpinelinux.org</email>
</author>
<published>2019-01-25T15:06:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=92b0caf829b64934a11d713708953e37a28316a2'/>
<id>92b0caf829b64934a11d713708953e37a28316a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard: upgrade to 0.0.20190123</title>
<updated>2019-01-24T16:54:03+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2019-01-23T13:50:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=ee1955b85cff0d912c7c3c96d58b807541e48082'/>
<id>ee1955b85cff0d912c7c3c96d58b807541e48082</id>
<content type='text'>
* tools: curve25519: handle unaligned loads/stores safely

This should fix sporadic crashes with `wg pubkey` on certain architectures.

* netlink: auth socket changes against namespace of socket

In WireGuard, the underlying UDP socket lives in the namespace where the
interface was created and doesn't move if the interface is moved. This
allows one to create the interface in some privileged place that has
Internet access, and then move it into a container namespace that only
has the WireGuard interface for egress. Consider the following
situation:

1. Interface created in namespace A. Socket therefore lives in namespace A.
2. Interface moved to namespace B. Socket remains in namespace A.
3. Namespace B now has access to the interface and changes the listen
port and/or fwmark of socket. Change is reflected in namespace A.

This behavior is arguably _fine_ and perhaps even expected or
acceptable. But there's also an argument to be made that B should have
A's cred to do so. So, this patch adds a simple ns_capable check.

* ratelimiter: build tests with !IPV6

Should reenable building in debug mode for systems without IPv6.

* noise: replace getnstimeofday64 with ktime_get_real_ts64
* ratelimiter: totalram_pages is now a function
* qemu: enable FP on MIPS

Linux 5.0 support.

* keygen-html: bring back pure javascript implementation

Benoît Viguier has proofs that values will stay well within 2^53. We
also have an improved carry function that's much simpler. Probably more
constant time than emscripten's 64-bit integers.

* contrib: introduce simple highlighter library

This is the highlighter library being used in:
- https://twitter.com/EdgeSecurity/status/1085294681003454465
- https://twitter.com/EdgeSecurity/status/1081953278248796165

It's included here as a contrib example, so that others can paste it into
their own GUI clients for having the same strictly validating highlighting.

* netlink: use __kernel_timespec for handshake time

This readies us for Y2038. See https://lwn.net/Articles/776435/ for more info.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* tools: curve25519: handle unaligned loads/stores safely

This should fix sporadic crashes with `wg pubkey` on certain architectures.

* netlink: auth socket changes against namespace of socket

In WireGuard, the underlying UDP socket lives in the namespace where the
interface was created and doesn't move if the interface is moved. This
allows one to create the interface in some privileged place that has
Internet access, and then move it into a container namespace that only
has the WireGuard interface for egress. Consider the following
situation:

1. Interface created in namespace A. Socket therefore lives in namespace A.
2. Interface moved to namespace B. Socket remains in namespace A.
3. Namespace B now has access to the interface and changes the listen
port and/or fwmark of socket. Change is reflected in namespace A.

This behavior is arguably _fine_ and perhaps even expected or
acceptable. But there's also an argument to be made that B should have
A's cred to do so. So, this patch adds a simple ns_capable check.

* ratelimiter: build tests with !IPV6

Should reenable building in debug mode for systems without IPv6.

* noise: replace getnstimeofday64 with ktime_get_real_ts64
* ratelimiter: totalram_pages is now a function
* qemu: enable FP on MIPS

Linux 5.0 support.

* keygen-html: bring back pure javascript implementation

Benoît Viguier has proofs that values will stay well within 2^53. We
also have an improved carry function that's much simpler. Probably more
constant time than emscripten's 64-bit integers.

* contrib: introduce simple highlighter library

This is the highlighter library being used in:
- https://twitter.com/EdgeSecurity/status/1085294681003454465
- https://twitter.com/EdgeSecurity/status/1081953278248796165

It's included here as a contrib example, so that others can paste it into
their own GUI clients for having the same strictly validating highlighting.

* netlink: use __kernel_timespec for handshake time

This readies us for Y2038. See https://lwn.net/Articles/776435/ for more info.

Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard-tools: split wg and wg-quick</title>
<updated>2019-01-05T23:38:02+00:00</updated>
<author>
<name>Carlo Landmeter</name>
<email>clandmeter@alpinelinux.org</email>
</author>
<published>2019-01-05T23:34:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=8bbf99be2e60a2fe53f41735d50161f98770fdef'/>
<id>8bbf99be2e60a2fe53f41735d50161f98770fdef</id>
<content type='text'>
We split wg and wg-quick into seperate packages but let the main pacakge
pull both of them in. This way they can have their own deps and we can
pull them in independently.

We also patch wg-quick to ue busybox sysctl.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We split wg and wg-quick into seperate packages but let the main pacakge
pull both of them in. This way they can have their own deps and we can
pull them in independently.

We also patch wg-quick to ue busybox sysctl.
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard-tools: add missing depends</title>
<updated>2019-01-03T08:30:49+00:00</updated>
<author>
<name>Stuart Cardall</name>
<email>developer@it-offshore.co.uk</email>
</author>
<published>2019-01-02T21:28:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=16a4a9c1c7a1b50a313a3a70efaf324189ae0d00'/>
<id>16a4a9c1c7a1b50a313a3a70efaf324189ae0d00</id>
<content type='text'>
wg-quick does not work with some of the busybox built-ins.
based on original report by Nathan Caldwell (saintdev at gmail dot com)

adds depends for:
	procps
	iproute2
	coreutils (for sysctl -r)

but NOT for Bash (which is required by wg-quick only &amp; not by other wg-tools)

see also:

https://github.com/alpinelinux/aports/pull/3903
https://lists.zx2c4.com/pipermail/wireguard/2018-December/003608.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
wg-quick does not work with some of the busybox built-ins.
based on original report by Nathan Caldwell (saintdev at gmail dot com)

adds depends for:
	procps
	iproute2
	coreutils (for sysctl -r)

but NOT for Bash (which is required by wg-quick only &amp; not by other wg-tools)

see also:

https://github.com/alpinelinux/aports/pull/3903
https://lists.zx2c4.com/pipermail/wireguard/2018-December/003608.html
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard: upgrade to 0.0.20181218</title>
<updated>2018-12-18T20:02:10+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2018-12-18T17:06:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=932513c69d63b19b87b3d516e076d15c0baccc87'/>
<id>932513c69d63b19b87b3d516e076d15c0baccc87</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard: upgrade to 0.0.20181119</title>
<updated>2018-11-20T15:33:04+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2018-11-19T17:30:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=2d6d4f4faa2d9f46146b28c540ae5c791da4489b'/>
<id>2d6d4f4faa2d9f46146b28c540ae5c791da4489b</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>testing/wireguard: upgrade to 0.0.20181115</title>
<updated>2018-11-15T21:44:12+00:00</updated>
<author>
<name>Jason A. Donenfeld</name>
<email>Jason@zx2c4.com</email>
</author>
<published>2018-11-15T20:13:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/aports/commit/?id=11eee56b9cdbae7dea80c63bd941e04f752ebd23'/>
<id>11eee56b9cdbae7dea80c63bd941e04f752ebd23</id>
<content type='text'>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jason A. Donenfeld &lt;Jason@zx2c4.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
