mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +01:00
Pass FinalOnionHopData to payment verify by reference, not clone
This commit is contained in:
parent
9bdce47f0e
commit
26c0150c12
2 changed files with 4 additions and 4 deletions
|
@ -3200,7 +3200,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
|
|||
hash_map::Entry::Vacant(_) => {
|
||||
match claimable_htlc.onion_payload {
|
||||
OnionPayload::Invoice(ref payment_data) => {
|
||||
let payment_preimage = match inbound_payment::verify(payment_hash, payment_data.clone(), self.highest_seen_timestamp.load(Ordering::Acquire) as u64, &self.inbound_payment_key, &self.logger) {
|
||||
let payment_preimage = match inbound_payment::verify(payment_hash, &payment_data, self.highest_seen_timestamp.load(Ordering::Acquire) as u64, &self.inbound_payment_key, &self.logger) {
|
||||
Ok(payment_preimage) => payment_preimage,
|
||||
Err(()) => {
|
||||
fail_htlc!(claimable_htlc);
|
||||
|
@ -7319,7 +7319,7 @@ mod tests {
|
|||
// payment verification fails as expected.
|
||||
let mut bad_payment_hash = payment_hash.clone();
|
||||
bad_payment_hash.0[0] += 1;
|
||||
match inbound_payment::verify(bad_payment_hash, payment_data.clone(), nodes[0].node.highest_seen_timestamp.load(Ordering::Acquire) as u64, &nodes[0].node.inbound_payment_key, &nodes[0].logger) {
|
||||
match inbound_payment::verify(bad_payment_hash, &payment_data, nodes[0].node.highest_seen_timestamp.load(Ordering::Acquire) as u64, &nodes[0].node.inbound_payment_key, &nodes[0].logger) {
|
||||
Ok(_) => panic!("Unexpected ok"),
|
||||
Err(()) => {
|
||||
nodes[0].logger.assert_log_contains("lightning::ln::inbound_payment".to_string(), "Failing HTLC with user-generated payment_hash".to_string(), 1);
|
||||
|
@ -7327,7 +7327,7 @@ mod tests {
|
|||
}
|
||||
|
||||
// Check that using the original payment hash succeeds.
|
||||
assert!(inbound_payment::verify(payment_hash, payment_data, nodes[0].node.highest_seen_timestamp.load(Ordering::Acquire) as u64, &nodes[0].node.inbound_payment_key, &nodes[0].logger).is_ok());
|
||||
assert!(inbound_payment::verify(payment_hash, &payment_data, nodes[0].node.highest_seen_timestamp.load(Ordering::Acquire) as u64, &nodes[0].node.inbound_payment_key, &nodes[0].logger).is_ok());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ fn construct_payment_secret(iv_bytes: &[u8; IV_LEN], metadata_bytes: &[u8; METAD
|
|||
/// [`KeysInterface::get_inbound_payment_key_material`]: crate::chain::keysinterface::KeysInterface::get_inbound_payment_key_material
|
||||
/// [`create_inbound_payment`]: crate::ln::channelmanager::ChannelManager::create_inbound_payment
|
||||
/// [`create_inbound_payment_for_hash`]: crate::ln::channelmanager::ChannelManager::create_inbound_payment_for_hash
|
||||
pub(super) fn verify<L: Deref>(payment_hash: PaymentHash, payment_data: msgs::FinalOnionHopData, highest_seen_timestamp: u64, keys: &ExpandedKey, logger: &L) -> Result<Option<PaymentPreimage>, ()>
|
||||
pub(super) fn verify<L: Deref>(payment_hash: PaymentHash, payment_data: &msgs::FinalOnionHopData, highest_seen_timestamp: u64, keys: &ExpandedKey, logger: &L) -> Result<Option<PaymentPreimage>, ()>
|
||||
where L::Target: Logger
|
||||
{
|
||||
let (iv_bytes, metadata_bytes) = decrypt_metadata(payment_data.payment_secret, keys);
|
||||
|
|
Loading…
Add table
Reference in a new issue