@@ -1184,8 +1184,9 @@ impl TryFrom<ParsedMessage<FullInvoiceTlvStream>> for Bolt12Invoice {
1184
1184
None => return Err ( Bolt12ParseError :: InvalidSemantics ( Bolt12SemanticError :: MissingSignature ) ) ,
1185
1185
Some ( signature) => signature,
1186
1186
} ;
1187
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & bytes) ;
1187
1188
let pubkey = contents. fields ( ) . signing_pubkey ;
1188
- merkle:: verify_signature ( & signature, SIGNATURE_TAG , & bytes , pubkey) ?;
1189
+ merkle:: verify_signature ( & signature, message , pubkey) ?;
1189
1190
1190
1191
Ok ( Bolt12Invoice { bytes, contents, signature } )
1191
1192
}
@@ -1288,7 +1289,7 @@ mod tests {
1288
1289
use crate :: ln:: inbound_payment:: ExpandedKey ;
1289
1290
use crate :: ln:: msgs:: DecodeError ;
1290
1291
use crate :: offers:: invoice_request:: InvoiceRequestTlvStreamRef ;
1291
- use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , self } ;
1292
+ use crate :: offers:: merkle:: { SignError , SignatureTlvStreamRef , TaggedHash , self } ;
1292
1293
use crate :: offers:: offer:: { Amount , OfferBuilder , OfferTlvStreamRef , Quantity } ;
1293
1294
use crate :: offers:: parse:: { Bolt12ParseError , Bolt12SemanticError } ;
1294
1295
use crate :: offers:: payer:: PayerTlvStreamRef ;
@@ -1400,11 +1401,9 @@ mod tests {
1400
1401
assert_eq ! ( invoice. fallbacks( ) , vec![ ] ) ;
1401
1402
assert_eq ! ( invoice. invoice_features( ) , & Bolt12InvoiceFeatures :: empty( ) ) ;
1402
1403
assert_eq ! ( invoice. signing_pubkey( ) , recipient_pubkey( ) ) ;
1403
- assert ! (
1404
- merkle:: verify_signature(
1405
- & invoice. signature, SIGNATURE_TAG , & invoice. bytes, recipient_pubkey( )
1406
- ) . is_ok( )
1407
- ) ;
1404
+
1405
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & invoice. bytes ) ;
1406
+ assert ! ( merkle:: verify_signature( & invoice. signature, message, recipient_pubkey( ) ) . is_ok( ) ) ;
1408
1407
1409
1408
let digest = Message :: from_slice ( & invoice. signable_hash ( ) ) . unwrap ( ) ;
1410
1409
let pubkey = recipient_pubkey ( ) . into ( ) ;
@@ -1499,11 +1498,9 @@ mod tests {
1499
1498
assert_eq ! ( invoice. fallbacks( ) , vec![ ] ) ;
1500
1499
assert_eq ! ( invoice. invoice_features( ) , & Bolt12InvoiceFeatures :: empty( ) ) ;
1501
1500
assert_eq ! ( invoice. signing_pubkey( ) , recipient_pubkey( ) ) ;
1502
- assert ! (
1503
- merkle:: verify_signature(
1504
- & invoice. signature, SIGNATURE_TAG , & invoice. bytes, recipient_pubkey( )
1505
- ) . is_ok( )
1506
- ) ;
1501
+
1502
+ let message = TaggedHash :: new ( SIGNATURE_TAG , & invoice. bytes ) ;
1503
+ assert ! ( merkle:: verify_signature( & invoice. signature, message, recipient_pubkey( ) ) . is_ok( ) ) ;
1507
1504
1508
1505
assert_eq ! (
1509
1506
invoice. as_tlv_stream( ) ,
0 commit comments