Skip to content

Commit 4450e42

Browse files
Move blinded path util into blinded_path::utils
This way it can be more easily reused for blinded payment paths.
1 parent 6f58072 commit 4450e42

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

lightning/src/blinded_path/mod.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ use crate::sign::{EntropySource, NodeSigner, Recipient};
1919
use crate::onion_message::ControlTlvs;
2020
use crate::ln::msgs::DecodeError;
2121
use crate::ln::onion_utils;
22-
use crate::util::chacha20poly1305rfc::{ChaChaPolyReadAdapter, ChaChaPolyWriteAdapter};
23-
use crate::util::ser::{FixedLengthReader, LengthReadableArgs, Readable, VecWriter, Writeable, Writer};
22+
use crate::util::chacha20poly1305rfc::ChaChaPolyReadAdapter;
23+
use crate::util::ser::{FixedLengthReader, LengthReadableArgs, Readable, Writeable, Writer};
2424

2525
use core::mem;
2626
use core::ops::Deref;
@@ -132,7 +132,7 @@ fn blinded_message_hops<T: secp256k1::Signing + secp256k1::Verification>(
132132
};
133133
blinded_hops.push(BlindedHop {
134134
blinded_node_id: prev_blinded_node_id,
135-
encrypted_payload: encrypt_payload(payload, prev_ss),
135+
encrypted_payload: utils::encrypt_payload(payload, prev_ss),
136136
});
137137
} else { debug_assert!(false); }
138138
}
@@ -143,21 +143,13 @@ fn blinded_message_hops<T: secp256k1::Signing + secp256k1::Verification>(
143143
let final_payload = ReceiveTlvs { path_id: None };
144144
blinded_hops.push(BlindedHop {
145145
blinded_node_id: final_blinded_node_id,
146-
encrypted_payload: encrypt_payload(final_payload, final_ss),
146+
encrypted_payload: utils::encrypt_payload(final_payload, final_ss),
147147
});
148148
} else { debug_assert!(false) }
149149

150150
Ok(blinded_hops)
151151
}
152152

153-
/// Encrypt TLV payload to be used as a [`BlindedHop::encrypted_payload`].
154-
fn encrypt_payload<P: Writeable>(payload: P, encrypted_tlvs_ss: [u8; 32]) -> Vec<u8> {
155-
let mut writer = VecWriter(Vec::new());
156-
let write_adapter = ChaChaPolyWriteAdapter::new(encrypted_tlvs_ss, &payload);
157-
write_adapter.write(&mut writer).expect("In-memory writes cannot fail");
158-
writer.0
159-
}
160-
161153
impl Writeable for BlindedPath {
162154
fn write<W: Writer>(&self, w: &mut W) -> Result<(), io::Error> {
163155
self.introduction_node_id.write(w)?;

lightning/src/blinded_path/utils.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ use bitcoin::secp256k1::ecdh::SharedSecret;
1818
use super::BlindedPath;
1919
use crate::ln::onion_utils;
2020
use crate::onion_message::Destination;
21+
use crate::util::chacha20poly1305rfc::ChaChaPolyWriteAdapter;
22+
use crate::util::ser::{VecWriter, Writeable};
2123

2224
use crate::prelude::*;
2325

@@ -96,3 +98,12 @@ pub(crate) fn construct_keys_callback<T: secp256k1::Signing + secp256k1::Verific
9698
}
9799
Ok(())
98100
}
101+
102+
/// Encrypt TLV payload to be used as a [`crate::blinded_path::BlindedHop::encrypted_payload`].
103+
pub(super) fn encrypt_payload<P: Writeable>(payload: P, encrypted_tlvs_ss: [u8; 32]) -> Vec<u8> {
104+
let mut writer = VecWriter(Vec::new());
105+
let write_adapter = ChaChaPolyWriteAdapter::new(encrypted_tlvs_ss, &payload);
106+
write_adapter.write(&mut writer).expect("In-memory writes cannot fail");
107+
writer.0
108+
}
109+

0 commit comments

Comments
 (0)