From bf960c2dd0beea1c512c67a2e18f00cdce1d514a Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Fri, 1 Jun 2018 15:41:47 -0500 Subject: finish up nonce rework --- src/interface/peer_server.rs | 2 ++ src/peer.rs | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/interface/peer_server.rs b/src/interface/peer_server.rs index 5d10406..d03fa58 100644 --- a/src/interface/peer_server.rs +++ b/src/interface/peer_server.rs @@ -256,6 +256,7 @@ impl PeerServer { .ok_or_else(|| format_err!("unknown our_index ({})", our_index))? .clone(); let mut peer = peer_ref.borrow_mut(); + debug!("processing incoming handshake response"); let dead_index = peer.process_incoming_handshake_response(addr, packet)?; if let Some(index) = dead_index { let _ = state.index_map.remove(&index); @@ -268,6 +269,7 @@ impl PeerServer { self.send_to_peer(peer.handle_outgoing_transport(packet.payload())?)?; } } else { + debug!("sending empty keepalive"); self.send_to_peer(peer.handle_outgoing_transport(&[])?)?; } } else { diff --git a/src/peer.rs b/src/peer.rs index 8538e2c..c0b21eb 100644 --- a/src/peer.rs +++ b/src/peer.rs @@ -95,6 +95,7 @@ impl Session { } pub fn into_transport_mode(self) -> Result { + debug!("converting to async transport mode"); Ok(Session { noise : self.noise.into_async_transport_mode()?, our_index : self.our_index, @@ -202,7 +203,7 @@ impl Peer { return true; } if let Some(ref session) = self.sessions.current { - if session.noise.sending_nonce().unwrap() >= REKEY_AFTER_MESSAGES { + if session.nonce >= REKEY_AFTER_MESSAGES { debug!("needs new handshake: nonce >= REKEY_AFTER_MESSAGES"); return true; } @@ -213,7 +214,7 @@ impl Peer { pub fn ready_for_transport(&self) -> bool { if let Some(ref current) = self.sessions.current { current.birthday.elapsed() < *REJECT_AFTER_TIME && - current.noise.sending_nonce().unwrap() < REJECT_AFTER_MESSAGES + current.nonce < REJECT_AFTER_MESSAGES } else { false } @@ -319,8 +320,10 @@ impl Peer { pub fn process_incoming_handshake_response(&mut self, addr: Endpoint, packet: &Response) -> Result, Error> { let mut session = mem::replace(&mut self.sessions.next, None).ok_or_else(|| err_msg("no next session"))?; + debug!("reading handshake message"); let _ = session.noise.read_message(packet.noise_bytes(), &mut [])?; + debug!("converting to transport mode"); session = session.into_transport_mode()?; session.their_index = packet.sender_index(); session.birthday = Timestamp::now(); -- cgit v1.2.3-59-g8ed1b