Skip to content

Commit ddec702

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

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 13 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;
@@ -2091,6 +2093,10 @@ fn do_test_trampoline_single_hop_receive(success: bool) {
20912093
route_params: None,
20922094
};
20932095

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

20962102
check_added_monitors!(&nodes[0], 1);
@@ -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)