@@ -1178,8 +1178,9 @@ impl TryFrom<ParsedMessage<FullInvoiceTlvStream>> for Bolt12Invoice {
1178
1178
None => return Err ( Bolt12ParseError :: InvalidSemantics ( Bolt12SemanticError :: MissingSignature ) ) ,
1179
1179
Some ( signature) => signature,
1180
1180
} ;
1181
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & bytes) ;
1181
1182
let pubkey = contents. fields ( ) . signing_pubkey ;
1182
- merkle:: verify_signature ( & signature, SIGNATURE_TAG , & bytes , pubkey) ?;
1183
+ merkle:: verify_signature ( & signature, message , pubkey) ?;
1183
1184
1184
1185
Ok ( Bolt12Invoice { bytes, contents, signature } )
1185
1186
}
@@ -1282,7 +1283,7 @@ mod tests {
1282
1283
use crate :: ln:: inbound_payment:: ExpandedKey ;
1283
1284
use crate :: ln:: msgs:: DecodeError ;
1284
1285
use crate :: offers:: invoice_request:: InvoiceRequestTlvStreamRef ;
1285
- use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , self } ;
1286
+ use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , TaggedHash , self } ;
1286
1287
use crate :: offers:: offer:: { Amount , OfferBuilder , OfferTlvStreamRef , Quantity } ;
1287
1288
use crate :: offers:: parse:: { Bolt12ParseError , Bolt12SemanticError } ;
1288
1289
use crate :: offers:: payer:: PayerTlvStreamRef ;
@@ -1394,11 +1395,9 @@ mod tests {
1394
1395
assert_eq ! ( invoice. fallbacks( ) , vec![ ] ) ;
1395
1396
assert_eq ! ( invoice. invoice_features( ) , & Bolt12InvoiceFeatures :: empty( ) ) ;
1396
1397
assert_eq ! ( invoice. signing_pubkey( ) , recipient_pubkey( ) ) ;
1397
- assert ! (
1398
- merkle:: verify_signature(
1399
- & invoice. signature, SIGNATURE_TAG , & invoice. bytes, recipient_pubkey( )
1400
- ) . is_ok( )
1401
- ) ;
1398
+
1399
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & invoice. bytes ) ;
1400
+ assert ! ( merkle:: verify_signature( & invoice. signature, message, recipient_pubkey( ) ) . is_ok( ) ) ;
1402
1401
1403
1402
let digest = Message :: from_slice ( & invoice. signable_hash ( ) ) . unwrap ( ) ;
1404
1403
let pubkey = recipient_pubkey ( ) . into ( ) ;
@@ -1493,11 +1492,9 @@ mod tests {
1493
1492
assert_eq ! ( invoice. fallbacks( ) , vec![ ] ) ;
1494
1493
assert_eq ! ( invoice. invoice_features( ) , & Bolt12InvoiceFeatures :: empty( ) ) ;
1495
1494
assert_eq ! ( invoice. signing_pubkey( ) , recipient_pubkey( ) ) ;
1496
- assert ! (
1497
- merkle:: verify_signature(
1498
- & invoice. signature, SIGNATURE_TAG , & invoice. bytes, recipient_pubkey( )
1499
- ) . is_ok( )
1500
- ) ;
1495
+
1496
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & invoice. bytes ) ;
1497
+ assert ! ( merkle:: verify_signature( & invoice. signature, message, recipient_pubkey( ) ) . is_ok( ) ) ;
1501
1498
1502
1499
assert_eq ! (
1503
1500
invoice. as_tlv_stream( ) ,
0 commit comments