37 lines
1.1 KiB
C
37 lines
1.1 KiB
C
#ifndef _BASE64_H_
|
|
#define _BASE64_H_
|
|
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
/**
|
|
* @brief Base64编码
|
|
* @param input 输入数据
|
|
* @param input_length 输入数据长度
|
|
* @param output 输出缓冲区(需要预分配足够空间)
|
|
* @return 编码后的字符串长度
|
|
*
|
|
* 注意:output缓冲区大小至少需要 ((input_length + 2) / 3) * 4 + 1 字节
|
|
*/
|
|
// 函数作用:将二进制输入数据编码为 Base64 字符串并返回输出长度。
|
|
uint32_t base64_encode(const uint8_t* input, uint32_t input_length, char* output);
|
|
|
|
/**
|
|
* @brief Base64解码
|
|
* @param input 输入Base64字符串
|
|
* @param input_length 输入字符串长度
|
|
* @param output 输出缓冲区
|
|
* @return 解码后的数据长度
|
|
*/
|
|
// 函数作用:将 Base64 字符串解码为二进制数据并返回解码长度。
|
|
uint32_t base64_decode(const char* input, uint32_t input_length, uint8_t* output);
|
|
|
|
/**
|
|
* @brief 计算Base64编码后的长度
|
|
* @param input_length 输入数据长度
|
|
* @return 编码后的长度(不含结束符)
|
|
*/
|
|
#define BASE64_ENCODE_SIZE(len) (((len) + 2) / 3 * 4)
|
|
|
|
#endif // _BASE64_H_
|