diff --git a/examples/rs256.rs b/examples/rs256.rs index ff6c1e3..d685c34 100644 --- a/examples/rs256.rs +++ b/examples/rs256.rs @@ -10,7 +10,7 @@ use medallion::{ Token, }; -fn load_key(keypath: &str) -> Result { +fn load_pem(keypath: &str) -> Result { let mut key_file = File::open(keypath)?; let mut key = String::new(); key_file.read_to_string(&mut key)?; @@ -34,13 +34,13 @@ fn new_token(user_id: &str, password: &str) -> Option { }; let token = Token::new(header, claims); - token.signed(load_key("./privateKey.pem").unwrap().as_bytes()).ok() + token.signed(load_pem("./privateKey.pem").unwrap().as_bytes()).ok() } fn login(token: &str) -> Option { let token = Token::::parse(token).unwrap(); - if token.verify(load_key("./publicKey.pub").unwrap().as_bytes()).unwrap() { + if token.verify(load_pem("./publicKey.pub").unwrap().as_bytes()).unwrap() { token.claims.sub } else { None diff --git a/src/crypt.rs b/src/crypt.rs index da07701..40d2b08 100644 --- a/src/crypt.rs +++ b/src/crypt.rs @@ -71,7 +71,7 @@ fn verify_rsa(signature: &str, data: &str, key: &[u8], digest: MessageDigest) -> } #[cfg(test)] -mod tests { +pub mod tests { use header::Algorithm; use std::io::{Error, Read}; use std::fs::File; @@ -99,7 +99,7 @@ mod tests { let real_sig = "nXdpIkFQYZXZ0VlJjHmAc5_aewHCCJpT5jP1fpexUCF_9m3NxlC7uYNXAl6NKno520oh9wVT4VV_vmPeEin7BnnoIJNPcImWcUzkYpLTrDBntiF9HCuqFaniuEVzlf8dVlRJgo8QxhmUZEjyDFjPZXZxPlPV1LD6hrtItxMKZbh1qoNY3OL7Mwo-WuSRQ0mmKj-_y3weAmx_9EaTLY639uD8-o5iZxIIf85U4e55Wdp-C9FJ4RxyHpjgoG8p87IbChfleSdWcZL3NZuxjRCHVWgS1uYG0I-LqBWpWyXnJ1zk6-w4tfxOYpZFMOIyq4tY2mxJQ78Kvcu8bTO7UdI7iA=="; let data = format!("{}.{}", header, claims); - let key = load_key("./examples/privateKey.pem").unwrap(); + let key = load_pem("./examples/privateKey.pem").unwrap(); let sig = sign(&*data, key.as_bytes(), &Algorithm::RS256); @@ -123,11 +123,11 @@ mod tests { let real_sig = "nXdpIkFQYZXZ0VlJjHmAc5_aewHCCJpT5jP1fpexUCF_9m3NxlC7uYNXAl6NKno520oh9wVT4VV_vmPeEin7BnnoIJNPcImWcUzkYpLTrDBntiF9HCuqFaniuEVzlf8dVlRJgo8QxhmUZEjyDFjPZXZxPlPV1LD6hrtItxMKZbh1qoNY3OL7Mwo-WuSRQ0mmKj-_y3weAmx_9EaTLY639uD8-o5iZxIIf85U4e55Wdp-C9FJ4RxyHpjgoG8p87IbChfleSdWcZL3NZuxjRCHVWgS1uYG0I-LqBWpWyXnJ1zk6-w4tfxOYpZFMOIyq4tY2mxJQ78Kvcu8bTO7UdI7iA"; let data = format!("{}.{}", header, claims); - let key = load_key("./examples/publicKey.pub").unwrap(); + let key = load_pem("./examples/publicKey.pub").unwrap(); assert!(verify(&real_sig, &*data, key.as_bytes(), &Algorithm::RS256).unwrap()); } - fn load_key(keypath: &str) -> Result { + pub fn load_pem(keypath: &str) -> Result { let mut key_file = File::open(keypath)?; let mut key = String::new(); key_file.read_to_string(&mut key)?; diff --git a/src/lib.rs b/src/lib.rs index 685fd93..28d7714 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -123,10 +123,9 @@ impl PartialEq for Token mod tests { use Claims; use Token; + use crypt::tests::load_pem; use header::Algorithm::{HS256,RS512}; use header::DefaultHeader; - use std::io::{Error, Read}; - use std::fs::File; #[derive(Default, Debug, Serialize, Deserialize, PartialEq)] struct EmptyClaim { } @@ -162,19 +161,12 @@ mod tests { }, ..Default::default() }; - let private_key = load_key("./examples/privateKey.pem").unwrap(); + let private_key = load_pem("./examples/privateKey.pem").unwrap(); let raw = token.signed(private_key.as_bytes()).unwrap(); let same = Token::parse(&*raw).unwrap(); assert_eq!(token, same); - let public_key = load_key("./examples/publicKey.pub").unwrap(); + let public_key = load_pem("./examples/publicKey.pub").unwrap(); assert!(same.verify(public_key.as_bytes()).unwrap()); } - - fn load_key(keypath: &str) -> Result { - let mut key_file = File::open(keypath)?; - let mut key = String::new(); - key_file.read_to_string(&mut key)?; - Ok(key) - } }