Commit graph

506 commits

Author SHA1 Message Date
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 22c83f4b8d Merge branch 'master' of git.zx2c4.com:wireguard-go 2017-08-02 15:32:12 +02:00
Mathias Hall-Andersen a70c44a9f6 Create /var/run/wireguard if non-existent 2017-08-02 15:30:57 +02:00
Jason A. Donenfeld 0ade48cb82 Makefile: cleanup a bit and add cloc
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2017-08-01 17:09:34 +02:00
Mathias Hall-Andersen 91c1822473 Remove stale unix socket 2017-08-01 12:45:11 +02:00
Mathias Hall-Andersen b03a6ab1b1 Close UAPI socket before exit 2017-08-01 12:15:20 +02:00
Mathias Hall-Andersen d7a49b8b8c Verify source address 2017-07-31 22:26:55 +02:00
Mathias Hall-Andersen 1fb00e8045 Fixed shadowing bug 2017-07-27 23:51:07 +02:00
Mathias Hall-Andersen 92135131a7 Merge branch 'master' of git.zx2c4.com:wireguard-go 2017-07-27 23:46:01 +02:00
Mathias Hall-Andersen fb3fa4f915 Improved timer code 2017-07-27 23:45:37 +02:00
Mathias Hall-Andersen c3d9ae402d Close UDP connection when listen port changes 2017-07-23 16:21:08 +02:00
Mathias Hall-Andersen 2ed9dac3a5 Merge branch 'darwin' 2017-07-23 15:48:23 +02:00
Mathias Hall-Andersen 2a6dd2ed92 Fixed UAPI deadlock 2017-07-21 15:17:43 +02:00
Mathias Hall-Andersen 47f8a3d89a Moved remaining platform dependent UAPI code 2017-07-20 15:06:24 +02:00
Mathias Hall-Andersen 086d32186a Reviewed and added OSX patch
The patch was provided by:
Naveen Nathan <naveen@lastninja.net>

The following modifications to the patch was made:

- Added copyright notice
- Fixed file descriptor leak in .MTU() method
- Migrated to the new(er) golang.org/x/sys/unix package
- Removed non-functioning Daemonize method
2017-07-19 13:12:25 +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 b21c82e32d Conforming to the cross-platform UX
The implementation now terminates when the unix socket is deleted.
Currently we are unable to use fsnotify (on linux),
since it does not notify on the deletion of open files.

The implementation can now daemonize (on linux)
or be kept in the foreground by providing the necessary flag.
2017-07-15 13:41:02 +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 0043008ad0 Endpoint discovery from handshake initiation 2017-07-13 21:29:22 +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 8393cbff52 Restructured MAC/cookie calculation
Added copy-right headers accidentally removed
2017-07-12 23:11:49 +02:00
Mathias Hall-Andersen 86707cbc88 Fixed MTU method for linux TUN interface
Updated the TUN interface
Added the "MTU" method for the linux implementation of the TUN interface
2017-07-11 22:48:58 +02:00
Mathias Hall-Andersen c273078376 Added ratelimiting of handshake messages 2017-07-11 18:48:29 +02:00
Mathias Hall-Andersen 9c4acb9f35 Fixed incomming initiation bug 2017-07-10 17:20:43 +02:00
Mathias Hall-Andersen 44c9896883 Added replay protection 2017-07-10 12:09:19 +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 70179f8c8c Fixed broken test 2017-07-06 16:24:24 +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 a4cc0a30fa Removed exponential backoff 2017-06-30 23:05:03 +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
Mathias Hall-Andersen cf3a5130d3 Completed noise handshake 2017-06-24 22:03:52 +02:00
Mathias Hall-Andersen 25190e4336 Restructuring of noise impl. 2017-06-24 15:34:44 +02:00
Mathias Hall-Andersen 521e77fd54 Fixed missing type 2017-06-23 13:45:32 +02:00
Mathias Hall-Andersen 50aeefcb51 Beginning work noise handshake 2017-06-23 13:41:59 +02:00
Mathias Hall-Andersen 1868d15914 Beginning work on TUN interface
And outbound routing

I am not entirely convinced the use of net.IP is a good idea,
since the internal representation of net.IP is a byte slice
and all constructor functions in "net" return 16 byte slices
(padded for IPv4), while the use in this project uses 4 byte slices.
Which may be confusing.
2017-06-04 21:48:15 +02:00
Mathias Hall-Andersen dbc3ee3e9d Trie random test
Test trie against naive implementation of prefix routing.
2017-06-02 18:02:04 +02:00