Files
bishe-STM32/Hardware/base64.h
T
2026-05-01 11:15:54 +08:00

35 lines
945 B
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 字节
*/
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 解码后的数据长度
*/
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_