discv5_cli/server/
keys.rs1use discv5::{enr::k256, enr::CombinedKey};
2
3pub fn generate(server: &super::command::Server) -> eyre::Result<CombinedKey> {
6 if server.static_key {
7 let raw_key = vec![
8 183, 28, 113, 166, 126, 17, 119, 173, 78, 144, 22, 149, 225, 180, 185, 238, 23, 174,
9 22, 198, 102, 141, 49, 62, 172, 47, 150, 219, 205, 163, 242, 145,
10 ];
11 let secret_key = k256::ecdsa::SigningKey::from_slice(&raw_key)?;
12 Ok(CombinedKey::from(secret_key))
13 } else if let Some(string_key) = &server.secp256k1_key {
14 let raw_key = hex::decode(string_key)
15 .map_err(|_| eyre::eyre!("Invalid hex bytes for secp256k1 key"))?;
16 let secret_key = k256::ecdsa::SigningKey::from_slice(&raw_key)
17 .map_err(|_| eyre::eyre!("Invalid secp256k1 key"))?;
18 Ok(CombinedKey::from(secret_key))
19 } else {
20 Ok(CombinedKey::generate_secp256k1())
21 }
22}