summaryrefslogtreecommitdiffstatshomepage
path: root/src/cookie.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* global: cleanup IP header checkingJason A. Donenfeld2017-06-261-2/+2
| | | | This way is more correct and ensures we're within the skb head.
* ratelimiter: rewrite from scratchJason A. Donenfeld2017-06-261-11/+3
| | | | | | | This not only removes the depenency on x_tables, but it also gives us much better performance and memory usage. Now, systems are able to have millions of WireGuard interfaces, without having to worry about a thundering herd of garbage collection.
* random: wait for random bytes when generating nonces and ephemeralsJason A. Donenfeld2017-06-121-1/+1
| | | | | | | | | | | We can let userspace configure wireguard interfaces before the RNG is fully initialized, since what we mostly care about is having good randomness for ephemerals and xchacha nonces. By deferring the wait to actually asking for the randomness, we give a lot more opportunity for gathering entropy. This won't cover entropy for hash table secrets or cookie secrets (which rotate anyway), but those have far less catastrophic failure modes, so ensuring good randomness for elliptic curve points and nonces should be sufficient.
* debug: print interface name in dmesgJason A. Donenfeld2017-05-311-1/+1
|
* noise: redesign preshared key modeJason A. Donenfeld2017-05-171-40/+26
|
* cookie: move the bangsJason A. Donenfeld2017-04-211-2/+2
|
* data: big refactoringJason A. Donenfeld2017-03-201-6/+6
|
* 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.)
* Update copyrightJason A. Donenfeld2017-01-101-1/+1
|
* cookie: optimizeJason A. Donenfeld2016-12-261-29/+11
|
* cookies: use xchacha20poly1305 instead of chacha20poly1305Jason A. Donenfeld2016-12-231-36/+29
| | | | | This allows us to precompute the blake2s calls and save cycles, since hchacha is fast.
* messages: increase header by 3 bytes for alignmentJason A. Donenfeld2016-12-161-1/+1
|
* headers: cleanup noticesJason A. Donenfeld2016-11-211-1/+1
|
* cookie: avoid void pointer arithmaticJason A. Donenfeld2016-11-061-3/+3
|
* c89: the static keyword is okay in c99, but not in c89Jason A. Donenfeld2016-11-051-3/+3
|
* Rework headers and includesJason A. Donenfeld2016-09-291-1/+3
|
* c: specify static array size in function paramsJason A. Donenfeld2016-08-021-3/+3
| | | | | | | | | | | | | | | The C standard states: A declaration of a parameter as ``array of type'' shall be adjusted to ``qualified pointer to type'', where the type qualifiers (if any) are those specified within the [ and ] of the array type derivation. If the keyword static also appears within the [ and ] of the array type derivation, then for each call to the function, the value of the corresponding actual argument shall provide access to the first element of an array with at least as many elements as specified by the size expression. By changing void func(int array[4]) to void func(int array[static 4]), we automatically get the compiler checking argument sizes for us, which is quite nice.
* cookie: do not expose csprng directlyJason A. Donenfeld2016-07-221-0/+1
| | | | | It may not be wise to directly publish the output of the CSPRNG, so we run the output through a round of Blake2s first.
* Initial commitJason A. Donenfeld2016-06-251-0/+237