




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CIPHERAPI 参考文档版本01发布日期2014-12-20所有 ©非经本公司2014。保留一切权利。市半导体,任何和个人不得擅自摘抄、本文档内容的部分或全部,并不得以任何形式。商标、和其他商标均为市半导体的商标。本文档提及的其他所有商标或商标,由各自的所有人拥有。注意您的、服务或特性等应受公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的或使用范围之内。除非合同另有约定,公司对本文档内容不做任何明示或默示的或保证。由于版本升级或其他,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不任何明示或暗示的担保。
2、市半导体市龙岗区坂田基地:518129地址:电气生产中心:客户服务:客户服务传真:客户服务邮箱:supportCIPHER API 参言前言概述CIPHER 是AES 三种加处理平台提供的数据加模块,它提供了 DES、3DES 和数字算法,主要用于对音码流进行加。本文以Hi3516A 描述为例,未有特殊说明,Hi3516D 与 Hi3516A 一致。版本与本文档相对应的版本如下。读者对象本文档(本指南)主要适用于以下工程师:技术支持工程师软件开发工程师zz符号约定在本文中可能出现下列标志,它们所代表的含义如下。专有和市信息半导体文档版本 01 (2014-12-20)i所有 ©符号说
3、明表示有高度潜在,如果不能避免,会导致或严重。名称版本Hi3516AV100Hi3516DV100CIPHER API 参言修订修订 内容。累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新文档版本 01 (2014-12-20)第一次正式版本发布,在版本中增加 Hi3516D文档版本 00B01 (2014-09-14)第一次临时版本发布专有和市信息半导体文档版本 01 (2014-12-20)ii所有 ©符号说明表示有中度或低度潜在,如果不能避免,可能导致人员轻微或中等。表示有潜在风险,如果忽视这些文本,可能导致设备损坏、数据丢失、设备性能降低或不可预知的结果。表
4、示能帮助您解决某个问题或节省您的时间。表示是正文的附加信息,是对正文的强调和补充。CIPHERAPI 参考目 录目录前 言i1 概述11.11.21.3概述1使用流程1注意事项12 API 参考334数据类型9错误码14专有和市信息半导体文档版本 01 (2014-12-20)iii所有 ©CIPHERAPI 参考表格目录表格目录表 4-1 CIPHER 模块的错误码14专有和市信息半导体文档版本 01 (2014-12-20)iv所有 ©CIPHERAPI 参考1 概述1概述1.1 概述CIPHER 是AES 三种加数字处理平台提供的数据加模块,它提供了 DES、3DES
5、 和算法,主要用于对音码流进行加。1.2 使用流程对数据进行加的过程如下:步骤 1.步骤 2.打开 CIPHER 设备。调用接口 HI_UNF_CIPHER_Open 完成。创建一路 CIPHER,并获取 CIPHER 句柄。调用接口 HI_UNF_CIPHER_CreateHandle完成。步骤 3.配置 CIPHER信息,包含密钥、初始向量、加密算法、工作模式等信息。调用接口 HI_UNF_CIPHER_ConfigHandle 完成。对数据进行加。调用接口 HI_UNF_CIPHER_Encrypt 或 HI_UNF_CIPHER_Decrypt步骤 4.分别完成加密或。步骤 5.步骤
6、6.销毁 CIPHER 句柄。调用接口 HI_UNF_CIPHER_DestroyHandle 完成。关闭 CIPHER 设备。调用接口 HI_UNF_CIPHER_Close 完成。-结束1.3 注意事项z一次加操作的数据长度必须小于 1MB。如果数据长度大于或等于 1M,请拆分成两部分进行处理。CIPHER 使用用户配置的 HI_UNF_CIPHER_BIT_WIDTH_E 值为块进行分块加密。创建一路 CIPHER,配置属性之后(假设配置的工作模式需要使用 IV 向量),后zz面多次调用加接口时,IV 向量会依次轮流使用。专有和市信息半导体文档版本 01 (2014-12-20)1所有
7、©CIPHERAPI 参考1 概述例如:用户需依次加密数据 0,数据 1。向量为 a,b,c,d。用户加密完数据 0 之后,数据 0 的最后一个分块数据使用了 IV 向量中的 b 进行加理;此时,用户再加密数据 1 时,数据 1 的第一个分块数据将会使用 IV 向量 c 进行加密,然后依次为d,a,b,c,d。因此在加时,必须要保证两次向量使用的一致性。重新配置 CIPHER信息将设置 IV 向量从第一个开始使用。建议每次加之前都进行配置 CIPHER信息操作,以使每次加操作都z将从 IV 向量起始位置开始执行。专有和市信息半导体文档版本 01 (2014-12-20)2所有
8、69;CIPHERAPI 参考2 API 参考2API 参考CIPHER 提供以下 API:HI_UNF_CIPHER_Open:打开 CIPHER 设备。HI_UNF_CIPHER_Close:关闭 CIPHER 设备。HI_UNF_CIPHER_CreateHandle:创建一路 CIPHER,并获取 CIPHER 句柄。HI_UNF_CIPHER_DestroyHandle:销毁某路 CIPHER。zzzzHI_UNF_CIPHER_ConfigHandle:配置 CIPHERHI_UNF_CIPHER_Encrypt:对数据进行加密。信息。zzHI_UNF_CIPHER_Decrypt
9、:对数据进行。zHI_UNF_CIPHER_Open【描述】打开 CIPHER 设备。【语法】HI_S32 HI_UNF_CIPHER_Open(HI_VOID);【参数】无。【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz专有和市信息半导体文档版本 01 (2014-12-20)3所有 ©返回值描述0。非 0参见错误码。CIPHERAPI 参考2 API 参考【注意】无。【举例】无。HI_UNF_CIPHER_Close【描述】关闭 CIPHER 设备。【语法】H
10、I_S32 HI_UNF_CIPHER_Close(HI_VOID);【参数】无。【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】无。【举例】无。HI_UNF_CIPHER_CreateHandle【描述】创建一路 CIPHER,并获取 CIPHER 句柄。【语法】HI_S32 HI_UNF_CIPHER_ CreateHandle(HI_HANDLE*phCipher);【参数】专有和市信息半导体文档版本 01 (2014-12-20)4所有 ©返回值描述
11、0。非 0参见错误码。CIPHERAPI 参考2 API 参考【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】phCipher 不能为空。该句柄将用于数据加最大支持 7 路 cipher。不支持单分组加z时的输入。zzz【举例】无。HI_UNF_CIPHER_DestroyHandle【描述】销毁一路 CIPHER。【语法】HI_S32 HI_UNF_CIPHER_DestroyHandle(HI_HANDLEhCipher);【参数】【返回值】专有和市信息半导体文档
12、版本 01 (2014-12-20)5所有 ©返回值描述0。参数名称描述输入/输出hCipherCIPHER 句柄。输入返回值描述0。非 0参见错误码。参数名称描述输入/输出phCipherCIPHER 句柄指针。输出CIPHERAPI 参考2 API 参考【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】支持重复销毁。【举例】无。HI_UNF_CIPHER_ConfigHandle【描述】配置 CIPHER信息。详细配置请参见结构体 HI_UNF_CIPHER_CTR
13、L_S。【语法】HI_S32 HI_UNF_CIPHER_ConfigHandle(HI_HANDLE HI_UNF_CIPHER_CTRL_S* pstCtrl);【参数】hCipher,【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】专有和市信息半导体文档版本 01 (2014-12-20)6所有 ©返回值描述0。非 0参见错误码。参数名称描述输入/输出hCipherCIPHER 句柄。输入pstCtrl信息指针。输入返回值描述非 0参见错误码。CIPH
14、ERAPI 参考2 API 参考信息指针不能为空。【举例】无。HI_UNF_CIPHER_Encrypt【描述】对数据进行加密。【语法】HI_S32 HI_UNF_CIPHER_Encrypt(HI_HANDLE hCipher,HI_U32u32SrcPhyAddr,HI_U32 u32DestPhyAddr,HI_U32u32ByteLength);【参数】【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】CIPHER 句柄必须已创建。可多次调用。数据的长度至少为
15、16 字节,且不能大于或等于 1024*1024 字节。zzz【举例】无。专有和市信息半导体文档版本 01 (2014-12-20)7所有 ©返回值描述0。非 0参见错误码。参数名称描述输入/输出hCipherCIPHER 句柄。输入u32SrcPhyAddr源数据(待加密的数据)的物理地址。输入u32DestPhyAddr存放加密结果的物理地址。输出u32ByteLength数据的长度(:字节)。输入CIPHERAPI 参考2 API 参考HI_UNF_CIPHER_Decrypt【描述】对数据进行。【语法】HI_S32 HI_UNF_CIPHER_Decrypt(HI_HANDL
16、E hCipher,HI_U32u32SrcPhyAddr,HI_U32 u32DestPhyAddr,HI_U32u32ByteLength);【参数】【返回值】【需求】头文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h库文件:libhi_cipher.azz【注意】CIPHER 句柄必须已创建。可多次调用。数据的长度至少为 16 字节,且不能大于或等于 1024x1024 字节。zzz【举例】无。专有和市信息半导体文档版本 01 (2014-12-20)8所有 ©返回值描述0。非 0参见错误码。参数名称描述输入/输出hC
17、ipherCIPHER 句柄。输入u32SrcPhyAddr源数据(待的数据)的物理地址。输入u32DestPhyAddr存放结果的物理地址。输出u32ByteLength数据的长度(:字节)。输入CIPHERAPI 参考3 数据类型3数据类型相关数据类型、数据结构定义如下:HI_HANDLE:定义 CIPHER 的句柄类型。HI_UNF_CIPHER_WORK_MODE_E:定义 CIPHER 工作模式。HI_UNF_CIPHER_ALG_E:定义 CIPHER 加密算法。HI_UNF_CIPHER_KEY_LENGTH_E:定义 CIPHER 密钥长度。HI_UNF_CIPHER_BIT_
18、WIDTH_E:定义 CIPHER 加密位宽。zzzzzHI_UNF_CIPHER_CTRL_S:定义 CIPHER信息结构体。zHI_HANDLE【说明】定义 CIPHER 的句柄类型。【定义】typedef HI_U32 HI_HANDLE;【成员】无。【注意事项】无。【相关数据类型及接口】无。HI_UNF_CIPHER_WORK_MODE_E【说明】定义 CIPHER 工作模式。【定义】专有和市信息半导体文档版本 01 (2014-12-20)9所有 ©CIPHERAPI 参考3数据类型typedef enum hiHI_UNF_CIPHER_WORK_MODE_EHI_UNF
19、_CIPHER_WORK_MODE_ECB HI_UNF_CIPHER_WORK_MODE_CBC HI_UNF_CIPHER_WORK_MODE_CFB HI_UNF_CIPHER_WORK_MODE_OFB HI_UNF_CIPHER_WORK_MODE_CTRHI_UNF_CIPHER_WORK_MODE_BUTT=0x0,0x1,0x2,0x3,0x4,=0x5;【成员】【注意事项】无。【相关数据类型及接口】无。HI_UNF_CIPHER_ALG_E【说明】定义 CIPHER 加密算法。【定义】typedef enum hiHI_UNF_CIPHER_ALG_EHI_UNF_CIPHE
20、R_ALG_DES = 0x0, HI_UNF_CIPHER_ALG_3DES = 0x1, HI_UNF_CIPHER_ALG_AES = 0x2, HI_UNF_CIPHER_ALG_BUTT = 0x3HI_UNF_CIPHER_ALG_E;【成员】专有和市信息半导体文档版本 01 (2014-12-20)10所有 ©成员名称描述HI_UNF_CIPHER_WORK_MODE_ECBECB(Electronic CodeBook)模式HI_UNF_CIPHER_WORK_MODE_CBCCBC(Cipher Block Chaining)模式HI_UNF_CIPHER_WORK
21、_MODE_CFBCFB(Cipher FeedBack)模式HI_UNF_CIPHER_WORK_MODE_OFBOFB(Output FeedBack)模式HI_UNF_CIPHER_WORK_MODE_CTRCTR(Counter)模式CIPHERAPI 参考3数据类型【注意事项】无。【相关数据类型及接口】无。HI_UNF_CIPHER_KEY_LENGTH_E【说明】定义 CIPHER 密钥长度。【定义】typedef enum hiHI_UNF_CIPHER_KEY_LENGTH_EHI_UNF_CIPHER_KEY_AES_128BIT HI_UNF_CIPHER_KEY_AES_
22、192BIT HI_UNF_CIPHER_KEY_AES_256BIT HI_UNF_CIPHER_KEY_DES_3KEY = HI_UNF_CIPHER_KEY_DES_2KEY =HI_UNF_CIPHER_KEY_LENGTH_E;=0x0,0x1,0x2,0x2,0x3,【成员】【注意事项】AES 的密钥长度可以为 128bit,192bit 或 256bit。z专有和市信息半导体文档版本 01 (2014-12-20)11所有 ©成员名称描述HI_UNF_CIPHER_KEY_AES_128BITAES 运算方式下采用 128bit 密钥长度HI_UNF_CIPHER_K
23、EY_AES_192BITAES 运算方式下采用 192bit 密钥长度HI_UNF_CIPHER_KEY_AES_256BITAES 运算方式下采用 256bit 密钥长度HI_UNF_CIPHER_KEY_DES_3KEY3DES 运算方式下采用 3 个 keyHI_UNF_CIPHER_KEY_DES_2KEY3DES 运算方式下采用 2 个 key成员名称描述HI_UNF_CIPHER_ALG_DESDES 算法HI_UNF_CIPHER_ALG_3DES3DES 算法HI_UNF_CIPHER_ALG_AESAES 算法CIPHERAPI 参考3 数据类型3DES 算法的密钥长度可以
24、为 2 个或 3 个key,一个 key 指 DES 加密所用的密钥, 它的长度为 64bit。DES 算法该项无效。zz【相关数据类型及接口】无。HI_UNF_CIPHER_BIT_WIDTH_E【说明】定义 CIPHER 加密位宽。【定义】typedef enum hiHI_UNF_CIPHER_BIT_WIDTH_EHI_UNF_CIPHER_BIT_WIDTH_64BIT HI_UNF_CIPHER_BIT_WIDTH_8BIT HI_UNF_CIPHER_BIT_WIDTH_1BIT HI_UNF_CIPHER_BIT_WIDTH_128BITHI_UNF_CIPHER_BIT_WIDTH_E;= 0x0,= 0x1,= 0x2,=0x3,【成员】【注意事项】无。【相关数据类型及接口】无。HI_UNF_CIPHER_CTRL_S【说明】定义 CIPHER信息结构体。【定义】typedef structhiHI_UNF_CIPHER_CTRL_S专有和市信息半导体文档版本 01 (2014-12-20)12所有 ©成员名称描述HI_UNF_CIPHER_BIT_WIDTH_64BIT64bit 位宽HI_UNF_CIPHER_BIT_WIDTH_8BIT8bit 位宽HI_UNF_CIPHER_BIT_WIDTH_1BI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版蔬菜种植基地农业机械化推广承包协议
- 2025年度草原生态修复租赁项目合同
- 2025年度绿色蔬菜直销合作供应合同范本
- 2025年度特殊需求包车客运服务协议书
- 2025版节能涂料工程承包合同
- 2025年度文化创意产品动产质押融资协议
- 2025褚贞离婚协议书及财产分割与子女抚养费协议
- 金融行业CRM数字化升级在金融机构客户服务创新中的应用
- 2025年度节能环保型标准砖批发销售合同
- 产业园区建设资金申请报告2025年规划
- 文昌顺发畜牧有限公司养猪场项目 环评报告
- 四年级下册递等式计算练习400道及答案
- 2024年华能甘肃能源开发有限公司招聘笔试参考题库含答案解析
- 助产士在产时并发症处理中的助产安全
- 单片机的看门狗
- 市场营销(第2版)课件全套 王永贵 第1-17章-市场与市场营销概述及发展-顾客营销学
- 高中数学 人教A版 必修一 《集合与常用逻辑用语》 1.1集合的概念
- 深圳某电厂锅炉维修改造施工组织设计-new(常用版)
- GB/T 4950-2021锌合金牺牲阳极
- GB/T 15171-1994软包装件密封性能试验方法
- 证券从业考试基础模拟卷二(题目+解析)
评论
0/150
提交评论