Commit Graph

36 Commits

Author SHA1 Message Date
Mathias Hall-Andersen
a50079552a Kill GC thread on Ratelimiter drop 2019-08-10 16:01:56 +02:00
Mathias Hall-Andersen
b33381331f Concurrent rate limiter
The new rate limiter allows multiple simultaneous .allow calls.
Also delegated GC to tokio.
2019-08-07 22:51:58 +02:00
Mathias Hall-Andersen
f7f1088123 Added initiation flood protection 2019-08-07 11:29:39 +02:00
Mathias Hall-Andersen
a12e6e139c Add rate limiter check to handshake messages. 2019-08-06 13:02:13 +02:00
Mathias Hall-Andersen
8f488882be Prepare for resuse of message buffers for response 2019-08-05 22:08:18 +02:00
Mathias Hall-Andersen
c62aca70a3 Multiple mac2 can be checked concurrently 2019-08-05 21:51:16 +02:00
Mathias Hall-Andersen
abc8cacf44 Checking of mac2 fields on initiation & response
In addition, moved the rng out.
This will allow allocating one instance per worker,
rather than every call.
2019-08-05 21:37:31 +02:00
Mathias Hall-Andersen
baebac5bec Validate mac2 field 2019-08-03 14:45:45 +02:00
Mathias Hall-Andersen
fe0c1532d9 Added property-based test for full DoS interaction 2019-08-03 14:36:14 +02:00
Mathias Hall-Andersen
2bdcda067c Remove rust-crypto, move to libsodium bindings 2019-08-02 17:18:37 +02:00
Mathias Hall-Andersen
d6e40f9ea6 Unit test for mac1 validation 2019-08-01 13:56:42 +02:00
Mathias Hall-Andersen
0f92468f69 Successfully validate mac1 field 2019-08-01 13:25:50 +02:00
Mathias Hall-Andersen
ab98d9dced Make unit tests pass 2019-08-01 11:12:30 +02:00
Mathias Hall-Andersen
1cfd5aea1a Move to nested handshake message structure
Having the nested structure:

    Handshake Message:
        Noise part (zerocopy message)
        MAC footer part (zerocopy message)

Greatly simplifies processing the MAC fields,
since the MAC footer covers the noise part, which can
be accessed as bytes using AsBytes.
2019-07-30 15:28:11 +02:00
Mathias Hall-Andersen
f46f36ad29 Begin work on MAC field processing 2019-07-29 12:45:10 +02:00
Mathias Hall-Andersen
2c81abbe79 Restructured for wireguard-rs 2019-07-28 17:09:27 +02:00
Mathias Hall-Andersen
59190dff33 Added ability to remove peer from device 2019-07-26 22:36:24 +02:00
Mathias Hall-Andersen
97e5e1eacc Only impl. fmt for messages in test 2019-07-26 18:45:20 +02:00
Mathias Hall-Andersen
5efb318171 Move parser code to zerocopy 2019-07-26 15:46:24 +02:00
Mathias Hall-Andersen
43b56dfb58 Formatting 2019-07-25 22:04:35 +02:00
Mathias Hall-Andersen
27f8fd8e34 Fixed GenericArray version 2019-07-25 21:43:25 +02:00
Mathias Hall-Andersen
409ba51750 Added opaque identity to output 2019-07-25 18:23:30 +02:00
Mathias Hall-Andersen
d2c4ad17fe Avoid race-condition when allocating a new identity 2019-07-25 13:06:11 +02:00
Mathias Hall-Andersen
db8328bb3b Fix TAI64 epoch 2019-07-24 18:50:05 +02:00
Mathias Hall-Andersen
95080c870f Tested full handshake 2019-07-24 18:47:33 +02:00
Mathias Hall-Andersen
c77697b8ed Finish handshake exchange 2019-07-22 23:40:04 +02:00
Mathias Hall-Andersen
e0e95d9679 Begin creation of response 2019-07-18 19:52:23 +02:00
Mathias Hall-Andersen
14e9647afd Begin processing of initation 2019-07-18 13:20:03 +02:00
Mathias Hall-Andersen
4817ca7906 Better seperation and introduction of timestamp 2019-07-17 16:28:21 +02:00
Mathias Hall-Andersen
55418344ae Use precomputed static-static 2019-07-16 23:41:52 +02:00
Mathias Hall-Andersen
5a5d09bb41 Create initiation message 2019-07-16 23:37:25 +02:00
Mathias Hall-Andersen
abf502f73c Test precomputed values
Sanity check
2019-07-14 19:04:59 +02:00
Mathias Hall-Andersen
7805fd9f59 Begin work on creating initiation 2019-07-13 23:15:01 +02:00
Mathias Hall-Andersen
dfed3b448f Add peers and psks to device 2019-07-12 14:49:53 +02:00
Mathias Hall-Andersen
0c05104e8b Add unit tests 2019-07-11 21:53:44 +02:00
Mathias Hall-Andersen
9154c997fa Encoding / decoding of messages 2019-07-10 18:22:48 +02:00