1pub mod encrypt;
2pub use encrypt::{hasher,jwt};
3
4#[cfg(test)]
5mod tests {
6 use std::collections::HashSet;
7
8 use jwt_simple::prelude::Duration;
9
10 use crate::jwt::{SignOptions, VerifyOptions};
11
12 use super::*;
13
14 #[test]
15 fn jwt_test_num_aud() {
16 jwt::generate_key_pair_if_absent().unwrap();
17 let keys = jwt::get_keys_as_str().unwrap();
18 let token = jwt::sign::<u64>(keys.0.as_str(), SignOptions {
19 expiry: Some(Duration::from_secs(5)),
20 issuer: Some("cbd.ab"),
21 audience: Some(25u64)
22 }).unwrap();
23 let mut hs = HashSet::new();
24 hs.insert(String::from("abc.com"));
25 hs.insert(String::from("cbd.ab"));
26 let mut auds = HashSet::new();
27 auds.insert(String::from("2"));
28 auds.insert(String::from("35"));
29 let aud = jwt::verify::<u64>(token.as_str(), keys.1.as_str(), VerifyOptions{valid_after_expiry:Some(Duration::from_secs(2)), valid_audiences:Some(auds), valid_issuers: Some(hs)});
30 match aud {
31 Ok(audience) => {
32 assert_eq!(audience, 25u64);
33 },
34 Err(e) => {
35 println!("{:?}", e);
36 }
37 }
38 }
39
40 #[test]
41 fn hashandverify() {
42 let pass = "testpassword";
43 let hashed = hasher::hash(pass).unwrap();
44 let verified = hasher::verify(pass, hashed.as_str()).unwrap();
45 assert_eq!(true, verified);
46 }
47}