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