849ba39544
1. add the wx_airsync_prf.h which have been define the sturcter data has been used for the wechat airsync profile database 2. add the wx_airsync_prf.c file 3. add the app_airsync_md5.c file 4. add the app_airsync_prf.c 5. add epb.c file 6. add epb_mmbp.c 7. add mpbledemo2.c 8. add wechar_crc.c 9 add wechat_aes.c 10. add app_airsync_md5.h 11. add app_airsync_prf.h 12. add app_wechat_util.h 13. add epb.h 14. add epb_mmbp.h 15 add mpbledemo2.h 16 add wechar_crc.h 17 add wechat_aes.h
69 lines
2.7 KiB
C
69 lines
2.7 KiB
C
///////////////////////////////////////////////////////////////////////////////
|
||
// 文 件 名:AES.h
|
||
// 描 述:AES加密算法
|
||
// 创 建 人:Liangbofu
|
||
// 创建日期:2009-07-17
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
#ifndef __WECHAT_AES_H
|
||
#define __WECHAT_AES_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
// 以bit为单位的密钥长度,只能为 128,192 和 256 三种
|
||
#define AES_KEY_LENGTH 128
|
||
|
||
// 加解密模式
|
||
#define AES_MODE_ECB 0 // 电子密码本模式(一般模式)
|
||
#define AES_MODE_CBC 1 // 密码分组链接模式
|
||
#define AES_MODE AES_MODE_CBC
|
||
|
||
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
// 函数名: AES_Init
|
||
// 描述: 初始化,在此执行扩展密钥操作。
|
||
// 输入参数: pKey -- 原始密钥,其长度必须为 AES_KEY_LENGTH/8 字节。
|
||
// 输出参数: 无。
|
||
// 返回值: 无。
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
void AES_Init(const void *pKey);
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
// 函数名: AES_Encrypt
|
||
// 描述: 加密数据
|
||
// 输入参数: pPlainText -- 明文,即需加密的数据,其长度为nDataLen字节。
|
||
// nDataLen -- 数据长度,以字节为单位,必须为AES_KEY_LENGTH/8的整倍数。
|
||
// pIV -- 初始化向量,如果使用ECB模式,可设为NULL。
|
||
// 输出参数: pCipherText -- 密文,即由明文加密后的数据,可以与pPlainText相同。
|
||
// 返回值: 无。
|
||
//////////////////////////////////////////////////////////////////////////
|
||
void AES_Encrypt(const unsigned char *pPlainText, unsigned char *pCipherText,
|
||
unsigned int nDataLen, const unsigned char *pIV);
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
// 函数名: AES_Decrypt
|
||
// 描述: 解密数据
|
||
// 输入参数: pCipherText -- 密文,即需解密的数据,其长度为nDataLen字节。
|
||
// nDataLen -- 数据长度,以字节为单位,必须为AES_KEY_LENGTH/8的整倍数。
|
||
// pIV -- 初始化向量,如果使用ECB模式,可设为NULL。
|
||
// 输出参数: pPlainText -- 明文,即由密文解密后的数据,可以与pCipherText相同。
|
||
// 返回值: 无。
|
||
//////////////////////////////////////////////////////////////////////////
|
||
void AES_Decrypt(unsigned char *pPlainText, const unsigned char *pCipherText,
|
||
unsigned int nDataLen, const unsigned char *pIV);
|
||
|
||
//对数据进行解密操作,成功返回1,失败返回0
|
||
unsigned char app_data_encode_aes(char *input, char *output, unsigned short *slen);
|
||
unsigned char app_data_decode_aes(unsigned char *input, char *output, unsigned short *slen);
|
||
unsigned int AES_Encrypt_PKCS7(const unsigned char *pPlainText, unsigned char *pCipherText,
|
||
unsigned int nDataLen, const unsigned char *pIV);
|
||
unsigned int AES_get_length(unsigned int length);
|
||
void AES_free(unsigned char* p);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
|
||
#endif // __WECHAT_AES_H
|
||
|