36 lines
898 B
Rust
36 lines
898 B
Rust
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<String, KeyMeta>,
|
|
}
|
|
|
|
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<String, KeyMeta> = serde_json::from_str(signing_keys).unwrap();
|
|
KeyMap { key_map }
|
|
}
|
|
|
|
pub fn from(key_map: HashMap<String, KeyMeta>) -> Self {
|
|
Self { key_map }
|
|
}
|
|
|
|
pub fn find(&self, key_id: &str) -> Option<&KeyMeta> {
|
|
self.key_map.get(key_id)
|
|
}
|
|
}
|