public make_onion_message static method on OnionMessenger
[rust-lightning] / lightning / src / onion_message / packet.rs
index a76371b39eb9fa12769e2144fb6cdd02067b70f7..d19bd30edd212be4b19286d5ef5f0bf0f1870a8f 100644 (file)
@@ -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<u8>) }
-       pub(super) hop_data: Vec<u8>,
-       pub(super) hmac: [u8; 32],
+       pub hop_data: Vec<u8>,
+       /// HMAC to verify the integrity of hop_data
+       pub hmac: [u8; 32],
 }
 
 impl onion_utils::Packet for Packet {