base64coder.h

来自「在嵌入式linux下发送邮件的SMTP客户端程序。基于mips平台可直接使用」· C头文件 代码 · 共 70 行

H
70
字号

#ifndef __BASE64CODER_H__
#define __BASE64CODER_H__
#include "Const.h"

/////////////////////////////// 类定义///////////////////////////////////////

typedef struct 
{
	unsigned char	nData[4];
	int				nSize;		
} TempBucket;
	
typedef struct  
{

	//变量
	unsigned char*	m_pDBuffer;					//保存解码数据
	unsigned char*	m_pEBuffer;					//保存解码数据
	int				m_nDBufLen;					//解码数据的长度
	int				m_nEBufLen;					//编码数据的长度
	int				m_nDDataLen;				
	int				m_nEDataLen;				
	char			m_DecodeTable[256];			
	BOOL			m_Init;	
	
} Base64Coder;

	//定义对外接口函数
	void	 Clear();
	
	//初始化和释放函数函数
	void	 Base64CoderInit(Base64Coder *BaseCoder);
	void	 Base64CoderRealse(Base64Coder *BaseCoder);

	//对指定的信息进行编码
	void	 EncodeBase(Base64Coder *BaseCoder, const unsigned char*, int);
	void	 Encode(Base64Coder *BaseCoder, const char* sMessage);

	//对指定的信息进行解码
	void	 DecodeBase(Base64Coder *BaseCoder, const unsigned char*, int);	
	void	 Decode(Base64Coder *BaseCoder, const char*  sMessage);

	//获取编码后的信息
	char*	 EncodedMessage(Base64Coder BaseCoder); 
	long	 EncodedMessageSize(Base64Coder BaseCoder); 

	//获取解码后的信息
	char*	 DecodedMessage(Base64Coder BaseCoder);
	long	 DecodedMessageSize(Base64Coder BaseCoder);
	
	
	//初始化编解码原始数据
	void	 AllocEncode(Base64Coder *BaseCoder, int nSize);
	void	 AllocDecode(Base64Coder *BaseCoder, int nSize);

	//根据传入的数据填充编解码缓冲区
	void	 SetEncodeBuffer(Base64Coder *BaseCoder, const unsigned char* pBuffer, int nBufLen);
	void	 SetDecodeBuffer(Base64Coder *BaseCoder, const unsigned char* pBuffer, int nBufLen);
	void	_EncodeToBuffer(TempBucket* Decode, unsigned char* pBuffer);
	long	_DecodeToBuffer(TempBucket* Decode, unsigned char* pBuffer);
	void	_EncodeRaw(TempBucket* Data, const TempBucket* Decode);
	void	_DecodeRaw(TempBucket* Data, const TempBucket* Decode);

	//判断数据是否是合法的字符
	BOOL	_IsBadMimeChar(unsigned char );
	void	_Init(Base64Coder *BaseCoder);

#endif //__BASE64CODER_H__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?