Skip to content

Commit 58d8ed9

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

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 14 additions & 5 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;
@@ -2004,6 +2006,7 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
20042006
let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash(&nodes[2], Some(amt_msat), None);
20052007

20062008
let carol_alice_trampoline_session_priv = secret_from_hex("a0f4b8d7b6c2d0ffdfaf718f76e9decaef4d9fb38a8c4addb95c4007cc3eee03");
2009+
20072010
let carol_blinding_point = PublicKey::from_secret_key(&secp_ctx, &carol_alice_trampoline_session_priv);
20082011
let carol_blinded_hops = if success {
20092012
let payee_tlvs = UnauthenticatedReceiveTlvs {
@@ -2091,6 +2094,10 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
20912094
route_params: None,
20922095
};
20932096

2097+
// We need the session priv to construct an invalid onion packet later.
2098+
let override_random_bytes = [3; 32];
2099+
*nodes[0].keys_manager.override_random_bytes.lock().unwrap() = Some(override_random_bytes);
2100+
20942101
nodes[0].node.send_payment_with_route(route.clone(), payment_hash, RecipientOnionFields::spontaneous_empty(), PaymentId(payment_hash.0)).unwrap();
20952102

20962103
check_added_monitors!(&nodes[0], 1);
@@ -2101,8 +2108,7 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
21012108
} else {
21022109
let replacement_onion = {
21032110
// 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");
2111+
let trampoline_secret_key = SecretKey::from_slice(&override_random_bytes).unwrap();
21062112
let recipient_onion_fields = RecipientOnionFields::spontaneous_empty();
21072113

21082114
let mut blinded_tail = route.paths[0].blinded_tail.clone().unwrap();
@@ -2122,19 +2128,22 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
21222128
let trampoline_packet = onion_utils::construct_trampoline_onion_packet(
21232129
trampoline_payloads,
21242130
trampoline_onion_keys,
2125-
prng_seed.secret_bytes(),
2131+
override_random_bytes,
21262132
&payment_hash,
21272133
None,
21282134
).unwrap();
21292135

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

21322141
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();
21332142
let outer_onion_keys = onion_utils::construct_onion_keys(&secp_ctx, &route.clone().paths[0], &outer_session_priv);
21342143
let outer_packet = onion_utils::construct_onion_packet(
21352144
outer_payloads,
21362145
outer_onion_keys,
2137-
prng_seed.secret_bytes(),
2146+
override_random_bytes,
21382147
&payment_hash,
21392148
).unwrap();
21402149

0 commit comments

Comments
 (0)