sdk-hwV1.3/lichee/linux-4.9/include/uapi/crypto/sunxi_ce.h

99 lines
2.2 KiB
C
Executable File

/*
* Copyright (C) 2011 Google, Inc.
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef _UAPI_SUNXI_CE_H_
#define _UAPI_SUNXI_CE_H_
//#include <asm/ioctl.h>
typedef unsigned char u8;
typedef unsigned int u32;
typedef signed int s32;
#define AES_MODE_ECB 0 /*ECB模式*/
#define AES_MODE_CBC 1 /*CBC模式*/
#define AES_MIN_KEY_SIZE 16
#define AES_MAX_KEY_SIZE 32
#define AES_DIR_ENCRYPT 0 /*加密*/
#define AES_DIR_DECRYPT 1 /*解密*/
#define AES_IV_LENGTH 16
#define RSA_DIR_ENCRYPT 0
#define RSA_DIR_DECRYPT 1
/*define the ctx for aes requtest*/
typedef struct {
u8 *src_buffer;
u32 src_length;
u8 *dst_buffer;
u32 dst_length;
u8 *key_buffer;
u32 key_length;
u8 *iv_buf;
u32 iv_length;
u32 aes_mode;
u32 dir;
u32 ion_flag;
unsigned long src_phy;
unsigned long dst_phy;
unsigned long iv_phy;
unsigned long key_phy;
s32 channel_id;
} crypto_aes_req_ctx_t;
/*define the ctx for rsa requtest*/
typedef struct {
u8 *sign_buffer;
u32 sign_length;
u8 *pkey_buffer;
u32 pkey_length;
u8 *dst_buffer;
u32 dst_length;
u32 dir;
u32 rsa_width;
u32 flag;
s32 channel_id;
} crypto_rsa_req_ctx_t;
/*define the ctx for hash requtest*/
typedef struct {
u8 *text_buffer;
u32 text_length;
u8 *key_buffer; // hmac
u32 key_length;
u8 *dst_buffer;
u32 dst_length;
u8 *iv_buffer;
u32 iv_length;
u32 hash_mode;
u32 ion_flag;
unsigned long text_phy;
unsigned long dst_phy;
s32 channel_id;
} crypto_hash_req_ctx_t;
/*ioctl cmd*/
#define CE_IOC_MAGIC 'C'
#define CE_IOC_REQUEST _IOR(CE_IOC_MAGIC, 0, int)
#define CE_IOC_FREE _IOW(CE_IOC_MAGIC, 1, int)
#define CE_IOC_AES_CRYPTO _IOW(CE_IOC_MAGIC, 2, crypto_aes_req_ctx_t)
#define CE_IOC_RSA_CRYPTO _IOW(CE_IOC_MAGIC, 3, crypto_rsa_req_ctx_t)
#define CE_IOC_HASH_CRYPTO _IOW(CE_IOC_MAGIC, 4, crypto_hash_req_ctx_t)
#endif /* end of _UAPI_SUNXI_CE_H_ */