From 6edb3c9fd0bad00655002309b2058ccd1da01946 Mon Sep 17 00:00:00 2001 From: Mr-Leshiy Date: Tue, 11 Mar 2025 20:40:33 +0200 Subject: [PATCH] replace base64-url with base64 --- rust/catalyst-types/Cargo.toml | 2 +- rust/catalyst-types/src/id_uri/errors.rs | 2 +- rust/catalyst-types/src/id_uri/mod.rs | 10 ++++++---- rust/signed_doc/Cargo.toml | 2 +- rust/signed_doc/src/lib.rs | 3 ++- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/rust/catalyst-types/Cargo.toml b/rust/catalyst-types/Cargo.toml index 062ee5244b..449b1097db 100644 --- a/rust/catalyst-types/Cargo.toml +++ b/rust/catalyst-types/Cargo.toml @@ -27,7 +27,7 @@ orx-concurrent-vec = { version = "3.2.0", features = ["serde"] } pallas-crypto = { version = "0.30.1", git = "https://github.com/input-output-hk/catalyst-pallas.git", rev = "9b5183c8b90b90fe2cc319d986e933e9518957b3" } serde = { version = "1.0.217", features = ["derive", "rc"] } thiserror = "2.0.11" -base64-url = "3.0.0" +base64 = "0.22.1" uuid = { version = "1.12.0", features = ["v4", "v7", "serde"] } chrono = "0.4.39" fmmap = { version = "0.4.0", features = ["sync", "tokio"] } diff --git a/rust/catalyst-types/src/id_uri/errors.rs b/rust/catalyst-types/src/id_uri/errors.rs index 80d8a00338..dc7a8e1581 100644 --- a/rust/catalyst-types/src/id_uri/errors.rs +++ b/rust/catalyst-types/src/id_uri/errors.rs @@ -21,7 +21,7 @@ pub enum IdUriError { /// Role 0 Key in path is invalid InvalidRole0Key, /// Role 0 Key in path is not encoded correctly - InvalidRole0KeyEncoding(#[from] base64_url::base64::DecodeError), + InvalidRole0KeyEncoding(#[from] base64::DecodeError), /// Role Index is invalid InvalidRole, /// Role Index is not encoded correctly diff --git a/rust/catalyst-types/src/id_uri/mod.rs b/rust/catalyst-types/src/id_uri/mod.rs index 8c46936732..365b18e7ff 100644 --- a/rust/catalyst-types/src/id_uri/mod.rs +++ b/rust/catalyst-types/src/id_uri/mod.rs @@ -11,6 +11,7 @@ use std::{ str::FromStr, }; +use base64::Engine; use chrono::{DateTime, Duration, Utc}; use ed25519_dalek::VerifyingKey; use fluent_uri::{ @@ -550,8 +551,8 @@ impl FromStr for IdUri { // Decode and validate the Role0 Public key from the path let encoded_role0_key = path.get(1).ok_or(errors::IdUriError::InvalidRole0Key)?; - let decoded_role0_key = - base64_url::decode(encoded_role0_key.decode().into_string_lossy().as_ref())?; + let decoded_role0_key = base64::engine::general_purpose::URL_SAFE_NO_PAD + .decode(encoded_role0_key.decode().into_string_lossy().as_ref())?; let role0_pk = crate::conversion::vkey_from_bytes(&decoded_role0_key) .or(Err(errors::IdUriError::InvalidRole0Key))?; @@ -638,7 +639,7 @@ impl Display for IdUri { f, "{}/{}", self.network, - base64_url::encode(self.role0_pk.as_bytes()), + base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(self.role0_pk.as_bytes()), )?; // Role and Rotation are only serialized if its NOT and ID or they are not the defaults. @@ -667,6 +668,7 @@ impl TryFrom<&[u8]> for IdUri { #[cfg(test)] mod tests { + use base64::Engine; use ed25519_dalek::SigningKey; use rand::rngs::OsRng; @@ -711,7 +713,7 @@ mod tests { let mut csprng = OsRng; let signing_key: SigningKey = SigningKey::generate(&mut csprng); let vk = signing_key.verifying_key(); - let encoded_vk = base64_url::encode(vk.as_bytes()); + let encoded_vk = base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(vk.as_bytes()); assert_eq!(encoded_vk, "1234"); } } diff --git a/rust/signed_doc/Cargo.toml b/rust/signed_doc/Cargo.toml index 718d0425b7..c889d61581 100644 --- a/rust/signed_doc/Cargo.toml +++ b/rust/signed_doc/Cargo.toml @@ -28,7 +28,7 @@ jsonpath-rust = "0.7.5" futures = "0.3.31" [dev-dependencies] -base64-url = "3.0.0" +base64 = "0.22.1" rand = "0.8.5" tokio = { version = "1.42.0", features = [ "macros" ] } diff --git a/rust/signed_doc/src/lib.rs b/rust/signed_doc/src/lib.rs index a69c8a46ea..a0d6536814 100644 --- a/rust/signed_doc/src/lib.rs +++ b/rust/signed_doc/src/lib.rs @@ -278,6 +278,7 @@ impl TryFrom for Vec { mod tests { use std::str::FromStr; + use base64::Engine; use ed25519_dalek::{SigningKey, VerifyingKey}; use metadata::{ContentEncoding, ContentType}; use rand::rngs::OsRng; @@ -357,7 +358,7 @@ mod tests { let kid_str = format!( "id.catalyst://cardano/{}/0/0", - base64_url::encode(pk.as_bytes()) + base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(pk.as_bytes()) ); let kid = IdUri::from_str(&kid_str).unwrap();