aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock7
-rw-r--r--Cargo.toml1
-rw-r--r--src/main.rs1
-rw-r--r--src/noise.rs3
4 files changed, 11 insertions, 1 deletions
diff --git a/Cargo.lock b/Cargo.lock
index def3660..5fa4fc2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -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"
diff --git a/Cargo.toml b/Cargo.toml
index aebec33..2730045 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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(())
}
}