From 4bb5955be9a87cdaa645d011f135a3d5af3e6956 Mon Sep 17 00:00:00 2001 From: "Dr. Maxim Orlovsky" Date: Tue, 21 Jul 2020 14:14:01 +0200 Subject: [PATCH] Moving LN_MAX_MSG_LEN const to the actual use place --- lightning/src/ln/mod.rs | 2 +- lightning/src/ln/peer_channel_encryptor.rs | 12 +++++++++++- lightning/src/ln/wire.rs | 11 ----------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lightning/src/ln/mod.rs b/lightning/src/ln/mod.rs index dd91333a..ecf40d75 100644 --- a/lightning/src/ln/mod.rs +++ b/lightning/src/ln/mod.rs @@ -36,4 +36,4 @@ mod chanmon_update_fail_tests; #[cfg(test)] mod reorg_tests; -pub use self::wire::LN_MAX_MSG_LEN; +pub use self::peer_channel_encryptor::LN_MAX_MSG_LEN; diff --git a/lightning/src/ln/peer_channel_encryptor.rs b/lightning/src/ln/peer_channel_encryptor.rs index db38d4ca..111c86ec 100644 --- a/lightning/src/ln/peer_channel_encryptor.rs +++ b/lightning/src/ln/peer_channel_encryptor.rs @@ -1,6 +1,5 @@ use ln::msgs::LightningError; use ln::msgs; -use ln::wire::LN_MAX_MSG_LEN; use bitcoin::hashes::{Hash, HashEngine, Hmac, HmacEngine}; use bitcoin::hashes::sha256::Hash as Sha256; @@ -13,6 +12,11 @@ use bitcoin::secp256k1; use util::chacha20poly1305rfc::ChaCha20Poly1305RFC; use util::byte_utils; +/// Maximum Lightning message data length according to +/// [BOLT-8](https://github.com/lightningnetwork/lightning-rfc/blob/v1.0/08-transport.md#lightning-message-specification) +/// and [BOLT-1](https://github.com/lightningnetwork/lightning-rfc/blob/master/01-messaging.md#lightning-message-format): +pub const LN_MAX_MSG_LEN: usize = ::std::u16::MAX as usize; // Must be equal to 65535 + // Sha256("Noise_XK_secp256k1_ChaChaPoly_SHA256") const NOISE_CK: [u8; 32] = [0x26, 0x40, 0xf5, 0x2e, 0xeb, 0xcd, 0x9e, 0x88, 0x29, 0x58, 0x95, 0x1c, 0x79, 0x42, 0x50, 0xee, 0xdb, 0x28, 0x00, 0x2c, 0x05, 0xd7, 0xdc, 0x2e, 0xa0, 0xf1, 0x95, 0x40, 0x60, 0x42, 0xca, 0xf1]; // Sha256(NOISE_CK || "lightning") @@ -698,6 +702,12 @@ mod tests { } } + #[test] + fn max_msg_len_limit_value() { + assert_eq!(LN_MAX_MSG_LEN, 65535); + assert_eq!(LN_MAX_MSG_LEN, ::std::u16::MAX as usize); + } + #[test] #[should_panic(expected = "Attempted to encrypt message longer than 65535 bytes!")] fn max_message_len_encryption() { diff --git a/lightning/src/ln/wire.rs b/lightning/src/ln/wire.rs index 43a8cd5d..15a21806 100644 --- a/lightning/src/ln/wire.rs +++ b/lightning/src/ln/wire.rs @@ -16,11 +16,6 @@ use ln::msgs; use util::ser::{Readable, Writeable, Writer}; -/// Maximum Lightning message data length according to -/// [BOLT-8](https://github.com/lightningnetwork/lightning-rfc/blob/v1.0/08-transport.md#lightning-message-specification) -/// and [BOLT-1](https://github.com/lightningnetwork/lightning-rfc/blob/master/01-messaging.md#lightning-message-format): -pub const LN_MAX_MSG_LEN: usize = std::u16::MAX as usize; // Must be equal to 65535 - /// A Lightning message returned by [`read`] when decoding bytes received over the wire. Each /// variant contains a message from [`ln::msgs`] or otherwise the message type if unknown. /// @@ -316,12 +311,6 @@ mod tests { // Big-endian wire encoding of Pong message (type = 19, byteslen = 2). const ENCODED_PONG: [u8; 6] = [0u8, 19u8, 0u8, 2u8, 0u8, 0u8]; - #[test] - fn max_msg_len() { - assert_eq!(LN_MAX_MSG_LEN, 65535); - assert_eq!(LN_MAX_MSG_LEN, std::u16::MAX as usize); - } - #[test] fn read_empty_buffer() { let buffer = []; -- 2.30.2