Wrap long onion_message fuzz strings
[rust-lightning] / fuzz / src / onion_message.rs
index d2e35cd45cdbabc7745abd4f49c8cdf94e793362..9cc3e04a637b4ea4960df59e76870155512c4161 100644 (file)
@@ -14,7 +14,7 @@ use lightning::offers::invoice_request::UnsignedInvoiceRequest;
 use lightning::util::test_channel_signer::TestChannelSigner;
 use lightning::util::logger::Logger;
 use lightning::util::ser::{Readable, Writeable, Writer};
-use lightning::onion_message::{CustomOnionMessageContents, CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessagePath, OnionMessenger};
+use lightning::onion_message::{CustomOnionMessageHandler, Destination, MessageRouter, OffersMessage, OffersMessageHandler, OnionMessageContents, OnionMessagePath, OnionMessenger, PendingOnionMessage};
 
 use crate::utils::test_logger;
 
@@ -84,7 +84,7 @@ struct TestCustomMessage {}
 const CUSTOM_MESSAGE_TYPE: u64 = 4242;
 const CUSTOM_MESSAGE_CONTENTS: [u8; 32] = [42; 32];
 
-impl CustomOnionMessageContents for TestCustomMessage {
+impl OnionMessageContents for TestCustomMessage {
        fn tlv_type(&self) -> u64 {
                CUSTOM_MESSAGE_TYPE
        }
@@ -108,6 +108,9 @@ impl CustomOnionMessageHandler for TestCustomMessageHandler {
                buffer.read_to_end(&mut buf)?;
                return Ok(Some(TestCustomMessage {}))
        }
+       fn release_pending_custom_messages(&self) -> Vec<PendingOnionMessage<Self::CustomMessage>> {
+               vec![]
+       }
 }
 
 pub struct VecWriter(pub Vec<u8>);
@@ -208,20 +211,40 @@ mod tests {
 
        #[test]
        fn test_no_onion_message_breakage() {
-               let one_hop_om = "020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000000000000000000000000000000000000000000000000000e01ae0276020000000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000e0101022a0000000000000000000000000000014551231950b75fc4402da1732fc9bebf00109500000000000000000000000000000004106d000000000000000000000000000000fd1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000";
-               let logger = TrackingLogger { lines: Mutex::new(HashMap::new()) };
-               super::do_test(&::hex::decode(one_hop_om).unwrap(), &logger);
-               {
-                       let log_entries = logger.lines.lock().unwrap();
-                       assert_eq!(log_entries.get(&("lightning::onion_message::messenger".to_string(),
-                                               "Received an onion message with path_id None and a reply_path".to_string())), Some(&1));
-                       assert_eq!(log_entries.get(&("lightning::onion_message::messenger".to_string(),
-                                               "Responding to onion message with path_id None".to_string())), Some(&1));
-                       assert_eq!(log_entries.get(&("lightning::onion_message::messenger".to_string(),
-                                               "Failed responding to onion message with path_id None: TooFewBlindedHops".to_string())), Some(&1));
-               }
-
-               let two_unblinded_hops_om = "020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000000000000000000000000000000000000000000000000000e0135043304210202020202020202020202020202020202020202020202020202020202020202026d000000000000000000000000000000eb0000000000000000000000000000000000000000000000000000000000000036041096000000000000000000000000000000fd1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000";
+               let two_unblinded_hops_om = "\
+                       020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000\
+                       000000000000000000000000000000000000000000000000e01350433042102020202020202020202020202\
+                       02020202020202020202020202020202020202026d000000000000000000000000000000eb0000000000000\
+                       000000000000000000000000000000000000000000000000036041096000000000000000000000000000000\
+                       fd1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000004800000000000000000000000000000000000000000000\
+                       000000000000000000";
                let logger = TrackingLogger { lines: Mutex::new(HashMap::new()) };
                super::do_test(&::hex::decode(two_unblinded_hops_om).unwrap(), &logger);
                {
@@ -229,7 +252,40 @@ mod tests {
                        assert_eq!(log_entries.get(&("lightning::onion_message::messenger".to_string(), "Forwarding an onion message to peer 020202020202020202020202020202020202020202020202020202020202020202".to_string())), Some(&1));
                }
 
-               let two_unblinded_two_blinded_om = "020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000000000000000000000000000000000000000000000000000e0135043304210202020202020202020202020202020202020202020202020202020202020202026d0000000000000000000000000000009e0000000000000000000000000000000000000000000000000000000000000058045604210203030303030303030303030303030303030303030303030303030303030303020821020000000000000000000000000000000000000000000000000000000000000e0196000000000000000000000000000000e9000000000000000000000000000000000000000000000000000000000000003504330421020404040404040404040404040404040404040404040404040404040404040402ca00000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000003604103f000000000000000000000000000000fd1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000";
+               let two_unblinded_two_blinded_om = "\
+                       020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000\
+                       000000000000000000000000000000000000000000000000e01350433042102020202020202020202020202\
+                       02020202020202020202020202020202020202026d0000000000000000000000000000009e0000000000000\
+                       000000000000000000000000000000000000000000000000058045604210203030303030303030303030303\
+                       030303030303030303030303030303030303020821020000000000000000000000000000000000000000000\
+                       000000000000000000e0196000000000000000000000000000000e900000000000000000000000000000000\
+                       000000000000000000000000000000350433042102040404040404040404040404040404040404040404040\
+                       4040404040404040402ca000000000000000000000000000000420000000000000000000000000000000000\
+                       00000000000000000000000000003604103f000000000000000000000000000000fd1092202a2a2a2a2a2a2\
+                       a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000004800000000000000000000000000000000000000000000\
+                       000000000000000000";
                let logger = TrackingLogger { lines: Mutex::new(HashMap::new()) };
                super::do_test(&::hex::decode(two_unblinded_two_blinded_om).unwrap(), &logger);
                {
@@ -237,7 +293,40 @@ mod tests {
                        assert_eq!(log_entries.get(&("lightning::onion_message::messenger".to_string(), "Forwarding an onion message to peer 020202020202020202020202020202020202020202020202020202020202020202".to_string())), Some(&1));
                }
 
-               let three_blinded_om = "020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000000000000000000000000000000000000000000000000000e0135043304210202020202020202020202020202020202020202020202020202020202020202026d000000000000000000000000000000b20000000000000000000000000000000000000000000000000000000000000035043304210203030303030303030303030303030303030303030303030303030303030303029600000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003604104e000000000000000000000000000000fd1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000";
+               let three_blinded_om = "\
+                       020000000000000000000000000000000000000000000000000000000000000e01055600020000000000000\
+                       000000000000000000000000000000000000000000000000e01350433042102020202020202020202020202\
+                       02020202020202020202020202020202020202026d000000000000000000000000000000b20000000000000\
+                       000000000000000000000000000000000000000000000000035043304210203030303030303030303030303\
+                       030303030303030303030303030303030303029600000000000000000000000000000033000000000000000\
+                       000000000000000000000000000000000000000000000003604104e000000000000000000000000000000fd\
+                       1092202a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a00000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\
+                       000000000000000000000000000000000000000004800000000000000000000000000000000000000000000\
+                       000000000000000000";
                let logger = TrackingLogger { lines: Mutex::new(HashMap::new()) };
                super::do_test(&::hex::decode(three_blinded_om).unwrap(), &logger);
                {