mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-22 11:13:44 +00:00
Inline Connection::update_keys() into decrypt_packet()
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user