Skip to content

Commit c7f416d

Browse files
committed
rustfmt: fuzz/src/onion*.rs
1 parent 6eb92c4 commit c7f416d

File tree

3 files changed

+92
-46
lines changed

3 files changed

+92
-46
lines changed

fuzz/src/onion_hop_data.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,25 @@ use lightning::util::test_utils;
1515

1616
#[inline]
1717
pub fn onion_hop_data_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
18-
use lightning::util::ser::ReadableArgs;
1918
use bitcoin::secp256k1::PublicKey;
19+
use lightning::util::ser::ReadableArgs;
2020
let mut r = ::std::io::Cursor::new(data);
2121
let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42));
22-
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(Option<PublicKey>, &&test_utils::TestNodeSigner)>>::read(&mut r, (None, &&node_signer));
22+
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(
23+
Option<PublicKey>,
24+
&&test_utils::TestNodeSigner,
25+
)>>::read(&mut r, (None, &&node_signer));
2326
}
2427

2528
#[no_mangle]
2629
pub extern "C" fn onion_hop_data_run(data: *const u8, datalen: usize) {
27-
use lightning::util::ser::ReadableArgs;
2830
use bitcoin::secp256k1::PublicKey;
31+
use lightning::util::ser::ReadableArgs;
2932
let data = unsafe { std::slice::from_raw_parts(data, datalen) };
3033
let mut r = ::std::io::Cursor::new(data);
3134
let node_signer = test_utils::TestNodeSigner::new(test_utils::privkey(42));
32-
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(Option<PublicKey>, &&test_utils::TestNodeSigner)>>::read(&mut r, (None, &&node_signer));
35+
let _ = <lightning::ln::msgs::InboundOnionPayload as ReadableArgs<(
36+
Option<PublicKey>,
37+
&&test_utils::TestNodeSigner,
38+
)>>::read(&mut r, (None, &&node_signer));
3339
}

fuzz/src/onion_message.rs

Lines changed: 82 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
// Imports that need to be added manually
22
use bech32::u5;
33
use bitcoin::blockdata::script::ScriptBuf;
4-
use bitcoin::secp256k1::{PublicKey, Scalar, Secp256k1, SecretKey, self};
54
use bitcoin::secp256k1::ecdh::SharedSecret;
65
use bitcoin::secp256k1::ecdsa::RecoverableSignature;
76
use bitcoin::secp256k1::schnorr;
7+
use bitcoin::secp256k1::{self, PublicKey, Scalar, Secp256k1, SecretKey};
88

9-
use lightning::blinded_path::{BlindedPath, EmptyNodeIdLookUp};
109
use lightning::blinded_path::message::ForwardNode;
10+
use lightning::blinded_path::{BlindedPath, EmptyNodeIdLookUp};
1111
use lightning::ln::features::InitFeatures;
1212
use lightning::ln::msgs::{self, DecodeError, OnionMessageHandler};
1313
use lightning::ln::script::ShutdownScript;
1414
use lightning::offers::invoice::UnsignedBolt12Invoice;
1515
use lightning::offers::invoice_request::UnsignedInvoiceRequest;
16-
use lightning::sign::{Recipient, KeyMaterial, EntropySource, NodeSigner, SignerProvider};
17-
use lightning::util::test_channel_signer::TestChannelSigner;
18-
use lightning::util::logger::Logger;
19-
use lightning::util::ser::{Readable, Writeable, Writer};
20-
use lightning::onion_message::messenger::{CustomOnionMessageHandler, Destination, MessageRouter, OnionMessagePath, OnionMessenger, PendingOnionMessage, Responder, ResponseInstruction};
16+
use lightning::onion_message::messenger::{
17+
CustomOnionMessageHandler, Destination, MessageRouter, OnionMessagePath, OnionMessenger,
18+
PendingOnionMessage, Responder, ResponseInstruction,
19+
};
2120
use lightning::onion_message::offers::{OffersMessage, OffersMessageHandler};
2221
use lightning::onion_message::packet::OnionMessageContents;
22+
use lightning::sign::{EntropySource, KeyMaterial, NodeSigner, Recipient, SignerProvider};
23+
use lightning::util::logger::Logger;
24+
use lightning::util::ser::{Readable, Writeable, Writer};
25+
use lightning::util::test_channel_signer::TestChannelSigner;
2326

2427
use crate::utils::test_logger;
2528

