From 8848fe775d97f3127adb162d4e70d5017ec83995 Mon Sep 17 00:00:00 2001 From: "Cassandra S." Date: Wed, 22 Nov 2023 08:52:05 +0100 Subject: [PATCH] chore: bump base64 dependency to 0.21.5 --- Cargo.lock | 2 +- Cargo.toml | 2 +- common/src/backends/auth.rs | 23 +++++++++++++++-------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27ea2aefb..e95d75b0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5715,7 +5715,7 @@ dependencies = [ "anyhow", "async-trait", "axum", - "base64 0.13.1", + "base64 0.21.5", "bytes", "chrono", "comfy-table", diff --git a/Cargo.toml b/Cargo.toml index 9783e241a..b43fe0c5d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ anyhow = "1.0.66" async-trait = "0.1.58" axum = { version = "0.6.13", default-features = false } axum-sessions = "0.5.0" -base64 = "0.13.1" +base64 = "0.21.5" bollard = "0.15.0" bytes = "1.3.0" cargo_metadata = "0.18.1" diff --git a/common/src/backends/auth.rs b/common/src/backends/auth.rs index 895968964..d5da03f1e 100644 --- a/common/src/backends/auth.rs +++ b/common/src/backends/auth.rs @@ -458,6 +458,7 @@ impl VerifyClaim for tonic::Request { #[cfg(test)] mod tests { use axum::{routing::get, Extension, Router}; + use base64::Engine; use http::{Request, StatusCode}; use hyper::{body, Body}; use jsonwebtoken::EncodingKey; @@ -472,6 +473,12 @@ mod tests { use super::{JwtAuthenticationLayer, ScopedLayer}; + const BASE64_URL_SAFE_ENGINE: base64::engine::GeneralPurpose = + base64::engine::GeneralPurpose::new( + &base64::alphabet::URL_SAFE, + base64::engine::general_purpose::NO_PAD, + ); + #[test] fn to_token_and_back() { let mut claim = Claim::new( @@ -610,14 +617,14 @@ mod tests { let token = claim.into_token(&encoding_key).unwrap(); let (header, rest) = token.split_once('.').unwrap(); - let header = base64::decode_config(header, base64::URL_SAFE_NO_PAD).unwrap(); + let header = BASE64_URL_SAFE_ENGINE.decode(header).unwrap(); let mut header: serde_json::Map = serde_json::from_slice(&header).unwrap(); header["alg"] = json!("HS256"); let header = serde_json::to_vec(&header).unwrap(); - let header = base64::encode_config(header, base64::URL_SAFE_NO_PAD); + let header = BASE64_URL_SAFE_ENGINE.encode(header); let (claim, _sig) = rest.split_once('.').unwrap(); @@ -630,7 +637,7 @@ mod tests { &hmac::Key::new(hmac::HMAC_SHA256, pair.public_key().as_ref()), msg.as_bytes(), ); - let sig = base64::encode_config(sig, base64::URL_SAFE_NO_PAD); + let sig = BASE64_URL_SAFE_ENGINE.encode(sig); let token = format!("{msg}.{sig}"); Claim::from_token(&token, public_key).unwrap(); @@ -652,7 +659,7 @@ mod tests { let token = claim.into_token(&encoding_key).unwrap(); let (header, rest) = token.split_once('.').unwrap(); - let header = base64::decode_config(header, base64::URL_SAFE_NO_PAD).unwrap(); + let header = BASE64_URL_SAFE_ENGINE.decode(header).unwrap(); let (claim, _sig) = rest.split_once('.').unwrap(); let mut header: serde_json::Map = serde_json::from_slice(&header).unwrap(); @@ -660,7 +667,7 @@ mod tests { header["alg"] = json!("none"); let header = serde_json::to_vec(&header).unwrap(); - let header = base64::encode_config(header, base64::URL_SAFE_NO_PAD); + let header = BASE64_URL_SAFE_ENGINE.encode(header); let token = format!("{header}.{claim}."); @@ -712,14 +719,14 @@ mod tests { let (header, rest) = token.split_once('.').unwrap(); let (claim, _sig) = rest.split_once('.').unwrap(); - let claim = base64::decode_config(claim, base64::URL_SAFE_NO_PAD).unwrap(); + let claim = BASE64_URL_SAFE_ENGINE.decode(claim).unwrap(); let mut claim: serde_json::Map = serde_json::from_slice(&claim).unwrap(); claim["iss"] = json!("clone"); let claim = serde_json::to_vec(&claim).unwrap(); - let claim = base64::encode_config(claim, base64::URL_SAFE_NO_PAD); + let claim = BASE64_URL_SAFE_ENGINE.encode(claim); let msg = format!("{header}.{claim}"); @@ -727,7 +734,7 @@ mod tests { let public_key = pair.public_key().as_ref(); let sig = pair.sign(msg.as_bytes()); - let sig = base64::encode_config(sig, base64::URL_SAFE_NO_PAD); + let sig = BASE64_URL_SAFE_ENGINE.encode(sig); let token = format!("{msg}.{sig}"); Claim::from_token(&token, public_key).unwrap();