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 @@ -418,12 +418,20 @@ pub(super) fn construct_onion_packet(
418418#[ allow( unused) ]
419419pub ( super ) fn construct_trampoline_onion_packet (
420420 payloads : Vec < msgs:: OutboundTrampolinePayload > , onion_keys : Vec < OnionKeys > ,
421- prng_seed : [ u8 ; 32 ] , associated_data : & PaymentHash , length : u16 ,
421+ prng_seed : [ u8 ; 32 ] , associated_data : & PaymentHash ,
422422) -> Result < msgs:: TrampolineOnionPacket , ( ) > {
423- let mut packet_data = vec ! [ 0u8 ; length as usize ] ;
423+ let packet_length: usize = payloads
424+ . iter ( )
425+ . map ( |p| {
426+ let mut payload_len = LengthCalculatingWriter ( 0 ) ;
427+ p. write ( & mut payload_len) . expect ( "Failed to calculate length" ) ;
428+ payload_len. 0 + 32
429+ } )
430+ . sum ( ) ;
424431
432+ let mut packet_data = vec ! [ 0u8 ; packet_length] ;
425433 let mut chacha = ChaCha20 :: new ( & prng_seed, & [ 0 ; 8 ] ) ;
426- chacha. process ( & vec ! [ 0u8 ; length as usize ] , & mut packet_data) ;
434+ chacha. process ( & vec ! [ 0u8 ; packet_length ] , & mut packet_data) ;
427435
428436 construct_onion_packet_with_init_noise :: < _ , _ > (
429437 payloads,
You can’t perform that action at this time.
0 commit comments