Trait http_signatures::GetKey
[−]
[src]
pub trait GetKey { type Key: Read; type Error; fn get_key(self, key_id: &str) -> Result<Self::Key, Self::Error>; }
The GetKey trait is used during HTTP Signature verification to access the required decryption key based on a given key_id.
The key_id
is provided in the Authorization or Signature header of the request as KeyId
.
Example
use http_signatures::GetKey; struct MyKeyGetter { keys: HashMap<String, Vec<u8>>, } impl MyKeyGetter { pub fn new() -> Self { MyKeyGetter { keys: HashMap::new(), } } pub fn add_key(&mut self, key_id: String, key: Vec<u8>) { self.keys.insert(key_id, key); } } impl GetKey for MyKeyGetter { type Key = Cursor<Vec<u8>>; type Error = (); fn get_key(self, key_id: &str) -> Result<Self::Key, Self::Error> { self.keys.get(key_id).map(|key| Cursor::new(key.clone())).ok_or(()) } } let mut key_getter = MyKeyGetter::new(); key_getter.add_key("key-1".into(), vec![1, 2, 3, 4, 5]); key_getter.get_key("key-1")?;