From ccc6657083df1d8db7d443356702af11f94e65b4 Mon Sep 17 00:00:00 2001 From: Thomas Gideon Date: Mon, 12 Mar 2018 09:38:01 -0400 Subject: [PATCH] Update deps. --- Cargo.toml | 4 ++-- src/crypt.rs | 23 +++++++++++++++++------ src/error.rs | 6 +++--- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e5b3a80..43d4402 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ categories = ["cryptography", "authentication", "web-programming", license = "MIT" [dependencies] -base64 = "0.4" -openssl = "0.9.11" +base64 = "0.9" +openssl = "0.10" serde = "1.0" serde_json = "1.0" serde_derive = "1.0" diff --git a/src/crypt.rs b/src/crypt.rs index 1de80cb..53bbae5 100644 --- a/src/crypt.rs +++ b/src/crypt.rs @@ -35,7 +35,7 @@ fn sign_hmac(data: &str, key: &[u8], digest: MessageDigest) -> Result { let mut signer = Signer::new(digest, &secret_key)?; signer.update(data.as_bytes())?; - let mac = signer.finish()?; + let mac = signer.sign_to_vec()?; Ok(encode_config(&mac, URL_SAFE_NO_PAD)) } @@ -45,7 +45,7 @@ fn sign_rsa(data: &str, key: &[u8], digest: MessageDigest) -> Result { let mut signer = Signer::new(digest, &pkey)?; signer.update(data.as_bytes())?; - let sig = signer.finish()?; + let sig = signer.sign_to_vec()?; Ok(encode_config(&sig, URL_SAFE_NO_PAD)) } @@ -56,7 +56,7 @@ fn verify_hmac(target: &str, data: &str, key: &[u8], digest: MessageDigest) -> R let mut signer = Signer::new(digest, &secret_key)?; signer.update(data.as_bytes())?; - let mac = signer.finish()?; + let mac = signer.sign_to_vec()?; Ok(memcmp::eq(&mac, &target_bytes)) } @@ -67,7 +67,7 @@ fn verify_rsa(signature: &str, data: &str, key: &[u8], digest: MessageDigest) -> let pkey = PKey::from_rsa(public_key)?; let mut verifier = Verifier::new(digest, &pkey)?; verifier.update(data.as_bytes())?; - Ok(verifier.finish(&signature_bytes)?) + Ok(verifier.verify(&signature_bytes)?) } #[cfg(test)] @@ -97,9 +97,20 @@ pub mod tests { let keypair = openssl::rsa::Rsa::generate(2048).unwrap(); - let sig = sign(&*data, &keypair.private_key_to_pem().unwrap(), &Algorithm::RS256).unwrap(); + let sig = sign( + &*data, + &keypair.private_key_to_pem().unwrap(), + &Algorithm::RS256, + ).unwrap(); - assert!(verify(&sig, &*data, &keypair.public_key_to_pem().unwrap(), &Algorithm::RS256).unwrap()); + assert!( + verify( + &sig, + &*data, + &keypair.public_key_to_pem().unwrap(), + &Algorithm::RS256 + ).unwrap() + ); } #[test] diff --git a/src/error.rs b/src/error.rs index 7cbaeef..5b87c33 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,4 +1,4 @@ -use base64::Base64Error; +use base64::DecodeError; use serde_json; use std::error; use std::fmt; @@ -12,7 +12,7 @@ pub enum Error { /// String encoding errors. Utf8(FromUtf8Error), /// Base64 encoding or decoding errors. - Base64(Base64Error), + Base64(DecodeError), /// JSON parsing or stringifying errors. JSON(serde_json::Error), /// Errors from RSA operations. @@ -62,6 +62,6 @@ macro_rules! error_wrap { } error_wrap!(FromUtf8Error, Error::Utf8); -error_wrap!(Base64Error, Error::Base64); +error_wrap!(DecodeError, Error::Base64); error_wrap!(serde_json::Error, Error::JSON); error_wrap!(ErrorStack, Error::Crypto);