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.decode_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, ExposeSecret};
let valid = Base64String::new("SGVsbG8".to_string()).unwrap();
assert_eq!(valid.expose_secret(), "SGVsbG8");
let bytes = valid.decode_into_bytes(); // Vec<u8> of "Hello"Sourcepub fn decode_to_bytes(&self) -> Vec<u8> ⓘ
pub fn decode_to_bytes(&self) -> Vec<u8> ⓘ
decode_to_bytes: borrowing, allocates fresh Vec<u8> from decoded bytes
Sourcepub fn decode_into_bytes(self) -> Vec<u8> ⓘ
pub fn decode_into_bytes(self) -> Vec<u8> ⓘ
decode_into_bytes: consuming, decodes then zeroizes the wrapper immediately
Trait Implementations§
Source§impl Debug for Base64String
Debug implementation (always redacted).
impl Debug for Base64String
Debug implementation (always redacted).
Source§impl ExposeSecret for Base64String
Available on crate feature encoding-base64 only.Implementation for Base64String - read-only access.
impl ExposeSecret for Base64String
encoding-base64 only.Implementation for Base64String - read-only access.
Encoding wrappers only provide read-only access to prevent invalidation of
validation invariants. The Inner type is str since encoded strings are
always valid UTF-8.