M5Utility 0.0.10 git rev:e54335a
Loading...
Searching...
No Matches
base64.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_CRYPTO_UTILITY_BASE64_HPP
11#define M5_UNIT_CRYPTO_UTILITY_BASE64_HPP
12
13#include <cstdint>
14
15namespace m5 {
16namespace utility {
17
29uint32_t encode_base64(char* out, const uint32_t olen, const uint8_t* buf, const uint32_t blen, const uint8_t line_len,
30 const bool urlEncode, const bool padding);
31
33inline uint32_t encodeBase64(char* out, const uint32_t olen, const uint8_t* buf, const uint32_t blen)
34{
35 return encode_base64(out, olen, buf, blen, 64, false, true);
36}
38inline uint32_t encodeBase64URL(char* out, const uint32_t olen, const uint8_t* buf, const uint32_t blen)
39{
40 return encode_base64(out, olen, buf, blen, 0, true, false);
41}
42
55uint32_t decode_base64(uint8_t* out, const uint32_t olen, const char* buf, const uint32_t blen, const bool urlEncode,
56 const bool padding);
57
59inline uint32_t decodeBase64(uint8_t* out, const uint32_t olen, const char* buf, const uint32_t blen)
60{
61 return decode_base64(out, olen, buf, blen, false, true);
62}
63
65inline uint32_t decodeBase64URL(uint8_t* out, const uint32_t olen, const char* buf, const uint32_t blen)
66{
67 return decode_base64(out, olen, buf, blen, true, false);
68}
69
70} // namespace utility
71} // namespace m5
72#endif
uint32_t encode_base64(char *out, const uint32_t olen, const uint8_t *buf, const uint32_t blen, const uint8_t line_len, const bool urlEncode, const bool padding)
encode Base64
Definition base64.cpp:42
uint32_t decode_base64(uint8_t *out, const uint32_t olen, const char *buf, const uint32_t blen, const bool urlEncode, const bool padding)
decode Base64 / Base64URL
Definition base64.cpp:111
uint32_t encodeBase64(char *out, const uint32_t olen, const uint8_t *buf, const uint32_t blen)
Encode Base64(PEM)
Definition base64.hpp:33
uint32_t decodeBase64(uint8_t *out, const uint32_t olen, const char *buf, const uint32_t blen)
Decode Base64(PEM)
Definition base64.hpp:59
uint32_t encodeBase64URL(char *out, const uint32_t olen, const uint8_t *buf, const uint32_t blen)
Encode Base64URL.
Definition base64.hpp:38
uint32_t decodeBase64URL(uint8_t *out, const uint32_t olen, const char *buf, const uint32_t blen)
Decode Base64URL.
Definition base64.hpp:65
Top level namespace of M5.
Definition base64.cpp:39
For utilities.