Skip to content

Commit e1f11a0

Browse files
committed
Fix flaky trampoline_single_hop_receive test
.. we override the RNG to fix the flaky test case.
1 parent 18eb30b commit e1f11a0

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// licenses.
99

1010
use bitcoin::hashes::hex::FromHex;
11+
use bitcoin::hashes::sha256::Hash as Sha256;
12+
use bitcoin::hashes::Hash;
1113
use bitcoin::hex::DisplayHex;
1214
use bitcoin::secp256k1::{PublicKey, Scalar, Secp256k1, SecretKey, schnorr};
1315
use bitcoin::secp256k1::ecdh::SharedSecret;
@@ -1986,6 +1988,10 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
19861988
let node_chanmgrs = create_node_chanmgrs(TOTAL_NODE_COUNT, &node_cfgs, &vec![None; TOTAL_NODE_COUNT]);
19871989
let mut nodes = create_network(TOTAL_NODE_COUNT, &node_cfgs, &node_chanmgrs);
19881990

1991+
// We need the session priv to construct an invalid onion packet later.
1992+
let override_random_bytes = [3; 32];
1993+
*nodes[0].keys_manager.override_random_bytes.lock().unwrap() = Some(override_random_bytes);
1994+
19891995
let (_, _, chan_id_alice_bob, _) = create_announced_chan_between_nodes_with_value(&nodes, 0, 1, 1_000_000, 0);
19901996
let (_, _, chan_id_bob_carol, _) = create_announced_chan_between_nodes_with_value(&nodes, 1, 2, 1_000_000, 0);
19911997

@@ -2003,7 +2009,7 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
20032009
let amt_msat = 1000;
20042010
let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash(&nodes[2], Some(amt_msat), None);
20052011

2006-
let carol_alice_trampoline_session_priv = secret_from_hex("a0f4b8d7b6c2d0ffdfaf718f76e9decaef4d9fb38a8c4addb95c4007cc3eee03");
2012+
let carol_alice_trampoline_session_priv = SecretKey::from_slice(&override_random_bytes).unwrap();
20072013
let carol_blinding_point = PublicKey::from_secret_key(&secp_ctx, &carol_alice_trampoline_session_priv);
20082014
let carol_blinded_hops = if success {
20092015
let payee_tlvs = UnauthenticatedReceiveTlvs {
@@ -2101,8 +2107,7 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
21012107
} else {
21022108
let replacement_onion = {
21032109
// create a substitute onion where the last Trampoline hop is a forward
2104-
let trampoline_secret_key = secret_from_hex("0134928f7b7ca6769080d70f16be84c812c741f545b49a34db47ce338a205799");
2105-
let prng_seed = secret_from_hex("fe02b4b9054302a3ddf4e1e9f7c411d644aebbd295218ab009dca94435f775a9");
2110+
let trampoline_secret_key = SecretKey::from_slice(&override_random_bytes).unwrap();
21062111
let recipient_onion_fields = RecipientOnionFields::spontaneous_empty();
21072112

21082113
let mut blinded_tail = route.paths[0].blinded_tail.clone().unwrap();
@@ -2122,19 +2127,22 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
21222127
let trampoline_packet = onion_utils::construct_trampoline_onion_packet(
21232128
trampoline_payloads,
21242129
trampoline_onion_keys,
2125-
prng_seed.secret_bytes(),
2130+
override_random_bytes,
21262131
&payment_hash,
21272132
None,
21282133
).unwrap();
21292134

2130-
let outer_session_priv = secret_from_hex("e52c20461ed7acd46c4e7b591a37610519179482887bd73bf3b94617f8f03677");
2135+
let outer_session_priv = {
2136+
let session_priv_hash = Sha256::hash(&override_random_bytes).to_byte_array();
2137+
SecretKey::from_slice(&session_priv_hash[..]).expect("You broke SHA-256!")
2138+
};
21312139

21322140
let (outer_payloads, _, _) = onion_utils::build_onion_payloads(&route.paths[0], outer_total_msat, &recipient_onion_fields, outer_starting_htlc_offset, &None, None, Some(trampoline_packet)).unwrap();
21332141
let outer_onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.clone().paths[0], &outer_session_priv);
21342142
let outer_packet = onion_utils::construct_onion_packet(
21352143
outer_payloads,
21362144
outer_onion_keys,
2137-
prng_seed.secret_bytes(),
2145+
override_random_bytes,
21382146
&payment_hash,
21392147
).unwrap();
21402148

0 commit comments

Comments
 (0)