Skip to main content

Module base64_url

Module base64_url 

Source
Expand description

URL-safe Base64 decoding trait.

Import path: use secure_gate::FromBase64UrlStr;

This trait provides secure, explicit decoding of base64url-encoded strings (URL-safe alphabet, no padding) to byte vectors. It is designed for handling untrusted input in cryptographic contexts, such as decoding encoded keys or tokens.

Requires the encoding-base64 feature.

§Security Notes

  • Treat all input as untrusted: validate base64url strings upstream before wrapping in secrets. Invalid input may indicate tampering or injection attempts.
  • Heap allocation: Returns Vec<u8> — wrap in Fixed or Dynamic to store as a secret.
  • Strict validation: URL-safe alphabet, no padding, per RFC 4648 §5. Invalid input fails immediately.
  • URL-safe alphabet: Uses - and _ instead of + and /.

§Example

use secure_gate::{FromBase64UrlStr, Fixed};
{
// "AQIDBA" decodes to [1, 2, 3, 4]
let bytes = "AQIDBA".try_from_base64url().unwrap();
assert_eq!(bytes, vec![1, 2, 3, 4]);

// Wrap result in a secret immediately
let secret: Fixed<[u8; 3]> = Fixed::try_from_base64url("AQID").unwrap();

// Error on invalid input
assert!("!!!".try_from_base64url().is_err());
}

Traits§

FromBase64UrlStr
Extension trait for decoding URL-safe base64 strings into byte vectors.