From 6e29f23003911b2bd9e079e7adae34ab311703fc Mon Sep 17 00:00:00 2001 From: crStiv Date: Wed, 17 Sep 2025 12:36:07 +0200 Subject: [PATCH 1/3] Update lib.rs --- multisig/src/lib.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/multisig/src/lib.rs b/multisig/src/lib.rs index 3f8d52f4..8f3668d4 100644 --- a/multisig/src/lib.rs +++ b/multisig/src/lib.rs @@ -139,16 +139,13 @@ impl Keypair { } /// Generate keypair from a seed. - pub fn from_seed(seed: [u8; 32]) -> Self { - loop { - if let Ok(sk) = secp256k1::SecretKey::from_byte_array(seed) { - let pk = sk.public_key(secp256k1::SECP256K1); - return Self { - sk: SecretKey { key: sk }, - pk: PublicKey { key: pk }, - }; - } - } + pub fn from_seed(seed: [u8; 32]) -> Result { + let sk = secp256k1::SecretKey::from_byte_array(seed).map_err(|_| InvalidSecretKey(()))?; + let pk = sk.public_key(secp256k1::SECP256K1); + Ok(Self { + sk: SecretKey { key: sk }, + pk: PublicKey { key: pk }, + }) } /// Returns ed25519 Public key. From bc0c1c587e12d708e8798c380d0ac0dfd92f2403 Mon Sep 17 00:00:00 2001 From: crStiv Date: Wed, 17 Sep 2025 12:36:22 +0200 Subject: [PATCH 2/3] Update lib.rs --- timeboost-utils/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/timeboost-utils/src/lib.rs b/timeboost-utils/src/lib.rs index 92b37afa..223cf30d 100644 --- a/timeboost-utils/src/lib.rs +++ b/timeboost-utils/src/lib.rs @@ -22,7 +22,7 @@ pub fn sig_keypair_from_seed_indexed(seed: [u8; 32], index: u64) -> multisig::Ke hasher.update(&seed); hasher.update(&index.to_le_bytes()); let new_seed = *hasher.finalize().as_bytes(); - multisig::Keypair::from_seed(new_seed) + multisig::Keypair::from_seed(new_seed).expect("blake3 hash should always produce valid secp256k1 key") } pub fn dh_keypair_from_seed_indexed(seed: [u8; 32], index: u64) -> x25519::Keypair { From 900c9dac50703df966d93223acab307ea7cf93b8 Mon Sep 17 00:00:00 2001 From: crStiv Date: Wed, 17 Sep 2025 12:36:36 +0200 Subject: [PATCH 3/3] Update shaping.rs --- tests/src/tests/consensus/helpers/shaping.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/tests/consensus/helpers/shaping.rs b/tests/src/tests/consensus/helpers/shaping.rs index 8dbae492..f07d0981 100644 --- a/tests/src/tests/consensus/helpers/shaping.rs +++ b/tests/src/tests/consensus/helpers/shaping.rs @@ -308,7 +308,7 @@ impl Simulator { for (b, s) in name.as_bytes().iter().zip(seed.iter_mut()) { *s = *b } - (name, Keypair::from_seed(seed)) + (name, Keypair::from_seed(seed).expect("name-based seed should produce valid keypair")) }) .collect();