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 inFixedorDynamicto 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§
- From
Base64 UrlStr - Extension trait for decoding URL-safe base64 strings into byte vectors.