use siphasher::sip::SipHasher;
use std::hash::Hasher;
pub(crate) fn verify_auth(uid: &str, channel: &str, auth: Option<&str>) -> bool {
let mut hasher = SipHasher::new();
hasher.write(uid.as_bytes());
hasher.write(channel.as_bytes());
if let Ok(key) = std::env::var("MLES_KEY") {
if let Some(auth) = auth {
hasher.write(key.as_bytes());
let hash = hasher.finish();
let auth_hash = u64::from_str_radix(auth, 16).unwrap_or(0);
hash == auth_hash
} else {
false
}
} else {
if let Some(auth) = auth {
let hash = hasher.finish();
let auth_hash = u64::from_str_radix(auth, 16).unwrap_or(0);
return hash == auth_hash;
}
true
}
}