diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 4 | ||||
| -rw-r--r-- | src/security.rs | 57 | 
2 files changed, 0 insertions, 61 deletions
@@ -11,10 +11,6 @@ pub use mime;  pub mod request;  pub mod response; -#[cfg(feature = "security")] -#[cfg_attr(docsrs, doc(cfg(feature = "security")))] -pub mod security; -  #[cfg(feature = "hyper_body")]  #[cfg_attr(docsrs, doc(cfg(feature = "hyper_body")))]  pub mod hyper_body; diff --git a/src/security.rs b/src/security.rs deleted file mode 100644 index bc3b381..0000000 --- a/src/security.rs +++ /dev/null @@ -1,57 +0,0 @@ -//! Provides [`Key`] and functions to encode & decode expiring claims. - -pub use signed::Key; -pub use std::time::{SystemTime, UNIX_EPOCH}; - -mod signed; - -/// Join a string and an expiry date together into a string. -pub fn encode_expiring_claim(claim: &str, expiry_date: SystemTime) -> String { -    format!( -        "{}:{}", -        claim, -        expiry_date.duration_since(UNIX_EPOCH).unwrap().as_secs() -    ) -} - -/// Extract the string, failing if the expiry date is in the past. -pub fn decode_expiring_claim(value: &str) -> Result<&str, &'static str> { -    let mut parts = value.rsplitn(2, ':'); -    let expiry_date = parts -        .next() -        .expect("first .rsplitn().next() is expected to return Some"); -    let claim = parts.next().ok_or("expected colon")?; -    let expiry_date: u64 = expiry_date -        .parse() -        .map_err(|_| "failed to parse timestamp")?; - -    if expiry_date -        > SystemTime::now() -            .duration_since(UNIX_EPOCH) -            .unwrap() -            .as_secs() -    { -        Ok(claim) -    } else { -        Err("token is expired") -    } -} - -#[cfg(test)] -mod tests { -    use std::time::{Duration, SystemTime}; - -    #[test] -    fn test_expiring_claim() { -        for claim in vec!["test", "", "foo:bar"] { -            let encoded_claim = -                super::encode_expiring_claim(claim, SystemTime::now() + Duration::from_secs(60)); -            assert_eq!(super::decode_expiring_claim(&encoded_claim).unwrap(), claim); - -            let encoded_claim = -                super::encode_expiring_claim(claim, SystemTime::now() - Duration::from_secs(60)); -            assert!(super::decode_expiring_claim(&encoded_claim).is_err()); -        } -        assert!(super::decode_expiring_claim("test".into()).is_err()); -    } -}  | 
