X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fonion_message%2Fpacket.rs;h=d19bd30edd212be4b19286d5ef5f0bf0f1870a8f;hb=ce7463486ee1ae61e9af439c3d34d00244248ee9;hp=a76371b39eb9fa12769e2144fb6cdd02067b70f7;hpb=3dffe54258a374d15571d4ec72f5faa02477b770;p=rust-lightning diff --git a/lightning/src/onion_message/packet.rs b/lightning/src/onion_message/packet.rs index a76371b3..d19bd30e 100644 --- a/lightning/src/onion_message/packet.rs +++ b/lightning/src/onion_message/packet.rs @@ -32,16 +32,22 @@ use crate::prelude::*; pub(super) const SMALL_PACKET_HOP_DATA_LEN: usize = 1300; pub(super) const BIG_PACKET_HOP_DATA_LEN: usize = 32768; +/// Packet of hop data for next peer #[derive(Clone, Debug, PartialEq, Eq)] -pub(crate) struct Packet { - pub(super) version: u8, - pub(super) public_key: PublicKey, +pub struct Packet { + /// Bolt 04 version number + pub version: u8, + /// A random sepc256k1 point, used to build the ECDH shared secret to decrypt hop_data + pub public_key: PublicKey, + /// Encrypted payload for the next hop + // // Unlike the onion packets used for payments, onion message packets can have payloads greater // than 1300 bytes. // TODO: if 1300 ends up being the most common size, optimize this to be: // enum { ThirteenHundred([u8; 1300]), VarLen(Vec) } - pub(super) hop_data: Vec, - pub(super) hmac: [u8; 32], + pub hop_data: Vec, + /// HMAC to verify the integrity of hop_data + pub hmac: [u8; 32], } impl onion_utils::Packet for Packet {