pub struct Base64String(/* private fields */);Expand description
Validated, URL-safe base64 string wrapper for secret data (no padding).
This struct ensures the contained string is valid URL-safe base64. Provides methods for decoding back to bytes.
§Examples
let valid = Base64String::new("SGVsbG8".to_string()).unwrap();
assert_eq!(valid.expose_secret(), "SGVsbG8");
let bytes = valid.into_bytes(); // Vec<u8> of "Hello"Implementations§
Source§impl Base64String
impl Base64String
Sourcepub fn new(s: String) -> Result<Self, &'static str>
pub fn new(s: String) -> Result<Self, &'static str>
Create a new Base64String from a String, validating it as URL-safe base64 (no padding).
The input String is consumed.
§Security Note
Invalid inputs are only securely zeroized if the zeroize feature is enabled.
Without zeroize, rejected bytes may remain in memory until the String is dropped
normally. Enable the zeroize feature for secure wiping of invalid inputs.
Validation rules:
- Valid URL-safe base64 characters (A-Z, a-z, 0-9, -, _)
- No padding (‘=’ not allowed, as we use no-pad)
- Must be decodable as valid base64 (prevents
to_bytes()panics)
§Errors
Returns Err("invalid base64 string") if validation fails.
§Example
use secure_gate::encoding::base64::Base64String;
let valid = Base64String::new("SGVsbG8".to_string()).unwrap();
assert_eq!(valid.expose_secret(), "SGVsbG8");
let bytes = valid.into_bytes(); // Vec<u8> of "Hello"Source§impl Base64String
impl Base64String
pub fn expose_secret(&self) -> Base64StringView<'_>
Source§impl Base64String
impl Base64String
Sourcepub fn into_bytes(self) -> Vec<u8> ⓘ
pub fn into_bytes(self) -> Vec<u8> ⓘ
Decode the validated base64 string into raw bytes, consuming and zeroizing the wrapper.
Trait Implementations§
Source§impl Debug for Base64String
Debug implementation (always redacted).
impl Debug for Base64String
Debug implementation (always redacted).
Source§impl PartialEq for Base64String
impl PartialEq for Base64String
impl Eq for Base64String
Auto Trait Implementations§
impl Freeze for Base64String
impl RefUnwindSafe for Base64String
impl Send for Base64String
impl Sync for Base64String
impl Unpin for Base64String
impl UnwindSafe for Base64String
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more