From f3cf64eef3a3ab81c575c9d88d2aeb08b8c302a9 Mon Sep 17 00:00:00 2001 From: Dennis Schwerdel Date: Tue, 5 Apr 2016 15:27:47 +0200 Subject: [PATCH] Updated libsodium, updated depdendencies --- .gitignore | 1 + CHANGELOG.md | 1 + Cargo.lock | 55 +++++++++++++++++++++++++--------------------------- Cargo.toml | 4 ++-- README.md | 20 ++++++++++--------- libsodium | 2 +- 6 files changed, 42 insertions(+), 41 deletions(-) diff --git a/.gitignore b/.gitignore index 0f50a54..062b61d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ target vpncloud-oldnodes ._* +.~* deb/vpncloud/vpncloud* diff --git a/CHANGELOG.md b/CHANGELOG.md index 69d3225..6ad8309 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ This project follows [semantic versioning](http://semver.org). - [changed] Passing listen address as &str - [changed] Using FNV hash for better performance - [changed] Using slice operations instead of loops +- [changed] Updated libsodium to 1.0.10 - [fixed] Fixed wrong hex address formatting - [fixed] Fixed peer exchange for more than 65000 peers - [fixed] Initializing crypto for benchmarks diff --git a/Cargo.lock b/Cargo.lock index 65291a0..103422c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,17 +4,17 @@ version = "0.4.3" dependencies = [ "aligned_alloc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "docopt 0.6.78 (registry+https://github.com/rust-lang/crates.io-index)", - "epoll 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "epoll 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "gcc 0.3.26 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "signal 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -22,7 +22,7 @@ name = "aho-corasick" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -31,7 +31,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -50,18 +50,18 @@ name = "docopt" version = "0.6.78" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "regex 0.1.59 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 0.1.62 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "epoll" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "errno 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -70,7 +70,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -100,28 +100,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "log" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "memchr" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "mempool" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -139,7 +136,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -152,17 +149,17 @@ name = "rand" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex" -version = "0.1.59" +version = "0.1.62" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "mempool 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "mempool 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -174,7 +171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "rustc-serialize" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -184,7 +181,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -194,11 +191,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "time" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "kernel32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/Cargo.toml b/Cargo.toml index db83805..e893617 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,11 +15,11 @@ time = "0.1" docopt = "0.6" rustc-serialize = "0.3" log = "0.3" -epoll = "0.2" +epoll = "0.3" signal = "0.1" nix = "0.5" libc = "0.2" -aligned_alloc = "0.1.1" +aligned_alloc = "0.1" rand = "0.3" fnv = "1" diff --git a/README.md b/README.md index 89d5ea7..0d02ec2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ VpnCloud - Peer-to-Peer VPN [![Latest Version](https://img.shields.io/crates/v/vpncloud.svg)](https://crates.io/crates/vpncloud) **VpnCloud** is a simple VPN over UDP. It creates a virtual network interface on -the host and forwards all received data via UDP to the destination. It can work +the host and forwards all received data via UDP to the destination. VpnCloud +establishes a fully-meshed VPN network in a peer-to-peer manner. It can work on TUN devices (IP based) and TAP devices (Ethernet based). Tunneling traffic between two nodes can be as easy as: @@ -18,16 +19,15 @@ More details can be found in [the manpage](vpncloud.md). Some performance measurements can be found [here](performance.md). -### Current Status +### Project Status -This project is still [under development](CHANGELOG.md) and has yet to reach a stable state. -However, the main functionality should work and you are invited to test it. -This is what works: +This project is still [under development](CHANGELOG.md) but has reached a +somewhat stable state. VpnCloud features the following functionality: * Setting up tunnels between two networks via Ethernet (TAP) and IP (TUN) * Connecting multiple networks with multiple forwarding behaviors (Hub, Switch, Router) * Encrypted connections using [libsodium](https://github.com/jedisct1/libsodium) -* Automatic peer-to-peer meshing +* Automatic peer-to-peer meshing, no central servers * NAT and (limited) firewall traversal using hole punching * Automatic reconnecting when connections are lost * Non-native forwarding modes, e.g. IP based learning switch and prefix routed Ethernet networks. @@ -36,12 +36,14 @@ This is what works: However there are some open issues: -* Encryption has not been thoroughly reviewed, use with care. -* The software is not very well tested and the protocol can change. +* Encryption has not been formally reviewed, use with care. +* The tests might be missing some corner cases and more field tests would be nice. Please feel free to help and contribute code. ### Semantic Versioning -This project uses [semantic versioning](http://semver.org). Currently that means that everything can change between versions before 1.0 is finally released. +This project uses [semantic versioning](http://semver.org). Currently that means +that everything can change between versions before 1.0 is finally released. +However I am considering to release 1.0 soon. diff --git a/libsodium b/libsodium index 342f209..fce6852 160000 --- a/libsodium +++ b/libsodium @@ -1 +1 @@ -Subproject commit 342f209cbe1c1c05330b832abf5b6d39f698e685 +Subproject commit fce6852d64339efa33c0ee4130b3107b888d6067