diff --git a/Cargo.toml b/Cargo.toml index 9fa90a7..9751127 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,21 +14,21 @@ repository = "https://github.com/cheetah-games/jsonwebtoken-google" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -jsonwebtoken = "8.0.1" +jsonwebtoken = "9.2.0" serde = { version = "1.0", features = ["derive"] } reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls"] } -headers = "0.3.1" +headers = "0.3.9" tokio = "1.0" httpmock = { version = "0.6.2", optional = true } -rustls = { version = "0.20.2" } -base64 = { version = "0.13.0", optional = true } +rustls = { version = "0.22.1" } +base64 = { version = "0.21.5", optional = true } thiserror = "1.0.30" -rsa = "0.8.2" +rsa = "0.9.6" rand = "0.8.5" [dev-dependencies] httpmock = { version = "0.6.2" } -base64 = { version = "0.13.0" } +base64 = { version = "0.21.5" } [features] test-helper = ["httpmock", "base64"] diff --git a/src/test_helper/mod.rs b/src/test_helper/mod.rs index 2956ffa..9fc7571 100644 --- a/src/test_helper/mod.rs +++ b/src/test_helper/mod.rs @@ -1,11 +1,14 @@ use std::ops::Add; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use base64::Engine; +use base64::engine::general_purpose::URL_SAFE_NO_PAD; use httpmock::MockServer; use jsonwebtoken::{Algorithm, EncodingKey, Header}; use rand::thread_rng; use rsa::pkcs8::EncodePrivateKey; -use rsa::{PublicKeyParts, RsaPrivateKey}; +use rsa::traits::PublicKeyParts; +use rsa::RsaPrivateKey; use serde::{Deserialize, Serialize}; use crate::Parser; @@ -77,8 +80,8 @@ pub fn setup_public_key_server(claims: &TokenClaims) -> (String, MockServer) { .unwrap(); let key = EncodingKey::from_rsa_pem(der.as_bytes()).unwrap(); let token = jsonwebtoken::encode::(&header, claims, &key).unwrap(); - let n = base64::encode_config(private_key.n().to_bytes_be(), base64::URL_SAFE_NO_PAD); - let e = base64::encode_config(private_key.e().to_bytes_be(), base64::URL_SAFE_NO_PAD); + let n = URL_SAFE_NO_PAD.encode(private_key.n().to_bytes_be()); + let e = URL_SAFE_NO_PAD.encode(private_key.e().to_bytes_be()); let resp = format!("{{\"keys\": [{{\"kty\": \"RSA\",\"use\": \"sig\",\"e\": \"{}\",\"n\": \"{}\",\"alg\": \"RS256\",\"kid\": \"{}\"}}]}}", e, n, KID); let server = MockServer::start();