[ANNOUNCE] WireGuard Snapshot `0.0.20180731` Available
Jason A. Donenfeld
Jason at zx2c4.com
Tue Jul 31 20:25:42 CEST 2018
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hello,
A new snapshot, `0.0.20180731`, has been tagged in the git repository.
Please note that this snapshot is, like the rest of the project at this point
in time, experimental, and does not consitute a real release that would be
considered secure and bug-free. WireGuard is generally thought to be fairly
stable, and most likely will not crash your computer (though it may).
However, as this is a pre-release snapshot, it comes with no guarantees, and
its security is not yet to be depended on; it is not applicable for CVEs.
With all that said, if you'd like to test this snapshot out, there are a
few relevent changes.
== Changes ==
* receive: check against proper return value type
Ensure error counters are correct in the receive path.
* embeddable-wg-library: do not left shift negative numbers
Avoids implementation-defined C behavior and also improves performance.
* wg-quick: android: allow package to be overridden
* wg-quick: android: remove compat code
Small android fixes.
* qemu: show log if process crashes
* qemu: update musl and kernel
The usual QEMU suite bump.
* curve25519-x86_64: tighten the x25519 assembly
Small performance optimization from Samuel.
The wide multiplication by 38 in mul_a24_eltfp25519_1w is redundant:
(2^256-1) * 121666 / 2^256 is at most 121665, and therefore a 64-bit
multiplication can never overflow.
* curve25519-x86_64: tighten reductions modulo 2^256-38
Small performance optimization from Samuel.
At this stage the value if C[4] is at most ((2^256-1) + 38*(2^256-1)) / 2^256 = 38,
so there is no need to use a wide multiplication.
* curve25519-x86_64: simplify the final reduction by adding 19 beforehand
Small performance optimization from Samuel.
At this stage the value if C[4] is at most ((2^256-1) + 38*(2^256-1)) / 2^256 = 38,
Correctness can be quickly verified with the following z3py script:
>>> from z3 import *
>>> x = BitVec("x", 256) # any 256-bit value
>>> ref = URem(x, 2**255 - 19) # correct value
>>> t = Extract(255, 255, x); x &= 2**255 - 1; # btrq $63, %3
>>> u = If(t != 0, BitVecVal(38, 256), BitVecVal(19, 256)) # cmovncl %k5, %k4
>>> x += u # addq %4, %0; adcq $0, %1; adcq $0, %2; adcq $0, %3;
>>> t = Extract(255, 255, x); x &= 2**255 - 1; # btrq $63, %3
>>> u = If(t != 0, BitVecVal(0, 256), BitVecVal(19, 256)) # cmovncl %k5, %k4
>>> x -= u # subq %4, %0; sbbq $0, %1; sbbq $0, %2; sbbq $0, %3;
>>> prove(x == ref)
proved
* ratelimiter: prevent init/uninit race
Fixes a classic ABA problem that isn't actually reachable because of
rtnl_lock, but it's good to be correct anyway.
* peer: simplify rcu reference counts
Use RCU reference counts only when we must, and otherwise use a more
reasonably named function.
* main: add missing chacha20poly1305 header
* send: address of variable is never null
* noise: remove outdated comment
* main: properly name label
* noise: use hex constant for tai64n offset
* device: adjust comment
A series of last minute nits before submitting upstream.
This snapshot contains commits from: Jason A. Donenfeld and Samuel Neves.
As always, the source is available at https://git.zx2c4.com/WireGuard/ and
information about the project is available at https://www.wireguard.com/ .
This snapshot is available in compressed tarball form here:
https://git.zx2c4.com/WireGuard/snapshot/WireGuard-0.0.20180731.tar.xz
SHA2-256: 09212974f2a92b304147151f2ca5cb7230e09e969d9584bdf8338bc82e614b8a
BLAKE2b-256: c089cdbc6668dd3f7d59e29c6feb168063ec5da35dff77eb57922954018dd7e6
A PGP signature of that file decompressed is available here:
https://git.zx2c4.com/WireGuard/snapshot/WireGuard-0.0.20180731.tar.asc
Signing key: AB9942E6D4A4CFC3412620A749FC7012A5DE03AE
If you're a snapshot package maintainer, please bump your package version. If
you're a user, the WireGuard team welcomes any and all feedback on this latest
snapshot.
Finally, WireGuard development thrives on donations. By popular demand, we
have a webpage for this: https://www.wireguard.com/donations/
Thank you,
Jason Donenfeld
-----BEGIN PGP SIGNATURE-----
iQJEBAEBCAAuFiEEq5lC5tSkz8NBJiCnSfxwEqXeA64FAltgqZcQHGphc29uQHp4
MmM0LmNvbQAKCRBJ/HASpd4Drvr8D/93ju+T3ZowbsFJF0FWFyhPwzTxqbLLdEeJ
VCh1OwVxKJEt091jxADnsi0zHuuOn14J1ri+t1rSBFI0XG9VYNZMgMreb7IvyQbn
P1+WyP/lj1e72Y+JgLajdklLTUddXtAOaSk7ji7FiUF9MW9l0QuvbsAY3SUE9zcd
01jTxkxqLAQ7nmwUrVi4cEKqEG1GliHKIiJWlKjHmn6doblrJdVDV+k+fUVefzTw
ZHl1xJ9LZkdgBwBtoIKn+lJ3FaGcFBnG4ZVIqdbPMLNym4leSDJGJz7M+tCzQTM1
ILpgDRIjSCmiWbn6zlcfEJHHBKg1/EIQ9rsnqOYBXCioAZPBHC7rVpZv5PmEIe0z
RAYCrJ+jFiGnnJEecGX36OFqEYePkNzEFzKKlyCo/onQ4r88b6cl2l2XTMnHQVSv
I2SeTwE08aj6poQN2Snx5CVfGad9iHb7dYRhy89CrS/XQ802+hLz7LFajIhr3RCR
AO8YHxIUz/cNMhqHVgUipzEp+G12ZVS6O2dbDWPGIIBJUJLKQmjlS1hfrywfmcyQ
yKNVB5DSm3V0Boy5S0Q+Edpd3LjQL3wBv4F0TNqpKSGk1/pv1fLnyh0wTQIGWLxK
wkQBBlU2qFgJjZu2GV08NFFhoGt6y9Yj5WTPv22nJtVTCqHnl1Tphv421ZOSU0nG
2aYVi/k8kw==
=5zjb
-----END PGP SIGNATURE-----
More information about the WireGuard
mailing list