File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -553,12 +553,20 @@ pub(super) fn construct_onion_packet(
553
553
#[ allow( unused) ]
554
554
pub ( super ) fn construct_trampoline_onion_packet (
555
555
payloads : Vec < msgs:: OutboundTrampolinePayload > , onion_keys : Vec < OnionKeys > ,
556
- prng_seed : [ u8 ; 32 ] , associated_data : & PaymentHash , length : u16 ,
556
+ prng_seed : [ u8 ; 32 ] , associated_data : & PaymentHash ,
557
557
) -> Result < msgs:: TrampolineOnionPacket , ( ) > {
558
- let mut packet_data = vec ! [ 0u8 ; length as usize ] ;
558
+ let packet_length: usize = payloads
559
+ . iter ( )
560
+ . map ( |p| {
561
+ let mut payload_len = LengthCalculatingWriter ( 0 ) ;
562
+ p. write ( & mut payload_len) . expect ( "Failed to calculate length" ) ;
563
+ payload_len. 0 + 32
564
+ } )
565
+ . sum ( ) ;
559
566
567
+ let mut packet_data = vec ! [ 0u8 ; packet_length] ;
560
568
let mut chacha = ChaCha20 :: new ( & prng_seed, & [ 0 ; 8 ] ) ;
561
- chacha. process ( & vec ! [ 0u8 ; length as usize ] , & mut packet_data) ;
569
+ chacha. process ( & vec ! [ 0u8 ; packet_length ] , & mut packet_data) ;
562
570
563
571
construct_onion_packet_with_init_noise :: < _ , _ > (
564
572
payloads,
You can’t perform that action at this time.
0 commit comments