aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-01-27 18:37:38 -0800
committerJake McGinty <me@jake.su>2018-01-27 18:37:42 -0800
commitc7dc89128fc124b6fbe621e3f4d5f69292525242 (patch)
treeb499342faa5f9ee40472fd4fd78beb0c18118d68 /src
parenthandle incoming handshake init packets (diff)
downloadwireguard-rs-c7dc89128fc124b6fbe621e3f4d5f69292525242.tar.xz
wireguard-rs-c7dc89128fc124b6fbe621e3f4d5f69292525242.zip
ratchet session upon sending successful handshake response
TODO: handshake packet resending after lack of confirmation
Diffstat (limited to 'src')
-rw-r--r--src/interface/peer_server.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/interface/peer_server.rs b/src/interface/peer_server.rs
index b88235e..7b5f3ff 100644
--- a/src/interface/peer_server.rs
+++ b/src/interface/peer_server.rs
@@ -102,6 +102,7 @@ impl PeerServer {
return;
}
+ // TODO: hacked up API until it's officially supported in snow.
let peer_ref = {
let their_pubkey = match noise {
snow::Session::Handshake(ref mut handshake_state) => {
@@ -121,6 +122,7 @@ impl PeerServer {
let mut peer = peer_ref.borrow_mut();
+ // TODO: hacked up API until it's officially supported in snow.
match noise {
snow::Session::Handshake(ref mut handshake_state) => {
handshake_state.set_psk(2, &peer.info.psk.expect("no psk!"));
@@ -134,6 +136,7 @@ impl PeerServer {
let response_packet = peer.get_response_packet();
self.handle.spawn(self.udp_tx.clone().send((addr.clone(), response_packet)).then(|_| Ok(())));
+ peer.ratchet_session().unwrap();
info!("sent handshake response");
},
2 => {