aboutsummaryrefslogtreecommitdiffstats
path: root/src/noise.rs
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-02-13 20:50:50 +0000
committerJake McGinty <me@jake.su>2018-02-13 20:50:50 +0000
commitb9fa6ef600f2694575f5b556d06868564a9e9587 (patch)
treebed2845387ff278cb3ccbbd2f1b3439a17ec242f /src/noise.rs
parentreject after REJECT_AFTER_MESSAGES messages (diff)
downloadwireguard-rs-b9fa6ef600f2694575f5b556d06868564a9e9587.tar.xz
wireguard-rs-b9fa6ef600f2694575f5b556d06868564a9e9587.zip
use constant time comparison for mac
Diffstat (limited to 'src/noise.rs')
-rw-r--r--src/noise.rs3
1 files changed, 2 insertions, 1 deletions
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(())
}
}