diff --git a/crates/net/src/manager.rs b/crates/net/src/manager.rs index b76642a..33f70ce 100644 --- a/crates/net/src/manager.rs +++ b/crates/net/src/manager.rs @@ -2,7 +2,7 @@ use std::collections::{HashMap, HashSet}; use tokio::sync::mpsc; use tokio_util::task::JoinMap; -use crate::{error::NetError, message::MsgId, packet::{ConnId, Message, Packet}, peer::PeerId, session::{ActiveSession, EphemeralState, PendingSession, SessionId}}; +use crate::{error::NetError, message::MsgId, packet::{ConnId, WireMessage, Packet}, peer::PeerId, session::{ActiveSession, EphemeralState, PendingSession, SessionId}}; struct NetworkManager { sessions_by_peer: HashMap>, @@ -10,7 +10,7 @@ struct NetworkManager { active_sessions: HashMap, pending_sessions: HashMap, ephemeral_states: HashMap, - message_callbacks: HashMap<(SessionId, MsgId), mpsc::Sender>, + message_callbacks: HashMap<(SessionId, MsgId), mpsc::Sender>, ttl_sessions: HashMap, conns_by_peer: HashMap>, diff --git a/crates/net/src/packet.rs b/crates/net/src/packet.rs index cc0077a..d650f38 100644 --- a/crates/net/src/packet.rs +++ b/crates/net/src/packet.rs @@ -1,4 +1,4 @@ -use crypto::{ciphertext::Ciphertext, kem::{Capsule, PublicKey}}; +use crypto::{ciphertext::Ciphertext, kem::{Capsule, PublicKey}, id::Id}; use serde::{Deserialize, Serialize}; use serde_big_array::BigArray; @@ -19,15 +19,17 @@ pub struct HandshakeAck { } #[derive(Serialize, Deserialize)] -pub struct Message { +pub struct WireMessage { pub seq: u64, + pub session_id: SessionId, pub ciphertext: Ciphertext, - pub conn_id: ConnId, } +pub type SessionId = Id; + #[derive(Serialize, Deserialize)] pub enum Packet { Handshake(Handshake), HandshakeAck(HandshakeAck), - Message(Message), + Message(WireMessage), } \ No newline at end of file diff --git a/crates/net/src/session.rs b/crates/net/src/session.rs index e183d1b..8f6c0ed 100644 --- a/crates/net/src/session.rs +++ b/crates/net/src/session.rs @@ -1,17 +1,11 @@ use bytes::Bytes; use crypto::{blake3, ciphertext::{Ciphertext, Nonce}, id::Id, kem::{SecretKey, SharedSecret}}; -use crate::{error::NetError, packet::Message}; +use crate::{error::NetError, packet::WireMessage}; const WINDOW: usize = 32; const VERSION: u8 = 1; -pub struct WireMessage { // TODO: Move it to the packet.rs - seq: u64, - session_id: SessionId, - ciphertext: Ciphertext, -} - pub type SessionId = Id; pub struct PendingSession(SharedSecret); @@ -83,7 +77,7 @@ impl ActiveSession { Ok(WireMessage { seq: self.seq, ciphertext, session_id: self.session_id.clone() }) } - pub fn recv(&mut self, msg: Message) -> Result { + pub fn recv(&mut self, msg: WireMessage) -> Result { if !self.check_seq(msg.seq) { return Err(NetError::InvalidSeq); }