From 8f7175cd6f1117044f677b2b7c41bd2ef72df308 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Tue, 23 Oct 2018 20:52:43 +0200 Subject: [PATCH] Inline Connection::update_keys() into decrypt_packet() --- quinn-proto/src/connection.rs | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/quinn-proto/src/connection.rs b/quinn-proto/src/connection.rs index 0546de492..96a79e643 100644 --- a/quinn-proto/src/connection.rs +++ b/quinn-proto/src/connection.rs @@ -804,20 +804,6 @@ impl Connection { self.set_loss_detection_alarm(config); } - pub fn update_keys( - &mut self, - packet: u64, - header: &[u8], - payload: &mut BytesMut, - ) -> Result<(), ()> { - let new = self.crypto.as_mut().unwrap().update(self.side); - new.decrypt(packet, header, payload)?; - let old = mem::replace(self.crypto.as_mut().unwrap(), new); - self.prev_crypto = Some((packet, old)); - self.key_phase = !self.key_phase; - Ok(()) - } - pub fn transmit_handshake(&mut self, messages: &[u8]) { let offset = { let ss = self @@ -2460,8 +2446,13 @@ impl Connection { // Illegal key update return Err(Some(TransportError::PROTOCOL_VIOLATION)); } - self.update_keys(number, &packet.header_data, &mut packet.payload) - .map_err(|_| None)?; + let new = self.crypto.as_mut().unwrap().update(self.side); + new.decrypt(number, &packet.header_data, &mut packet.payload) + .map_err(|()| None)?; + + let old = mem::replace(self.crypto.as_mut().unwrap(), new); + self.prev_crypto = Some((number, old)); + self.key_phase = !self.key_phase; Ok((packet.payload.to_vec(), number)) } else { let crypto = match (handshake, &self.prev_crypto) {