ISVP-SDK  3.12.0
Ingenic Smart Video Platform SDK
结构体 | 宏定义 | 类型定义 | 枚举 | 函数
Sysutils_Cipher

加解密管理 更多...

Sysutils_Cipher 的协作图:

结构体

struct  IN_UNF_CIPHER_CTRL_S
 选择加密处理控制结构体. 更多...
 

宏定义

#define REINIT   -10
 错误码. 更多...
 
#define INIT_FAILED   -11
 初始化失败
 
#define FAILED_GETHANDLE   -12
 获取句柄失败
 
#define INVALID_PARA   -13
 无效的参数
 
#define SET_PARA_FAILED   -14
 设置参数失败
 
#define FAILURE   -15
 操作失败
 
#define SET_DATALEN_ERR   -16
 设置操作数据长度错误
 
#define EXIT_ERR   -17
 模块退出失败
 
#define UNINIT   -18
 模块未初始化
 
#define FAILED_DESHANDLE   -19
 销毁句柄失败
 

类型定义

typedef enum IN_UNF_CIPHER_ALG_E IN_UNF_CIPHER_ALG
 选择加密算法. 更多...
 
typedef enum IN_UNF_CIPHER_WORK_MODE_E IN_UNF_CIPHER_WORK_MODE
 选择加密模式. 更多...
 
typedef enum IN_UNF_CIPHER_KEY_LENGTH_E IN_UNF_CIPHER_KEY_LENGTH
 选择加密使用的密钥长度. 更多...
 
typedef enum IN_UNF_CIPHER_BIT_WIDTH_E IN_UNF_CIPHER_BIT_WIDTH
 选择加密算法一次处理的数据长度. 更多...
 
typedef struct IN_UNF_CIPHER_CTRL_S IN_UNF_CIPHER_CTRL
 选择加密处理控制结构体.
 

枚举

enum  IN_UNF_CIPHER_ALG_E { IN_UNF_CIPHER_ALG_AES = 0x0, IN_UNF_CIPHER_ALG_DES = 0x1 }
 选择加密算法. 更多...
 
enum  IN_UNF_CIPHER_WORK_MODE_E { IN_UNF_CIPHER_WORK_MODE_ECB = 0x0, IN_UNF_CIPHER_WORK_MODE_CBC = 0x1, IN_UNF_CIPHER_WORK_MODE_OTHER = 0x2 }
 选择加密模式. 更多...
 
enum  IN_UNF_CIPHER_KEY_LENGTH_E { IN_UNF_CIPHER_KEY_AES_128BIT = 0x0 }
 选择加密使用的密钥长度. 更多...
 
enum  IN_UNF_CIPHER_BIT_WIDTH_E { IN_UNF_CIPHER_BIT_WIDTH_128BIT = 0x0 }
 选择加密算法一次处理的数据长度. 更多...
 

函数

int SU_CIPHER_Init (void)
 加密模块打开接口. 更多...
 
int SU_CIPHER_Exit (void)
 加密模块关闭接口. 更多...
 
int SU_CIPHER_CreateHandle (void)
 获得加密模块句柄接口. 更多...
 
int SU_CIPHER_DestroyHandle (int fd)
 销毁加密模块句柄. 更多...
 
int SU_CIPHER_ConfigHandle (int hCipher, IN_UNF_CIPHER_CTRL *Ctrl)
 对加密模块进行配置. 更多...
 
int SU_CIPHER_Encrypt (int hCipher, unsigned int *srcAddr, unsigned int *dstAddr, unsigned int dataLen)
 开始进行数据的加密. 更多...
 
int SU_CIPHER_Decrypt (int hCipher, unsigned int *srcAddr, unsigned int *dstAddr, unsigned int dataLen)
 开始进行数据的解密. 更多...
 

详细描述

加解密管理

宏定义说明

#define REINIT   -10

错误码.

重复初始化

类型定义说明

选择加密算法.

备注
支持AES和DES两种加密算法.

选择加密算法一次处理的数据长度.

备注
受硬件的限制,现阶段只支持一次处理128bit长度的数据.

选择加密使用的密钥长度.

备注
受硬件的限制,现阶段只支持128bit长度的KEY.

选择加密模式.

备注
支持CBC和ECB两种加密模式.

枚举类型说明

选择加密算法.

备注
支持AES和DES两种加密算法.

选择加密算法一次处理的数据长度.

备注
受硬件的限制,现阶段只支持一次处理128bit长度的数据.

选择加密使用的密钥长度.

备注
受硬件的限制,现阶段只支持128bit长度的KEY.

选择加密模式.

备注
支持CBC和ECB两种加密模式.

函数说明

int SU_CIPHER_ConfigHandle ( int  hCipher,
IN_UNF_CIPHER_CTRL Ctrl 
)

对加密模块进行配置.

参数
[in]hCipher需要进行配置的句柄.
[in]Ctrl带有配置信息的结构体.
返回值
0成功.
非0失败.
备注
无.
注意
无.
int SU_CIPHER_CreateHandle ( void  )

获得加密模块句柄接口.

参数
无.
返回值
成功返回句柄.
失败retval < 0.
备注
无.
注意
该函数可以多次调用,每调用一次都会返回一个句柄. 当调用的N次该函数之后,需要调用N次SU_CIPHER_DestroyHandle()才可以 将所有的句柄销毁.
int SU_CIPHER_Decrypt ( int  hCipher,
unsigned int *  srcAddr,
unsigned int *  dstAddr,
unsigned int  dataLen 
)

开始进行数据的解密.

参数
[in]hCipher需要进行操作的句柄.
[in]srcAddr需要进行解密的数据源地址.
[in]dstAddr解密完成之后的数据存放地址.
[in]dataLen需要处理的数据长度.
返回值
0成功.
非0失败.
备注
无.
注意
解密的数据长度dataLen最大不要超过1Mbyte (1024*1024).
int SU_CIPHER_DestroyHandle ( int  fd)

销毁加密模块句柄.

参数
[in]fd需要销毁的句柄
返回值
0成功.
非0失败.
备注
无.
注意
该函数可以多次调用,每调用一次都会销毁一个句柄.
int SU_CIPHER_Encrypt ( int  hCipher,
unsigned int *  srcAddr,
unsigned int *  dstAddr,
unsigned int  dataLen 
)

开始进行数据的加密.

参数
[in]hCipher需要进行操作的句柄.
[in]srcAddr需要进行加密的数据源地址.
[in]dstAddr加密完成之后的数据存放地址.
[in]dataLen需要处理的数据长度.
返回值
0成功.
非0失败.
备注
无.
注意
加密的数据长度dataLen最大不要超过1Mbyte (1024*1024).
int SU_CIPHER_Exit ( void  )

加密模块关闭接口.

参数
无.
返回值
0成功.
非0失败.
备注
无.
注意
无.
int SU_CIPHER_Init ( void  )

加密模块打开接口.

参数
无.
返回值
0成功.
非0失败.
备注
无.
注意
无.