use serde::{Deserialize, Serialize}; use std::collections::HashMap; #[derive(Debug, Serialize, Deserialize)] pub struct KeyMeta { pub public_key_point_hex: String, } #[derive(Debug, Serialize, Deserialize)] pub struct KeyMap { pub key_map: HashMap, } impl KeyMap { pub fn system() -> Self { let signing_keys = r##" { "yk-r1": { "public_key_point_hex": "04dd3eebd906c9cf00b08ec29f7ed61804d1cc1d1352d9257b628191e08fc3717c4fae3298cd5c4829cec8bf3a946e7db60b7857e1287f6a0bae6b3f2342f007d0" } } "##; // unwrap should not happen let key_map: HashMap = serde_json::from_str(signing_keys).unwrap(); KeyMap { key_map } } pub fn from(key_map: HashMap) -> Self { Self { key_map } } pub fn find(&self, key_id: &str) -> Option<&KeyMeta> { self.key_map.get(key_id) } }