From 8de2305cc73920d838e11634dc9ec619c2608a78 Mon Sep 17 00:00:00 2001 From: Mathias Hall-Andersen Date: Fri, 21 Feb 2020 00:31:00 +0100 Subject: Fixed unit tests --- src/wireguard/router/receive.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/wireguard/router/receive.rs') diff --git a/src/wireguard/router/receive.rs b/src/wireguard/router/receive.rs index 0e5cb0f..45ef423 100644 --- a/src/wireguard/router/receive.rs +++ b/src/wireguard/router/receive.rs @@ -3,7 +3,7 @@ use super::ip::inner_length; use super::messages::TransportHeader; use super::queue::{ParallelJob, Queue, SequentialJob}; use super::types::Callbacks; -use super::{REJECT_AFTER_MESSAGES, SIZE_KEEPALIVE}; +use super::{REJECT_AFTER_MESSAGES, SIZE_TAG}; use super::super::{tun, udp, Endpoint}; @@ -93,7 +93,6 @@ impl> ParallelJob debug_assert_eq!(nonce.len(), CHACHA20_POLY1305.nonce_len()); nonce[4..].copy_from_slice(header.f_counter.as_bytes()); let nonce = Nonce::assume_unique_for_key(nonce); - // do the weird ring AEAD dance let key = LessSafeKey::new( UnboundKey::new(&CHACHA20_POLY1305, &job.state.keypair.recv.key[..]).unwrap(), @@ -111,7 +110,7 @@ impl> ParallelJob } // check crypto-key router - packet.len() == SIZE_KEEPALIVE || peer.device.table.check_route(&peer, &packet) + packet.len() == SIZE_TAG || peer.device.table.check_route(&peer, &packet) })(); // remove message in case of failure: @@ -174,7 +173,7 @@ impl> SequentialJob // check if should be written to TUN // (keep-alive and malformed packets will have no inner length) if let Some(inner) = inner_length(packet) { - if inner >= packet.len() { + if inner + SIZE_TAG <= packet.len() { let _ = peer.device.inbound.write(&packet[..inner]).map_err(|e| { log::debug!("failed to write inbound packet to TUN: {:?}", e); }); -- cgit v1.2.3-59-g8ed1b