Skip to content

Commit 8783a74

Browse files
committed
Add test_util for overriding session privs for onion crypt
1 parent 3870235 commit 8783a74

File tree

2 files changed

+35
-3
lines changed

2 files changed

+35
-3
lines changed

src/ln/channelmanager.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3570,6 +3570,7 @@ mod tests {
35703570
chain_monitor: Arc<chaininterface::ChainWatchInterfaceUtil>,
35713571
tx_broadcaster: Arc<test_utils::TestBroadcaster>,
35723572
chan_monitor: Arc<test_utils::TestChannelMonitor>,
3573+
keys_manager: Arc<test_utils::TestKeysInterface>,
35733574
node: Arc<ChannelManager>,
35743575
router: Router,
35753576
node_seed: [u8; 32],
@@ -4303,14 +4304,14 @@ mod tests {
43034304
let tx_broadcaster = Arc::new(test_utils::TestBroadcaster{txn_broadcasted: Mutex::new(Vec::new())});
43044305
let mut seed = [0; 32];
43054306
rng.fill_bytes(&mut seed);
4306-
let keys_manager = Arc::new(keysinterface::KeysManager::new(&seed, Network::Testnet, Arc::clone(&logger)));
4307+
let keys_manager = Arc::new(test_utils::TestKeysInterface::new(&seed, Network::Testnet, Arc::clone(&logger)));
43074308
let chan_monitor = Arc::new(test_utils::TestChannelMonitor::new(chain_monitor.clone(), tx_broadcaster.clone(), logger.clone()));
43084309
let mut config = UserConfig::new();
43094310
config.channel_options.announced_channel = true;
43104311
config.channel_limits.force_announced_channel_preference = false;
43114312
let node = ChannelManager::new(Network::Testnet, feeest.clone(), chan_monitor.clone(), chain_monitor.clone(), tx_broadcaster.clone(), Arc::clone(&logger), keys_manager.clone(), config).unwrap();
43124313
let router = Router::new(PublicKey::from_secret_key(&secp_ctx, &keys_manager.get_node_secret()), chain_monitor.clone(), Arc::clone(&logger));
4313-
nodes.push(Node { chain_monitor, tx_broadcaster, chan_monitor, node, router, node_seed: seed,
4314+
nodes.push(Node { chain_monitor, tx_broadcaster, chan_monitor, node, router, keys_manager, node_seed: seed,
43144315
network_payment_count: payment_count.clone(),
43154316
network_chan_count: chan_count.clone(),
43164317
});

src/util/test_utils.rs

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use chain::chaininterface;
22
use chain::chaininterface::ConfirmationTarget;
33
use chain::transaction::OutPoint;
4+
use chain::keysinterface;
45
use ln::channelmonitor;
56
use ln::msgs;
67
use ln::msgs::{HandleError};
@@ -10,9 +11,11 @@ use util::logger::{Logger, Level, Record};
1011
use util::ser::{ReadableArgs, Writer};
1112

1213
use bitcoin::blockdata::transaction::Transaction;
14+
use bitcoin::blockdata::script::Script;
1315
use bitcoin::util::hash::Sha256dHash;
16+
use bitcoin::network::constants::Network;
1417

15-
use secp256k1::PublicKey;
18+
use secp256k1::{SecretKey, PublicKey};
1619

1720
use std::sync::{Arc,Mutex};
1821
use std::{mem};
@@ -208,3 +211,31 @@ impl Logger for TestLogger {
208211
}
209212
}
210213
}
214+
215+
pub struct TestKeysInterface {
216+
backing: keysinterface::KeysManager,
217+
pub override_session_priv: Mutex<Option<SecretKey>>,
218+
}
219+
220+
impl keysinterface::KeysInterface for TestKeysInterface {
221+
fn get_node_secret(&self) -> SecretKey { self.backing.get_node_secret() }
222+
fn get_destination_script(&self) -> Script { self.backing.get_destination_script() }
223+
fn get_shutdown_pubkey(&self) -> PublicKey { self.backing.get_shutdown_pubkey() }
224+
fn get_channel_keys(&self, inbound: bool) -> keysinterface::ChannelKeys { self.backing.get_channel_keys(inbound) }
225+
226+
fn get_session_key(&self) -> SecretKey {
227+
match *self.override_session_priv.lock().unwrap() {
228+
Some(key) => key.clone(),
229+
None => self.backing.get_session_key()
230+
}
231+
}
232+
}
233+
234+
impl TestKeysInterface {
235+
pub fn new(seed: &[u8; 32], network: Network, logger: Arc<Logger>) -> Self {
236+
Self {
237+
backing: keysinterface::KeysManager::new(seed, network, logger),
238+
override_session_priv: Mutex::new(None),
239+
}
240+
}
241+
}

0 commit comments

Comments
 (0)