diff --git a/nym-client/src/sockets/tcp.rs b/nym-client/src/sockets/tcp.rs index df02c5074a..e37c901c9a 100644 --- a/nym-client/src/sockets/tcp.rs +++ b/nym-client/src/sockets/tcp.rs @@ -95,6 +95,16 @@ impl ClientRequest { mut input_tx: mpsc::UnboundedSender, ) -> ServerResponse { trace!("sending to: {:?}, msg: {:?}", recipient_address, msg); + if msg.len() > sphinx::constants::MAXIMUM_PLAINTEXT_LENGTH { + return ServerResponse::Error { + message: format!( + "too long message. Sent {} bytes while the maximum is {}", + msg.len(), + sphinx::constants::MAXIMUM_PLAINTEXT_LENGTH + ) + .to_string(), + }; + } let dummy_surb = [0; 16]; let input_msg = InputMessage(Destination::new(recipient_address, dummy_surb), msg); input_tx.send(input_msg).await.unwrap(); diff --git a/nym-client/src/sockets/ws.rs b/nym-client/src/sockets/ws.rs index 0a2807038e..fa44b925a7 100644 --- a/nym-client/src/sockets/ws.rs +++ b/nym-client/src/sockets/ws.rs @@ -188,20 +188,12 @@ impl ClientRequest { mut input_tx: mpsc::UnboundedSender, ) -> ServerResponse { let message_bytes = msg.into_bytes(); - // TODO: wait until 0.4.0 release to replace those constants with newly exposed - // sphinx::constants::MAXIMUM_PLAINTEXT_LENGTH - // we can't do it now for compatibility reasons as most recent sphinx revision - // has breaking changes due to packet format changes - let maximum_plaintext_length = sphinx::constants::PAYLOAD_SIZE - - sphinx::constants::SECURITY_PARAMETER - - sphinx::constants::DESTINATION_ADDRESS_LENGTH - - 1; - if message_bytes.len() > maximum_plaintext_length { + if message_bytes.len() > sphinx::constants::MAXIMUM_PLAINTEXT_LENGTH { return ServerResponse::Error { message: format!( "too long message. Sent {} bytes while the maximum is {}", message_bytes.len(), - maximum_plaintext_length + sphinx::constants::MAXIMUM_PLAINTEXT_LENGTH ) .to_string(), };