diff --git a/src/lib.rs b/src/lib.rs index ee949c7..901d6b9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,7 +6,7 @@ use base64::{engine::general_purpose, Engine as _}; #[derive(Clone, Deserialize, Debug, Serialize)] pub struct Token { pub user_id: String, - pub scope: String + pub scope: String // I don't really know what this means? } pub struct SignedToken { @@ -21,7 +21,6 @@ impl Token { } } - pub fn sign(token: &Token, private_key: &SigningKey) -> SignedToken { let issued_at = 1710000000; // example timestamp let data = (&token, issued_at); @@ -39,11 +38,12 @@ pub fn verify(signed_token: &SignedToken, public_key: &VerifyingKey) -> Result<( let data = (&signed_token.token, signed_token.issued_at); let bytes = serde_json::to_vec(&data).unwrap(); - // let sig_bytes = signed_token.signature.as_bytes(); + // converts from base64 let sig_bytes = general_purpose::STANDARD .decode(&signed_token.signature) .map_err(|e| e.to_string())?; + // can we guarantee length of 64? let sig_array: [u8; 64] = sig_bytes .try_into() .map_err(|_| "invalid signature length".to_string())?; @@ -66,7 +66,7 @@ mod tests { use super::*; #[test] - fn test1() { + fn test_happy_path() { assert_eq!(4, 4); let json_string = r#"{