Mathias Hall-Andersen
6000cbf7e4
Port timer.c from WireGuard
2019-10-11 14:34:16 +02:00
Mathias Hall-Andersen
3d6e8f08a7
Enable adding TUN reader to WG interface
2019-10-11 12:57:24 +02:00
Mathias Hall-Andersen
7ce5415169
Start porting kernel timer semantics
2019-10-09 20:22:16 +02:00
Mathias Hall-Andersen
761c46064d
Restructure IO traits.
2019-10-09 15:08:26 +02:00
Mathias Hall-Andersen
c82d3e554b
Restructure dummy implementations
2019-10-06 13:33:15 +02:00
Mathias Hall-Andersen
edfd2f235a
Added key_confirmed callback
2019-09-28 18:01:55 +02:00
Mathias Hall-Andersen
794933d6dd
Work on peer timers
2019-09-22 21:35:06 +02:00
Mathias Hall-Andersen
5cc1083499
Added zero_key to peer
2019-09-21 17:22:03 +02:00
Mathias Hall-Andersen
6311aa3402
WIP: TUN IO worker
...
Also removed the type parameters from the handshake device.
2019-09-18 15:31:10 +02:00
Mathias Hall-Andersen
dfe4a22920
WIP: Work on handshake worker
2019-09-16 22:33:46 +02:00
Mathias Hall-Andersen
32c030367c
WIP: Handshake queue and workers
2019-09-15 21:10:23 +02:00
Mathias Hall-Andersen
f46762183a
Sent staged packets when key-pair confirmed
2019-09-15 15:15:15 +02:00
Mathias Hall-Andersen
b31becda71
Begin work on the pure Wireguard implemenation
...
Start joining the handshake device and router device in the top-level Wireguard implemenation.
2019-09-14 12:43:09 +02:00
Mathias Hall-Andersen
c3ad827197
Test for confirmation of key using staged packet
2019-09-11 16:36:38 +02:00
Mathias Hall-Andersen
de48bec958
Simplified router tests
2019-09-11 16:28:32 +02:00
Mathias Hall-Andersen
02d9bdcc96
Full inbound/outbound router test
2019-09-10 21:42:21 +02:00
Mathias Hall-Andersen
e371d39052
Begin work on full router interaction unittest
2019-09-08 12:59:35 +02:00
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