Commit Graph

50 Commits

Author SHA1 Message Date
Mathias Hall-Andersen
16f21989b4 Elimited Daemonize dependency 2020-05-17 22:07:59 +02:00
Mathias Hall-Andersen
6c386146a7 Refactoring timer code:
- Remove the Events struct
- Implement Callbacks on the PeerInner, elimiting an Arc.
2020-05-10 21:23:51 +02:00
Mathias Hall-Andersen
12a7b371d4 Restructuring and dependency version bump. 2020-03-29 18:21:48 +02:00
Mathias Hall-Andersen
5e6edb280e Bumped crate versions. 2020-02-12 21:38:25 +01:00
Mathias Hall-Andersen
dcd567c08f Squashed commit of the following:
commit 1e26a0bef44e65023a97a16ecf3b123e688d19f7
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Sat Feb 1 14:36:50 2020 +0100

    Initial version of sticky sockets for Linux

commit 605cc656ad235d09ba6cd12d03dee2c5e0a9a80a
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Thu Jan 30 14:57:00 2020 +0100

    Clear src when sendmsg fails with EINVAL

commit dffd2b228af70f681e2a161642bbdaa348419bf3
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Sun Jan 26 14:01:28 2020 +0100

    Fix typoes

commit 2015663706fbe15ed1ac443a31de86b3e6c643c7
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Sun Jan 26 13:51:59 2020 +0100

    Restructure of public key -> peer state

    Restructured the mapping of public keys to peer state in the project.
    The handshake device is now generic over an opaque type,
    which enables it to be the sole place where public keys are mapped to
    the peer states.

    This gets rid of the "peer" map in the WireGuard devices
    and avoids having to include the public key in the handshake peer state.

commit bbcfaad4bcc5cf16bacdef0cefe7d29ba1519a23
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Fri Jan 10 21:10:27 2020 +0100

    Fixed bind6 also binding on IPv4

commit acbca236b70598c20c24de474690bcad883241d4
Author: Mathias Hall-Andersen <mathias@hall-andersen.dk>
Date:   Thu Jan 9 11:24:13 2020 +0100

    Work on sticky sockets
2020-02-01 14:39:19 +01:00
Mathias Hall-Andersen
bb0a8acea3 Make under_load global for WireGuard device 2019-12-26 22:55:33 +01:00
Mathias Hall-Andersen
aabefa5043 Remove unused test code.
- make naming consistent with the kernel module.
- better distribution of functionality from src/wireguard.rs
- more consistent "import pattern" throughout the project.
- remove unused test code.
2019-12-21 00:17:31 +01:00
Mathias Hall-Andersen
22f978f014 Clean dead code 2019-12-16 16:37:16 +01:00
Mathias Hall-Andersen
fd3ba63e80 Revert to crossbeam 2019-12-16 15:26:15 +01:00
Mathias Hall-Andersen
c873528a55 Removed unused atexit 2019-12-14 13:40:00 +01:00
Mathias Hall-Andersen
e0db9861bc Added profiler feature 2019-12-14 13:37:51 +01:00
Mathias Hall-Andersen
5a7f762d6c Moving away from peer threads 2019-12-03 21:49:08 +01:00
Mathias Hall-Andersen
04f507556b Work on netlink IF event code for Linux 2019-11-27 16:59:54 +01:00
Mathias Hall-Andersen
f228b6f98b Enable up/down from configuration interface 2019-11-25 13:33:00 +01:00
Mathias Hall-Andersen
3bff078e3f Make IO traits suitable for Tun events (up/down) 2019-11-24 18:41:43 +01:00
Mathias Hall-Andersen
dee23969f5 Daemonization 2019-11-21 17:12:00 +01:00
Mathias Hall-Andersen
92dbb4c46a Clean dependencies and imports 2019-11-21 11:43:16 +01:00
Mathias Hall-Andersen
64707b0471 Update configuration API 2019-11-17 19:52:40 +01:00
Mathias Hall-Andersen
05710c455f Update UAPI semantics for remove 2019-11-15 15:32:36 +01:00
Mathias Hall-Andersen
8107973342 Work on pure WireGuard test 2019-10-23 14:00:21 +02:00
Mathias Hall-Andersen
ee3599d550 Moved IO traits into platform module 2019-10-23 12:08:35 +02:00
Mathias Hall-Andersen
3fa928b315 Work on platform specific code (Linux) 2019-10-23 10:32:18 +02:00
Mathias Hall-Andersen
a08fd4002b Work on Linux platform code 2019-10-13 22:26:12 +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
5cc1083499 Added zero_key to peer 2019-09-21 17:22:03 +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
02d9bdcc96 Full inbound/outbound router test 2019-09-10 21:42:21 +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
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
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
2272e5250f Move to hjul crate
Moved timer code into seperate crate (`hjul').
2019-08-24 23:41:05 +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
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
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
2bdcda067c Remove rust-crypto, move to libsodium bindings 2019-08-02 17:18:37 +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
2c81abbe79 Restructured for wireguard-rs 2019-07-28 17:09:27 +02:00