@@ -33,17 +36,19 @@ pub fn do_test<L: Logger>(data: &[u8], logger: &L) {
3336
let mut secret_bytes = [1; 32];
3437
secret_bytes[31] = 2;
3538
let secret = SecretKey::from_slice(&secret_bytes).unwrap();
36-
let keys_manager = KeyProvider {
37-
node_secret: secret,
38-
counter: AtomicU64::new(0),
39-
};
39+
let keys_manager = KeyProvider { node_secret: secret, counter: AtomicU64::new(0) };
4040
let node_id_lookup = EmptyNodeIdLookUp {};
4141
let message_router = TestMessageRouter {};
4242
let offers_msg_handler = TestOffersMessageHandler {};
4343
let custom_msg_handler = TestCustomMessageHandler {};
4444
let onion_messenger = OnionMessenger::new(
45-
&keys_manager, &keys_manager, logger, &node_id_lookup, &message_router,
46-
&offers_msg_handler, &custom_msg_handler
45+
&keys_manager,
46+
&keys_manager,
47+
logger,
48+
&node_id_lookup,
49+
&message_router,
50+
&offers_msg_handler,
51+
&custom_msg_handler,
4752
);
4853

4954
let peer_node_id = {
@@ -79,13 +84,9 @@ struct TestMessageRouter {}
7984

8085
impl MessageRouter for TestMessageRouter {
8186
fn find_path(
82-
&self, _sender: PublicKey, _peers: Vec<PublicKey>, destination: Destination
87+
&self, _sender: PublicKey, _peers: Vec<PublicKey>, destination: Destination,
8388
) -> Result<OnionMessagePath, ()> {
84-
Ok(OnionMessagePath {
85-
intermediate_nodes: vec![],
86-
destination,
87-
first_node_addresses: None,
88-
})
89+
Ok(OnionMessagePath { intermediate_nodes: vec![], destination, first_node_addresses: None })
8990
}
9091

9192
fn create_blinded_paths<T: secp256k1::Signing + secp256k1::Verification>(
@@ -98,7 +99,9 @@ impl MessageRouter for TestMessageRouter {
9899
struct TestOffersMessageHandler {}
99100

100101
impl OffersMessageHandler for TestOffersMessageHandler {
101-
fn handle_message(&self, _message: OffersMessage, _responder: Option<Responder>) -> ResponseInstruction<OffersMessage> {
102+
fn handle_message(
103+
&self, _message: OffersMessage, _responder: Option<Responder>,
104+
) -> ResponseInstruction<OffersMessage> {
102105
ResponseInstruction::NoResponse
103106
}
104107
}
@@ -128,16 +131,20 @@ struct TestCustomMessageHandler {}
128131

129132
impl CustomOnionMessageHandler for TestCustomMessageHandler {
130133
type CustomMessage = TestCustomMessage;
131-
fn handle_custom_message(&self, message: Self::CustomMessage, responder: Option<Responder>) -> ResponseInstruction<Self::CustomMessage> {
134+
fn handle_custom_message(
135+
&self, message: Self::CustomMessage, responder: Option<Responder>,
136+
) -> ResponseInstruction<Self::CustomMessage> {
132137
match responder {
133138
Some(responder) => responder.respond(message),
134-
None => ResponseInstruction::NoResponse
139+
None => ResponseInstruction::NoResponse,
135140
}
136141
}
137-
fn read_custom_message<R: io::Read>(&self, _message_type: u64, buffer: &mut R) -> Result<Option<Self::CustomMessage>, msgs::DecodeError> {
142+
fn read_custom_message<R: io::Read>(
143+
&self, _message_type: u64, buffer: &mut R,
144+
) -> Result<Option<Self::CustomMessage>, msgs::DecodeError> {
138145
let mut buf = Vec::new();
139146
buffer.read_to_end(&mut buf)?;
140-
return Ok(Some(TestCustomMessage {}))
147+
return Ok(Some(TestCustomMessage {}));
141148
}
142149
fn release_pending_custom_messages(&self) -> Vec<PendingOnionMessage<Self::CustomMessage>> {
143150
vec![]
@@ -159,39 +166,48 @@ struct KeyProvider {
159166
impl EntropySource for KeyProvider {
160167
fn get_secure_random_bytes(&self) -> [u8; 32] {
161168
let ctr = self.counter.fetch_add(1, Ordering::Relaxed);
162-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163-
(ctr >> 8*7) as u8, (ctr >> 8*6) as u8, (ctr >> 8*5) as u8, (ctr >> 8*4) as u8, (ctr >> 8*3) as u8, (ctr >> 8*2) as u8, (ctr >> 8*1) as u8, 14, (ctr >> 8*0) as u8]
169+
#[rustfmt::skip]
170+
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,
171+
(ctr >> 8*7) as u8, (ctr >> 8*6) as u8, (ctr >> 8*5) as u8, (ctr >> 8*4) as u8,
172+
(ctr >> 8*3) as u8, (ctr >> 8*2) as u8, (ctr >> 8*1) as u8, 14, (ctr >> 8*0) as u8];
173+
random_bytes
164174
}
165175
}
166176

167177
impl NodeSigner for KeyProvider {
168178
fn get_node_id(&self, recipient: Recipient) -> Result<PublicKey, ()> {
169179
let node_secret = match recipient {
170180
Recipient::Node => Ok(&self.node_secret),
171-
Recipient::PhantomNode => Err(())
181+
Recipient::PhantomNode => Err(()),
172182
}?;
173183
Ok(PublicKey::from_secret_key(&Secp256k1::signing_only(), node_secret))
174184
}
175185

176-
fn ecdh(&self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar>) -> Result<SharedSecret, ()> {
186+
fn ecdh(
187+
&self, recipient: Recipient, other_key: &PublicKey, tweak: Option<&Scalar>,
188+
) -> Result<SharedSecret, ()> {
177189
let mut node_secret = match recipient {
178190
Recipient::Node => Ok(self.node_secret.clone()),
179-
Recipient::PhantomNode => Err(())
191+
Recipient::PhantomNode => Err(()),
180192
}?;
181193
if let Some(tweak) = tweak {
182194
node_secret = node_secret.mul_tweak(tweak).map_err(|_| ())?;
183195
}
184196
Ok(SharedSecret::new(other_key, &node_secret))
185197
}
186198

187-
fn get_inbound_payment_key_material(&self) -> KeyMaterial { unreachable!() }
199+
fn get_inbound_payment_key_material(&self) -> KeyMaterial {
200+
unreachable!()
201+
}
188202

189-
fn sign_invoice(&self, _hrp_bytes: &[u8], _invoice_data: &[u5], _recipient: Recipient) -> Result<RecoverableSignature, ()> {
203+
fn sign_invoice(
204+
&self, _hrp_bytes: &[u8], _invoice_data: &[u5], _recipient: Recipient,
205+
) -> Result<RecoverableSignature, ()> {
190206
unreachable!()
191207
}
192208

193209
fn sign_bolt12_invoice_request(
194-
&self, _invoice_request: &UnsignedInvoiceRequest
210+
&self, _invoice_request: &UnsignedInvoiceRequest,
195211
) -> Result<schnorr::Signature, ()> {
196212
unreachable!()
197213
}
@@ -202,7 +218,9 @@ impl NodeSigner for KeyProvider {
202218
unreachable!()
203219
}
204220

205-
fn sign_gossip_message(&self, _msg: lightning::ln::msgs::UnsignedGossipMessage) -> Result<bitcoin::secp256k1::ecdsa::Signature, ()> {
221+
fn sign_gossip_message(
222+
&self, _msg: lightning::ln::msgs::UnsignedGossipMessage,
223+
) -> Result<bitcoin::secp256k1::ecdsa::Signature, ()> {
206224
unreachable!()
207225
}
208226
}
@@ -212,17 +230,29 @@ impl SignerProvider for KeyProvider {
212230
#[cfg(taproot)]
213231
type TaprootSigner = TestChannelSigner;
214232

215-
fn generate_channel_keys_id(&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128) -> [u8; 32] { unreachable!() }
233+
fn generate_channel_keys_id(
234+
&self, _inbound: bool, _channel_value_satoshis: u64, _user_channel_id: u128,
235+
) -> [u8; 32] {
236+
unreachable!()
237+
}
216238

217-
fn derive_channel_signer(&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32]) -> Self::EcdsaSigner {
239+
fn derive_channel_signer(
240+
&self, _channel_value_satoshis: u64, _channel_keys_id: [u8; 32],
241+
) -> Self::EcdsaSigner {
218242
unreachable!()
219243
}
220244

221-
fn read_chan_signer(&self, _data: &[u8]) -> Result<TestChannelSigner, DecodeError> { unreachable!() }
245+
fn read_chan_signer(&self, _data: &[u8]) -> Result<TestChannelSigner, DecodeError> {
246+
unreachable!()
247+
}
222248

223-
fn get_destination_script(&self, _channel_keys_id: [u8; 32]) -> Result<ScriptBuf, ()> { unreachable!() }
249+
fn get_destination_script(&self, _channel_keys_id: [u8; 32]) -> Result<ScriptBuf, ()> {
250+
unreachable!()
251+
}
224252

225-
fn get_shutdown_scriptpubkey(&self) -> Result<ShutdownScript, ()> { unreachable!() }
253+
fn get_shutdown_scriptpubkey(&self) -> Result<ShutdownScript, ()> {
254+
unreachable!()
255+
}
226256
}
227257

228258
#[cfg(test)]
@@ -238,8 +268,20 @@ mod tests {
238268
}
239269
impl Logger for TrackingLogger {
240270
fn log(&self, record: Record) {
241-
*self.lines.lock().unwrap().entry((record.module_path.to_string(), format!("{}", record.args))).or_insert(0) += 1;
242-
println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args);
271+
*self
272+
.lines
273+
.lock()
274+
.unwrap()
275+
.entry((record.module_path.to_string(), format!("{}", record.args)))
276+
.or_insert(0) += 1;
277+
println!(
278+
"{:<5} [{} : {}, {}] {}",
279+
record.level.to_string(),
280+
record.module_path,
281+
record.file,
282+
record.line,
283+
record.args
284+
);
243285
}
244286
}
245287

rustfmt_excluded_files

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
./bench/benches/bench.rs
2-
./fuzz/src/onion_hop_data.rs
3-
./fuzz/src/onion_message.rs
42
./fuzz/src/peer_crypt.rs
53
./fuzz/src/process_network_graph.rs
64
./fuzz/src/refund_deser.rs

0 commit comments

Comments
 (0)