telegram_authorizer/authorizer/
external.rs1use 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}