File tree 1 file changed +11
-3
lines changed
lightning/src/blinded_path 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -201,6 +201,11 @@ impl Writeable for BlindedPathPadding {
201
201
}
202
202
}
203
203
204
+ /// The constant size added to unencrypted TLV length,
205
+ /// due to the addition of Padding Type (2 bytes) and
206
+ /// encryption data (16 bytes).
207
+ const TLV_OVERHEAD : usize = 18 ;
208
+
204
209
/// A generic struct that applies padding to blinded path TLVs, rounding their size off to `round_off`
205
210
pub ( crate ) struct BlindedPathWithPadding < T : Writeable > {
206
211
pub ( crate ) tlvs : T ,
@@ -209,10 +214,13 @@ pub(crate) struct BlindedPathWithPadding<T: Writeable> {
209
214
210
215
impl < T : Writeable > Writeable for BlindedPathWithPadding < T > {
211
216
fn write < W : Writer > ( & self , writer : & mut W ) -> Result < ( ) , io:: Error > {
212
- let length = self . tlvs . serialized_length ( ) ;
213
- let padding_length = ( length + self . round_off - 1 ) / self . round_off * self . round_off - length;
217
+ let tlv_length = self . tlvs . serialized_length ( ) ;
218
+ let total_length = tlv_length + TLV_OVERHEAD ;
219
+
220
+ let padding_length = ( total_length + self . round_off - 1 ) / self . round_off * self . round_off
221
+ - total_length;
214
222
215
- let padding = Some ( BlindedPathPadding :: new ( padding_length) ) ;
223
+ let padding = BlindedPathPadding :: new ( padding_length) . into ( ) ;
216
224
217
225
encode_tlv_stream ! ( writer, {
218
226
( 1 , padding, option) ,
You can’t perform that action at this time.
0 commit comments