telegram_authorizer/authorizer/
external.rs

1use crate::error::AuthError;
2
3use super::{authorize, Authorizer, User};
4use ring::{digest, hmac};
5
6#[derive(Clone)]
7pub struct External(hmac::Key);
8
9impl External {
10    pub fn new(key: &str) -> Self {
11        let digest = digest::digest(&digest::SHA256, key.as_bytes());
12        Self(hmac::Key::new(hmac::HMAC_SHA256, digest.as_ref()))
13    }
14}
15
16impl Authorizer for External {
17    fn authorize(&self, query_string: Option<&str>) -> Result<User, AuthError> {
18        authorize(query_string, &self.0)
19    }
20}