diff options
-rw-r--r-- | Cargo.lock | 7 | ||||
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/main.rs | 1 | ||||
-rw-r--r-- | src/noise.rs | 3 |
4 files changed, 11 insertions, 1 deletions
@@ -732,6 +732,11 @@ dependencies = [ ] [[package]] +name = "subtle" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "syn" version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -992,6 +997,7 @@ dependencies = [ "socket2 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-core 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1142,6 +1148,7 @@ dependencies = [ "checksum structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "783cb22d520b177a3772e520d04a3c7970d51c3b647ba80739f99be01131b54f" "checksum structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4da119c9a7a1eccb7c6de0c1eb3f7ed1c11138624d092b3687222aeed8f1375c" "checksum subtle 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7a6bab57c3efd01ebd3d750f4244ae0af4cdd1fc505a7904a41603192b803c5" +"checksum subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc7f6353c2ee5407358d063a14cccc1630804527090a6fb5a9489ce4924280fb" "checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a761d12e6d8dcb4dcf952a7a89b475e3a9d69e4a69307e01a470977642914bd" @@ -30,6 +30,7 @@ snow = { git = "https://github.com/mcginty/snow", features = ["ring-accelerated" socket2 = "^0.3" structopt = "^0.1" structopt-derive = "^0.1" +subtle = "^0.5" time = "*" tokio-io = "^0.1" tokio-core = "^0.1" diff --git a/src/main.rs b/src/main.rs index 4efebf6..2287fb4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,6 +22,7 @@ extern crate pnet; extern crate rand; extern crate snow; extern crate socket2; +extern crate subtle; extern crate structopt; extern crate test; extern crate time; diff --git a/src/noise.rs b/src/noise.rs index 3e08099..b869629 100644 --- a/src/noise.rs +++ b/src/noise.rs @@ -3,6 +3,7 @@ use failure::{Error, SyncFailure}; use snow::{NoiseBuilder, Session}; use snow::params::NoiseParams; use snow::wrappers::crypto_wrapper::Dh25519; +use subtle; use types::{InterfaceInfo, PeerInfo}; @@ -51,7 +52,7 @@ impl Noise { let mac_key = blake2s(32, &[], &mac_key_input); let our_mac = blake2s(16, mac_key.as_bytes(), mac_input); - ensure!(mac == our_mac.as_bytes(), "mac mismatch"); + ensure!(subtle::slices_equal(mac, our_mac.as_bytes()) == 1, "mac mismatch"); Ok(()) } } |