use crate::utils;
pub fn generate_auth_params(secret: &str) -> (u64, String) {
let expires = utils::millis() as u64 + 10_000; let expires_str = expires.to_string();
let signature = utils::sign(secret, &expires_str);
(expires, signature)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_generate_auth_params() {
let (expires, sig) = generate_auth_params("test_secret");
assert!(expires > 0);
assert!(!sig.is_empty());
assert_eq!(sig.len(), 64); }
#[test]
fn test_auth_params_deterministic_at_same_time() {
let (e1, s1) = generate_auth_params("secret");
std::thread::sleep(std::time::Duration::from_millis(10));
let (e2, s2) = generate_auth_params("secret");
assert!(e2 > e1);
assert_ne!(s1, s2);
}
}