Commit Graph

129 Commits

Author SHA1 Message Date
Mathias Hall-Andersen
eae915b2e8 Fixed outbound unittest 2019-09-07 19:19:51 +02:00
Mathias Hall-Andersen
7b61ee4c2d Write inbound packets to TUN device 2019-09-07 18:38:19 +02:00
Mathias Hall-Andersen
8551e03ee3 Added outbound benchmark
Decent performance (~1.5Gb/s on old XPS laptop from 2014),
biggest bottleneck seems to be the heap allocator,
swapping with jemalloc yields 2x performance.
2019-09-05 19:58:12 +02:00
Mathias Hall-Andersen
b45d49201d Output test number and parameters to debug 2019-09-04 21:44:11 +02:00
Mathias Hall-Andersen
af9c76452f More extensive outbound test 2019-09-04 21:42:10 +02:00
Mathias Hall-Andersen
310be99fa6 Expanded outbound test 2019-09-04 19:22:47 +02:00
Mathias Hall-Andersen
6d11da441b Simply passing of JobBuffer ownership 2019-09-04 19:08:13 +02:00
Mathias Hall-Andersen
f55014ef8f Wake workers when submitting work 2019-09-02 23:32:07 +02:00
Mathias Hall-Andersen
62d71a7a67 Reconsider inorder queueing 2019-09-02 20:22:47 +02:00
Mathias Hall-Andersen
929eadb651 Outbound cryptkey routing 2019-09-01 17:16:01 +02:00
Mathias Hall-Andersen
d16521f4c7 Added Bind trait to router 2019-08-31 21:00:10 +02:00
Mathias Hall-Andersen
46d76b80c6 Reduce number of type parameters in router
Merge multiple related type parameters into trait,
allowing for easier refactoring and better maintainability.
2019-08-31 20:25:16 +02:00
Mathias Hall-Andersen
c823af1a9c Explicitly clear t0 in KDF macro 2019-08-31 15:52:41 +02:00
Mathias Hall-Andersen
7e5852ec26 Fix race condition on response processing 2019-08-31 15:46:18 +02:00
Mathias Hall-Andersen
51179f5433 Better management of key material 2019-08-31 15:03:14 +02:00
Mathias Hall-Andersen
0520b28ac2 Move to RustCrypto AEAD crate for handshake 2019-08-30 19:46:00 +02:00
Mathias Hall-Andersen
6785aa4cb5 Join with worker threads on device drop 2019-08-28 16:27:26 +02:00
Mathias Hall-Andersen
8e1a2cabd3 Renamed confirmed -> initator on keypair
Done to reflect that the property is immutable,
unlike the "confirmed" field on the decryption state.
2019-08-28 12:14:32 +02:00
Mathias Hall-Andersen
10e6436e6b Start worker threads for device 2019-08-28 11:52:08 +02:00
Mathias Hall-Andersen
a1b50aca26 Add confirm_key stub 2019-08-27 22:30:24 +02:00
Mathias Hall-Andersen
40533b9ffd Use confirmation status from keypair in dec-state 2019-08-27 22:21:31 +02:00
Mathias Hall-Andersen
e5f515098a Work on inbound/outbound consume code 2019-08-27 22:20:22 +02:00
Mathias Hall-Andersen
cdbcd55eda Added sealing/opening to the router worker 2019-08-27 21:17:55 +02:00
Mathias Hall-Andersen
e28a9274d0 Removed unused sub-module 2019-08-27 11:37:20 +02:00
Mathias Hall-Andersen
3eb7f5e423 Removed unused sub-module 2019-08-27 11:36:33 +02:00
Mathias Hall-Andersen
a80e64014c Unbox callback closures
Accepted the more verbose type signatures and added a callback to
request new key-material.
2019-08-27 11:28:20 +02:00
Mathias Hall-Andersen
e16151419d Work on callback structure for cryptkey router 2019-08-26 15:01:47 +02:00
Mathias Hall-Andersen
5f3c4d2e27 Update the blake2 crate to fix bug upstream
Included basic sanity check for the HKDF macroes, to avoid regression in future.
2019-08-26 15:00:14 +02:00
Mathias Hall-Andersen
2272e5250f Move to hjul crate
Moved timer code into seperate crate (`hjul').
2019-08-24 23:41:05 +02:00
Mathias Hall-Andersen
e88ed5d02d Allow DoS mitigation to take any endpoint impl. 2019-08-23 11:43:29 +02:00
Mathias Hall-Andersen
9528d19cc9 Derieve clone for timer (handle) 2019-08-22 15:46:34 +02:00
Mathias Hall-Andersen
543efad980 Added benchmarks for timer code 2019-08-22 15:29:02 +02:00
Mathias Hall-Andersen
c5aba7183d Initial version of timer framework 2019-08-22 14:59:15 +02:00
Mathias Hall-Andersen
9cef264581 Ensure peer threads are stopped on drop 2019-08-20 21:19:53 +02:00
Mathias Hall-Andersen
f4da998812 Removed platform mod 2019-08-20 14:34:41 +02:00
Mathias Hall-Andersen
7e727d120b Restructure and job stealing work queue 2019-08-20 14:33:11 +02:00
Mathias Hall-Andersen
31ef3e2871 Implemented keypair_confirm 2019-08-18 15:44:20 +02:00
Mathias Hall-Andersen
78ab1a93e6 Remove peer from cryptkey router on drop 2019-08-17 16:31:08 +02:00
Mathias Hall-Andersen
5aeea9b619 Begin drafting cross-platform interface 2019-08-16 22:00:48 +02:00
Mathias Hall-Andersen
726163b7f1 Layout work on router 2019-08-16 12:33:10 +02:00
Mathias Hall-Andersen
657a1ccb44 Implement add_keypair semantics 2019-08-13 19:42:05 +02:00
Mathias Hall-Andersen
723a1b8e85 Port replay filter and sketch router state 2019-08-12 21:04:19 +02:00
Mathias Hall-Andersen
0e16901261 Work on sketching router interface 2019-08-10 17:09:02 +02:00
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