From bd7b29f96b2591c1b183c8bd2b9c009e37d140a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rin=20Cat=20=28=E9=88=B4=E7=8C=AB=29?= Date: Thu, 13 Feb 2025 21:09:58 -0500 Subject: [PATCH] pub generate keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rin Cat (鈴猫) --- src/ed25519.rs | 6 ++++++ src/lib.rs | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ed25519.rs b/src/ed25519.rs index 4544207..9b84913 100644 --- a/src/ed25519.rs +++ b/src/ed25519.rs @@ -7,6 +7,11 @@ pub struct ChallengeSigner { } impl ChallengeSigner { + pub fn generate_sign_key() -> [u8; 32] { + let signing_key = SigningKey::generate(&mut rand::thread_rng()); + signing_key.to_bytes() + } + pub fn new() -> Self { let signing_key = SigningKey::generate(&mut rand::thread_rng()); ChallengeSigner { signing_key } @@ -25,4 +30,5 @@ impl ChallengeSigner { let signature_result = Signature::from_bytes(signature); self.signing_key.verify(message, &signature_result).is_ok() } + } diff --git a/src/lib.rs b/src/lib.rs index ba62057..c5d2584 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -74,7 +74,7 @@ impl ChallengerBuilder { .unwrap_or((1000.0 * DIFFICULTY_SCALE) as u32); let algorithm = self.algorithm.unwrap_or_else(|| { - crate::sloth::Sloth::new(crate::prime::generate_prime_mod_3_4(4096, 64)) + crate::sloth::Sloth::new(self::ChallengerBuilder::generate_prime()) }); let signer = self @@ -102,6 +102,14 @@ impl ChallengerBuilder { last_rotation, } } + + pub fn generate_prime() -> BigUint { + crate::prime::generate_prime_mod_3_4(4096, 64) + } + + pub fn generate_sign_key() -> [u8; 32] { + crate::ed25519::ChallengeSigner::generate_sign_key() + } } #[cfg(not(target_arch = "wasm32"))]