openzeppelin_relayer/utils/
base64.rs

1// base64 encode and decode helper functions
2
3use 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}