Commit graph

35 commits

Author SHA1 Message Date
Mathias Hall-Andersen a0f54cbe5a Align with go library layout 2018-02-04 16:08:26 +01:00
Mathias Hall-Andersen 029410b118 Rework of entire locking system
Locking on the Device instance is now much more fined-grained,
seperating out the fields into "resources" st. most common interactions
only require a small number.
2018-02-02 16:40:14 +01:00
Mathias Hall-Andersen f73d2fb2d9 Added initial version of peer teardown
There is a double lock issue with device.Close which has yet to be
resolved.
2018-01-26 22:52:32 +01:00
Mathias Hall-Andersen 1dd590b91b Work on timer teardown + bug fixes
Added waitgroups to peer struct for routine
start / stop synchronisation
2018-01-13 09:00:37 +01:00
Mathias Hall-Andersen 996c7c4d8a Removed IFF_NO_PI from TUN linux
This change was needed for the Linux TUN status hack
to work properly (not increment the error counter).

This commit also updates the TUN interface to allow for
the construction / removal of the TUN info headers in-place.
2017-12-04 21:39:06 +01:00
Mathias Hall-Andersen eaca1ee1f7 More consistent use of signal struct 2017-12-01 23:37:26 +01:00
Mathias Hall-Andersen 02ce67294c Refactor timers.go 2017-11-30 23:22:40 +01:00
Mathias Hall-Andersen 0485c34c8e Fixed message header length in conn_linux 2017-10-27 10:43:37 +02:00
Mathias Hall-Andersen e86d03dca2 Initial implementation of source caching
Yet untested.
2017-10-16 21:33:47 +02:00
Mathias Hall-Andersen 47a21c8bb0 Added last_minute_handshake_guard
- Added last_minute_handshake_guard and reverted keypair changes.
- Added comment explaining the state of Go in releation to handling
  cryptographic state in memory.
- Decreased logging level of netsh test
2017-09-20 09:26:08 +02:00
Mathias Hall-Andersen f212795e51 Improved readability of send/receive code 2017-09-09 15:03:01 +02:00
Mathias Hall-Andersen 0294a5c0dd Improved handling of key-material 2017-09-01 14:21:53 +02:00
Mathias Hall-Andersen eafa3df606 Added fwmark code 2017-08-25 14:53:23 +02:00
Mathias Hall-Andersen a4eff12d7f Improved receive.go
- Fixed configuration listen-port semantics
- Improved receive.go code for updating listen port
- Updated under load detection, how follows the kernel space implementation
- Fixed trie bug accidentally introduced in last commit
- Added interface name to log (format still subject to change)
- Can now configure the logging level using the LOG_LEVEL variable
- Begin porting netsh.sh tests
- A number of smaller changes
2017-08-11 16:18:20 +02:00
Mathias Hall-Andersen cba1d6585a Number of fixes in response to code review
This version cannot complete a handshake.
The program will panic upon receiving any message on the UDP socket.
2017-08-07 15:25:04 +02:00
Mathias Hall-Andersen 8c34c4cbb3 First set of code review patches 2017-08-04 16:15:53 +02:00
Mathias Hall-Andersen fb3fa4f915 Improved timer code 2017-07-27 23:45:37 +02:00
Mathias Hall-Andersen 18714fc4a4 Added last_handshake_time fields to UAPI 2017-07-18 15:22:56 +02:00
Mathias Hall-Andersen bd6027a4d5 Fixed file descriptor leak on linux 2017-07-18 14:15:29 +02:00
Mathias Hall-Andersen c5d7efc246 Fixed deadlock in index.go 2017-07-17 16:16:18 +02:00
Mathias Hall-Andersen dd4da93749 Added padding
Added plaintext padding and fixed default interface MTU
2017-07-15 16:27:59 +02:00
Mathias Hall-Andersen 8993b3927c Improved throughput
- Improved performance by adding the message buffers to a sync.Pool.
- Fixed issue with computing "next" key-pair upon
  receiving a response message.
2017-07-14 14:25:18 +02:00
Mathias Hall-Andersen 93e3848ea7 Terminate on interface deletion
Program now terminates when the interface is removed
Increases the number of os threads (relevant for Go <1.5, not tested)
More consistent commenting
Improved logging (additional peer information)
2017-07-13 14:32:40 +02:00
Mathias Hall-Andersen 4ad62aaa6a Improved timer state machine 2017-07-08 23:51:26 +02:00
Mathias Hall-Andersen 5c1ccbddf0 Added source verification 2017-07-08 09:23:10 +02:00
Mathias Hall-Andersen ed31e75739 Fixed cookie reply processing bug 2017-07-07 13:47:09 +02:00
Mathias Hall-Andersen 59f9316f51 Initial working full exchange
The implementation is now capable of connecting to another
wireguard instance, complete a handshake and exchange transport
messages.
2017-07-06 15:43:55 +02:00
Mathias Hall-Andersen 2aa0daf4d5 Fixed transport header problem 2017-07-02 15:28:38 +02:00
Mathias Hall-Andersen 1e620427bd Handshake negotiation functioning 2017-07-01 23:29:22 +02:00
Mathias Hall-Andersen ba3e486667 Completed initial version of outbound flow 2017-06-30 14:41:08 +02:00
Mathias Hall-Andersen 7e185db141 Completed get/set configuration
For debugging of "outbound flow"
Mostly, a few things still missing
2017-06-29 14:39:21 +02:00
Mathias Hall-Andersen 1f0976a26c Work on UAPI
Cross-platform API (get operation)
Handshake initiation creation process
Outbound packet flow
Fixes from code-review
2017-06-28 23:45:45 +02:00
Mathias Hall-Andersen 8236f3afa2 Implemented MAC1/2 calculation 2017-06-27 17:33:06 +02:00
Mathias Hall-Andersen eb75ff430d Begin implementation of outbound work queue 2017-06-26 22:07:29 +02:00
Mathias Hall-Andersen 9d806d3853 Begin work on outbound packet flow 2017-06-26 13:14:02 +02:00