Skip to content

Commit c7f1080

Browse files
committed
Rename get_inbound_payment_key to get_expanded_key
The use of ExpandedKey has grown beyond just encrypting inbound payment data-it now also supports BOLT 12 Offers, spontaneous payments, and authentication of various payment metadata. To reflect this broader purpose, this commit renames the function and updates its documentation accordingly.
1 parent 98297a6 commit c7f1080

14 files changed

+44
-39
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ impl NodeSigner for KeyProvider {
326326
Ok(SharedSecret::new(other_key, &node_secret))
327327
}
328328

329-
fn get_inbound_payment_key(&self) -> ExpandedKey {
329+
fn get_expanded_key(&self) -> ExpandedKey {
330330
#[rustfmt::skip]
331331
let random_bytes = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, self.node_secret[31]];
332332
ExpandedKey::new(random_bytes)

fuzz/src/full_stack.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ impl NodeSigner for KeyProvider {
405405
Ok(SharedSecret::new(other_key, &node_secret))
406406
}
407407

408-
fn get_inbound_payment_key(&self) -> ExpandedKey {
408+
fn get_expanded_key(&self) -> ExpandedKey {
409409
self.inbound_payment_key
410410
}
411411

fuzz/src/onion_message.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ impl NodeSigner for KeyProvider {
228228
Ok(SharedSecret::new(other_key, &node_secret))
229229
}
230230

231-
fn get_inbound_payment_key(&self) -> ExpandedKey {
231+
fn get_expanded_key(&self) -> ExpandedKey {
232232
unreachable!()
233233
}
234234

lightning/src/ln/async_payments_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ fn amount_doesnt_match_invreq() {
668668
valid_invreq = Some(invoice_request.clone());
669669
*invoice_request = offer
670670
.request_invoice(
671-
&nodes[0].keys_manager.get_inbound_payment_key(),
671+
&nodes[0].keys_manager.get_expanded_key(),
672672
Nonce::from_entropy_source(nodes[0].keys_manager),
673673
&secp_ctx,
674674
payment_id,

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ pub fn blinded_payment_path(
8383
};
8484

8585
let nonce = Nonce([42u8; 16]);
86-
let expanded_key = keys_manager.get_inbound_payment_key();
86+
let expanded_key = keys_manager.get_expanded_key();
8787
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
8888

8989
let mut secp_ctx = Secp256k1::new();
@@ -168,7 +168,7 @@ fn do_one_hop_blinded_path(success: bool) {
168168
payment_context: PaymentContext::Bolt12Refund(Bolt12RefundContext {}),
169169
};
170170
let nonce = Nonce([42u8; 16]);
171-
let expanded_key = chanmon_cfgs[1].keys_manager.get_inbound_payment_key();
171+
let expanded_key = chanmon_cfgs[1].keys_manager.get_expanded_key();
172172
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
173173

174174
let mut secp_ctx = Secp256k1::new();
@@ -222,7 +222,7 @@ fn mpp_to_one_hop_blinded_path() {
222222
payment_context: PaymentContext::Bolt12Refund(Bolt12RefundContext {}),
223223
};
224224
let nonce = Nonce([42u8; 16]);
225-
let expanded_key = chanmon_cfgs[3].keys_manager.get_inbound_payment_key();
225+
let expanded_key = chanmon_cfgs[3].keys_manager.get_expanded_key();
226226
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
227227
let blinded_path = BlindedPaymentPath::new(
228228
&[], nodes[3].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
@@ -1342,7 +1342,7 @@ fn custom_tlvs_to_blinded_path() {
13421342
payment_context: PaymentContext::Bolt12Refund(Bolt12RefundContext {}),
13431343
};
13441344
let nonce = Nonce([42u8; 16]);
1345-
let expanded_key = chanmon_cfgs[1].keys_manager.get_inbound_payment_key();
1345+
let expanded_key = chanmon_cfgs[1].keys_manager.get_expanded_key();
13461346
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
13471347
let mut secp_ctx = Secp256k1::new();
13481348
let blinded_path = BlindedPaymentPath::new(
@@ -1396,7 +1396,7 @@ fn fails_receive_tlvs_authentication() {
13961396
payment_context: PaymentContext::Bolt12Refund(Bolt12RefundContext {}),
13971397
};
13981398
let nonce = Nonce([42u8; 16]);
1399-
let expanded_key = chanmon_cfgs[1].keys_manager.get_inbound_payment_key();
1399+
let expanded_key = chanmon_cfgs[1].keys_manager.get_expanded_key();
14001400
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
14011401

14021402
let mut secp_ctx = Secp256k1::new();
@@ -1622,7 +1622,7 @@ fn route_blinding_spec_test_vector() {
16221622
}
16231623
Ok(SharedSecret::new(other_key, &node_secret))
16241624
}
1625-
fn get_inbound_payment_key(&self) -> ExpandedKey { unreachable!() }
1625+
fn get_expanded_key(&self) -> ExpandedKey { unreachable!() }
16261626
fn get_node_id(&self, _recipient: Recipient) -> Result<PublicKey, ()> { unreachable!() }
16271627
fn sign_invoice(
16281628
&self, _invoice: &RawBolt11Invoice, _recipient: Recipient,
@@ -1931,7 +1931,7 @@ fn test_trampoline_inbound_payment_decoding() {
19311931
}
19321932
Ok(SharedSecret::new(other_key, &node_secret))
19331933
}
1934-
fn get_inbound_payment_key(&self) -> ExpandedKey { unreachable!() }
1934+
fn get_expanded_key(&self) -> ExpandedKey { unreachable!() }
19351935
fn get_node_id(&self, _recipient: Recipient) -> Result<PublicKey, ()> { unreachable!() }
19361936
fn sign_invoice(
19371937
&self, _invoice: &RawBolt11Invoice, _recipient: Recipient,
@@ -2016,7 +2016,7 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
20162016
};
20172017

20182018
let nonce = Nonce([42u8; 16]);
2019-
let expanded_key = nodes[2].keys_manager.get_inbound_payment_key();
2019+
let expanded_key = nodes[2].keys_manager.get_expanded_key();
20202020
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
20212021
let carol_unblinded_tlvs = payee_tlvs.encode();
20222022

lightning/src/ln/channelmanager.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ pub enum PendingHTLCRouting {
256256
requires_blinded_error: bool,
257257
/// Set if we are receiving a keysend to a blinded path, meaning we created the
258258
/// [`PaymentSecret`] and should verify it using our
259-
/// [`NodeSigner::get_inbound_payment_key`].
259+
/// [`NodeSigner::get_expanded_key`].
260260
has_recipient_created_payment_secret: bool,
261261
/// The [`InvoiceRequest`] associated with the [`Offer`] corresponding to this payment.
262262
invoice_request: Option<InvoiceRequest>,
@@ -3576,7 +3576,7 @@ where
35763576
) -> Self {
35773577
let mut secp_ctx = Secp256k1::new();
35783578
secp_ctx.seeded_randomize(&entropy_source.get_secure_random_bytes());
3579-
let expanded_inbound_key = node_signer.get_inbound_payment_key();
3579+
let expanded_inbound_key = node_signer.get_expanded_key();
35803580
ChannelManager {
35813581
default_configuration: config.clone(),
35823582
chain_hash: ChainHash::using_genesis_block(params.network),
@@ -14569,7 +14569,7 @@ where
1456914569
}, None));
1457014570
}
1457114571

14572-
let expanded_inbound_key = args.node_signer.get_inbound_payment_key();
14572+
let expanded_inbound_key = args.node_signer.get_expanded_key();
1457314573

1457414574
let mut claimable_payments = hash_map_with_capacity(claimable_htlcs_list.len());
1457514575
if let Some(purposes) = claimable_htlc_purposes {

lightning/src/ln/inbound_payment.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ const AMT_MSAT_LEN: usize = 8;
3737
// retrieve said payment type bits.
3838
const METHOD_TYPE_OFFSET: usize = 5;
3939

40-
/// A set of keys that were HKDF-expanded. Returned by [`NodeSigner::get_inbound_payment_key`].
40+
/// A set of keys that were HKDF-expanded. Returned by [`NodeSigner::get_expanded_key`].
4141
///
42-
/// [`NodeSigner::get_inbound_payment_key`]: crate::sign::NodeSigner::get_inbound_payment_key
42+
/// [`NodeSigner::get_expanded_key`]: crate::sign::NodeSigner::get_expanded_key
4343
#[derive(Hash, Copy, Clone, PartialEq, Eq, Debug)]
4444
pub struct ExpandedKey {
4545
/// The key used to encrypt the bytes containing the payment metadata (i.e. the amount and
@@ -133,7 +133,7 @@ fn min_final_cltv_expiry_delta_from_metadata(bytes: [u8; METADATA_LEN]) -> u16 {
133133
/// `ChannelManager` is required. Useful for generating invoices for [phantom node payments] without
134134
/// a `ChannelManager`.
135135
///
136-
/// `keys` is generated by calling [`NodeSigner::get_inbound_payment_key`]. It is recommended to
136+
/// `keys` is generated by calling [`NodeSigner::get_expanded_key`]. It is recommended to
137137
/// cache this value and not regenerate it for each new inbound payment.
138138
///
139139
/// `current_time` is a Unix timestamp representing the current time.
@@ -142,7 +142,7 @@ fn min_final_cltv_expiry_delta_from_metadata(bytes: [u8; METADATA_LEN]) -> u16 {
142142
/// on versions of LDK prior to 0.0.114.
143143
///
144144
/// [phantom node payments]: crate::sign::PhantomKeysManager
145-
/// [`NodeSigner::get_inbound_payment_key`]: crate::sign::NodeSigner::get_inbound_payment_key
145+
/// [`NodeSigner::get_expanded_key`]: crate::sign::NodeSigner::get_expanded_key
146146
pub fn create<ES: Deref>(
147147
keys: &ExpandedKey, min_value_msat: Option<u64>, invoice_expiry_delta_secs: u32,
148148
entropy_source: &ES, current_time: u64, min_final_cltv_expiry_delta: Option<u16>,
@@ -322,7 +322,7 @@ fn construct_payment_secret(
322322
/// For payments including a custom `min_final_cltv_expiry_delta`, the metadata is constructed as:
323323
/// payment method (3 bits) || payment amount (8 bytes - 3 bits) || min_final_cltv_expiry_delta (2 bytes) || expiry (6 bytes)
324324
///
325-
/// In both cases the result is then encrypted using a key derived from [`NodeSigner::get_inbound_payment_key`].
325+
/// In both cases the result is then encrypted using a key derived from [`NodeSigner::get_expanded_key`].
326326
///
327327
/// Then on payment receipt, we verify in this method that the payment preimage and payment secret
328328
/// match what was constructed.
@@ -343,7 +343,7 @@ fn construct_payment_secret(
343343
///
344344
/// See [`ExpandedKey`] docs for more info on the individual keys used.
345345
///
346-
/// [`NodeSigner::get_inbound_payment_key`]: crate::sign::NodeSigner::get_inbound_payment_key
346+
/// [`NodeSigner::get_expanded_key`]: crate::sign::NodeSigner::get_expanded_key
347347
/// [`create_inbound_payment`]: crate::ln::channelmanager::ChannelManager::create_inbound_payment
348348
/// [`create_inbound_payment_for_hash`]: crate::ln::channelmanager::ChannelManager::create_inbound_payment_for_hash
349349
pub(super) fn verify<L: Deref>(

lightning/src/ln/invoice_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ where
195195
},
196196
};
197197

198-
let keys = node_signer.get_inbound_payment_key();
198+
let keys = node_signer.get_expanded_key();
199199
let (payment_hash, payment_secret) = if let Some(payment_hash) = payment_hash {
200200
let payment_secret = create_from_hash(
201201
&keys,

lightning/src/ln/max_payment_path_len_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ fn one_hop_blinded_path_with_custom_tlv() {
173173
payment_context: PaymentContext::Bolt12Refund(Bolt12RefundContext {}),
174174
};
175175
let nonce = Nonce([42u8; 16]);
176-
let expanded_key = chanmon_cfgs[2].keys_manager.get_inbound_payment_key();
176+
let expanded_key = chanmon_cfgs[2].keys_manager.get_expanded_key();
177177
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
178178
let mut secp_ctx = Secp256k1::new();
179179
let blinded_path = BlindedPaymentPath::new(

lightning/src/ln/msgs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3443,7 +3443,7 @@ where
34433443
},
34443444
ChaChaPolyReadAdapter { readable: BlindedPaymentTlvs::Receive(receive_tlvs) } => {
34453445
let ReceiveTlvs { tlvs, authentication: (hmac, nonce) } = receive_tlvs;
3446-
let expanded_key = node_signer.get_inbound_payment_key();
3446+
let expanded_key = node_signer.get_expanded_key();
34473447
if tlvs.verify_for_offer_payment(hmac, nonce, &expanded_key).is_err() {
34483448
return Err(DecodeError::InvalidValue);
34493449
}
@@ -3595,7 +3595,7 @@ where
35953595
readable: BlindedTrampolineTlvs::Receive(receive_tlvs),
35963596
} => {
35973597
let ReceiveTlvs { tlvs, authentication: (hmac, nonce) } = receive_tlvs;
3598-
let expanded_key = node_signer.get_inbound_payment_key();
3598+
let expanded_key = node_signer.get_expanded_key();
35993599
if tlvs.verify_for_offer_payment(hmac, nonce, &expanded_key).is_err() {
36003600
return Err(DecodeError::InvalidValue);
36013601
}

0 commit comments

Comments
 (0)