1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use base64; use rand::thread_rng; use x25519_dalek::{PublicKey, StaticSecret}; pub fn trial(prefix: &str, start: usize, end: usize) -> Option<(String, String)> { let mut rng = thread_rng(); let private = StaticSecret::new(&mut rng); let public = PublicKey::from(&private); let public_b64 = base64::encode(public.as_bytes()); if public_b64[start..end] .to_ascii_lowercase() .contains(&prefix) { let private_b64 = base64::encode(&private.to_bytes()); Some((private_b64, public_b64)) } else { None } }