aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* qemu: new packages and better debuggingJason A. Donenfeld2017-05-172-12/+13
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: remember to call iptunnel_xmit_statsJason A. Donenfeld2017-05-171-4/+13
| | | | | | Upstream's 039f50629b7f860f36644ed1f34b27da9aa62f43 only came in 4.5 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: use real crypto_memneqJason A. Donenfeld2017-05-174-14/+181
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: work around ubnt offloadingJason A. Donenfeld2017-05-171-0/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: ssse3 supportJason A. Donenfeld2017-05-041-0/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: use existing iptunnel_xmit function for statsJason A. Donenfeld2017-04-241-7/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump snapshotJason A. Donenfeld2017-04-212-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* routingtable: rewrite core functionsJason A. Donenfeld2017-04-215-438/+633
| | | | | | | | | | | | | | | | | | | | | | | When removing by peer, prev needs to be set to *nptr in order to traverse that part of the trie. The other remove by IP function can simply be removed, as it's not in use. The root freeing function can use pre-order traversal instead of post-order. The pre-order traversal code in general is now a nice iterator macro. The common bits function can use the fast fls instructions and the match function can be rewritten to simply compare common bits. While we're at it, let's add tons of new tests, randomized checking against a dumb implementation, and graphviz output. And in general, it's nice to clean things up. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: work on old 3.10Jason A. Donenfeld2017-04-212-0/+35
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* config: don't allow no-privatekey to mask presharedJason A. Donenfeld2017-04-211-1/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* cookie: move the bangsJason A. Donenfeld2017-04-211-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tools: no hyphen in preshared, to keep uniformityJason A. Donenfeld2017-04-201-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tools: side channel resistant base64Jason A. Donenfeld2017-04-191-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* netns: cleanup and add diagramJason A. Donenfeld2017-04-141-7/+18
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* device: use rcu_barrier_bhJason A. Donenfeld2017-04-141-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* qemu: work on ARM64Jason A. Donenfeld2017-04-143-5/+21
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* receive: netif_rx consumesJason A. Donenfeld2017-04-091-1/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump snapshotJason A. Donenfeld2017-04-092-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: warn on < 4.1Jason A. Donenfeld2017-04-091-0/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: careful with destructorsJason A. Donenfeld2017-04-092-7/+7
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: support 3.10Jason A. Donenfeld2017-04-093-5/+106
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: support 3.12Jason A. Donenfeld2017-04-098-7/+240
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: support 3.14Jason A. Donenfeld2017-04-093-8/+132
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: support 3.16Jason A. Donenfeld2017-04-098-111/+579
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* data: alloca is actually as dangerous as they sayJason A. Donenfeld2017-04-091-6/+4
| | | | | | | | | | | | | | | It turns out that calling alloca from an inline function means that the memory isn't ever deallocated until the caller function exits, which means we were using tons of stack space for every iteration of the call. So, we hard code the sg array. While 128 seems like a reasonable number, we actually wind up using "MAX_SKB_FRAGS * 2 + 1". An skb has its data segment, so that's 1. Then it has its frags, which are MAX_SKB_FRAGS at max. Then it has its frag list, which, so far as I can tell, are potentially unbounded. So we just hope it's no more than MAX_SKB_FRAGS, and so we plan for at most two of those. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* debug: cleanupsJason A. Donenfeld2017-04-082-3/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* qemu: ensure kernel is configured before headers are installedJason A. Donenfeld2017-04-081-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* data: cleanup parallel workqueue and use two max_activeJason A. Donenfeld2017-04-087-29/+31
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* data: simplify flowJason A. Donenfeld2017-04-044-94/+45
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* chacha20poly1305: check return values of sgopsJason A. Donenfeld2017-04-043-14/+22
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* locking: always use _bhJason A. Donenfeld2017-04-048-78/+81
| | | | | | | All locks are potentially between user context and softirq, which means we need to take the _bh variant. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* qemu: new stable kernelJason A. Donenfeld2017-04-041-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* chacha20poly1305: enforce authtag checking with compilerJason A. Donenfeld2017-03-304-32/+22
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* curve25519: protect against potential invalid point attacksJason A. Donenfeld2017-03-305-43/+74
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* config: do not allow peers with public keys the same as the interfaceJason A. Donenfeld2017-03-281-0/+20
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* main: add /sys/module/wireguard/versionJason A. Donenfeld2017-03-271-0/+1
| | | | | Suggested-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* compat: allow create-patch to work on debian-based buildsJason A. Donenfeld2017-03-271-0/+4
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump snapshotJason A. Donenfeld2017-03-242-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* uapi: add version magicJason A. Donenfeld2017-03-242-15/+31
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* socket: avoid deadlock on port retryJason A. Donenfeld2017-03-241-4/+3
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* curve25519: 128-bit integer != x86_64Jason A. Donenfeld2017-03-241-2/+8
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump snapshotJason A. Donenfeld2017-03-202-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* curve25519: do dispatcher in C instead of asm, since shlx is haswell onlyJason A. Donenfeld2017-03-202-162/+73
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* version: bump snapshotJason A. Donenfeld2017-03-202-2/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* data: big refactoringJason A. Donenfeld2017-03-208-159/+158
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* curve25519: add AVX implementationJason A. Donenfeld2017-03-195-21/+3696
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* blake2s: add AVX implementationJason A. Donenfeld2017-03-199-8/+613
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* config: satisfy sparseJason A. Donenfeld2017-03-191-1/+1
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* cookie: no need to hash rngJason A. Donenfeld2017-03-191-1/+0
| | | | | | | | | Since 4.8 or so, the RNG uses chacha, so we feel less scared about exposing its output directly. (Older kernels will simply suffer the paranoia.) Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* hashtables: get_random_int is now more secure, so expose directlyJason A. Donenfeld2017-03-193-4/+20
| | | | | | | | | | On 4.11, get_random_u32 now either uses chacha or rdrand, rather than the horrible former MD5 construction, so we feel more comfortable exposing RNG output directly. On older kernels, we fall back to something a bit disgusting. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>