openzeppelin_relayer/utils/
base64.rs1use base64::Engine;
4
5pub fn base64_encode(message: &[u8]) -> String {
6 base64::engine::general_purpose::STANDARD.encode(message)
7}
8pub fn base64_decode(data: &str) -> Result<Vec<u8>, base64::DecodeError> {
9 base64::engine::general_purpose::STANDARD.decode(data)
10}
11
12pub fn base64_url_encode(message: &[u8]) -> String {
13 base64::engine::general_purpose::URL_SAFE_NO_PAD.encode(message)
14}
15pub fn base64_url_decode(data: &str) -> Result<Vec<u8>, base64::DecodeError> {
16 base64::engine::general_purpose::URL_SAFE_NO_PAD.decode(data)
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22
23 #[test]
24 fn test_base64_encode() {
25 assert_eq!(base64_encode(b"Hello, world!"), "SGVsbG8sIHdvcmxkIQ==");
26 }
27
28 #[test]
29 fn test_base64_decode() {
30 let decoded = base64_decode("SGVsbG8sIHdvcmxkIQ==").unwrap();
31 assert_eq!(decoded, b"Hello, world!");
32 }
33}