54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __AES_H__
 | ||
| #define __AES_H__
 | ||
| 
 | ||
| #ifdef __cplusplus
 | ||
| extern "C"
 | ||
| {
 | ||
| #endif
 | ||
| 
 | ||
| #define AES_MIN_KEY_SIZE    16
 | ||
| #define AES_MAX_KEY_SIZE    32
 | ||
| 
 | ||
| #define AES_BLOCK_SIZE        16
 | ||
| 
 | ||
| typedef unsigned char    u8;
 | ||
| typedef signed char    s8;
 | ||
| typedef signed short    s16;
 | ||
| typedef unsigned short    u16;
 | ||
| typedef signed int    s32;
 | ||
| typedef unsigned int    u32;
 | ||
| typedef signed long long    s64;
 | ||
| typedef unsigned long long    u64;
 | ||
| typedef u16        __le16;
 | ||
| typedef u32        __le32;
 | ||
| 
 | ||
| #define E_KEY    (&ctx->buf[0])
 | ||
| #define D_KEY    (&ctx->buf[60])
 | ||
| #define le32_to_cpu
 | ||
| #define cpu_to_le32
 | ||
| 
 | ||
| struct aes_ctx
 | ||
| {
 | ||
| 	int key_length;
 | ||
| 	u32 buf[120];
 | ||
| };
 | ||
| 
 | ||
| 
 | ||
| void gen_tabs (void);
 | ||
| int aes_set_key(struct aes_ctx * ctx, const u8 *in_key, unsigned int key_len);
 | ||
| void aes_encrypt(struct aes_ctx * ctx, u8 *out, const u8 *in);
 | ||
| void aes_decrypt(struct aes_ctx * ctx, u8 *out, const u8 *in);
 | ||
| int AesEncrypt(struct aes_ctx * ctx,unsigned char* in, unsigned char* result, int len);
 | ||
| int AesDecrypt(struct aes_ctx * ctx,unsigned char* in,unsigned char* result);
 | ||
| /*	如果out为null则返回加密缓冲区需要的字节长度,否则返回加密后实际使用out的字节长度	*/
 | ||
| s64 _AESEncrypt(struct aes_ctx *ctx, unsigned char* out, const unsigned char* in, s64 inlen);
 | ||
| /*	成功返回0,否则返回非0值	*/
 | ||
| int _AESDecrypt(struct aes_ctx *ctx, unsigned char* out, const unsigned char* in, s64 inlen);
 | ||
| 
 | ||
| #ifdef __cplusplus
 | ||
| }
 | ||
| #endif
 | ||
| 
 | ||
| #endif
 | ||
| 
 |