openzeppelin_relayer/utils/
key.rs1use rand::RngCore;
2
3pub fn unsafe_generate_random_private_key() -> Vec<u8> {
4 let mut rng = rand::rng();
5 let mut pk = vec![0u8; 32];
6 rng.fill_bytes(pk.as_mut_slice());
7 pk
8}
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13 use std::collections::HashSet;
14
15 #[test]
16 fn test_private_key_length() {
17 let pk = unsafe_generate_random_private_key();
18 assert_eq!(pk.len(), 32, "Private key should be 32 bytes");
19 }
20
21 #[test]
22 fn test_private_key_uniqueness() {
23 let mut keys = HashSet::new();
24 for _ in 0..100 {
25 let pk = unsafe_generate_random_private_key();
26 assert!(keys.insert(pk), "Generated private key should be unique");
27 }
28 }
29
30 #[test]
31 fn test_private_key_not_zero() {
32 let pk = unsafe_generate_random_private_key();
33 assert!(
34 !pk.iter().all(|&byte| byte == 0),
35 "Private key should not be all zeros"
36 );
37 }
38}