內(nèi)容參考cipher參考_第1頁(yè)
內(nèi)容參考cipher參考_第2頁(yè)
內(nèi)容參考cipher參考_第3頁(yè)
內(nèi)容參考cipher參考_第4頁(yè)
內(nèi)容參考cipher參考_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、CIPHERAPI 參考文檔版本01發(fā)布日期2014-12-20所有 ©非經(jīng)本公司2014。保留一切權(quán)利。市半導(dǎo)體,任何和個(gè)人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何形式。商標(biāo)、和其他商標(biāo)均為市半導(dǎo)體的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的、服務(wù)或特性等應(yīng)受公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的或使用范圍之內(nèi)。除非合同另有約定,公司對(duì)本文檔內(nèi)容不做任何明示或默示的或保證。由于版本升級(jí)或其他,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不任何明示或暗示的擔(dān)保。

2、市半導(dǎo)體市龍崗區(qū)坂田基地:518129地址:電氣生產(chǎn)中心:客戶服務(wù):客戶服務(wù)傳真:客戶服務(wù)郵箱:supportCIPHER API 參言前言概述CIPHER 是AES 三種加處理平臺(tái)提供的數(shù)據(jù)加模塊,它提供了 DES、3DES 和數(shù)字算法,主要用于對(duì)音碼流進(jìn)行加。本文以Hi3516A 描述為例,未有特殊說明,Hi3516D 與 Hi3516A 一致。版本與本文檔相對(duì)應(yīng)的版本如下。讀者對(duì)象本文檔(本指南)主要適用于以下工程師:技術(shù)支持工程師軟件開發(fā)工程師zz符號(hào)約定在本文中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下。專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)i所有 ©符號(hào)說

3、明表示有高度潛在,如果不能避免,會(huì)導(dǎo)致或嚴(yán)重。名稱版本Hi3516AV100Hi3516DV100CIPHER API 參言修訂修訂 內(nèi)容。累積了每次文檔更新的說明。最新版本的文檔包含以前所有文檔版本的更新文檔版本 01 (2014-12-20)第一次正式版本發(fā)布,在版本中增加 Hi3516D文檔版本 00B01 (2014-09-14)第一次臨時(shí)版本發(fā)布專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)ii所有 ©符號(hào)說明表示有中度或低度潛在,如果不能避免,可能導(dǎo)致人員輕微或中等。表示有潛在風(fēng)險(xiǎn),如果忽視這些文本,可能導(dǎo)致設(shè)備損壞、數(shù)據(jù)丟失、設(shè)備性能降低或不可預(yù)知的結(jié)果。表

4、示能幫助您解決某個(gè)問題或節(jié)省您的時(shí)間。表示是正文的附加信息,是對(duì)正文的強(qiáng)調(diào)和補(bǔ)充。CIPHERAPI 參考目 錄目錄前 言i1 概述11.11.21.3概述1使用流程1注意事項(xiàng)12 API 參考334數(shù)據(jù)類型9錯(cuò)誤碼14專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)iii所有 ©CIPHERAPI 參考表格目錄表格目錄表 4-1 CIPHER 模塊的錯(cuò)誤碼14專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)iv所有 ©CIPHERAPI 參考1 概述1概述1.1 概述CIPHER 是AES 三種加數(shù)字處理平臺(tái)提供的數(shù)據(jù)加模塊,它提供了 DES、3DES

5、 和算法,主要用于對(duì)音碼流進(jìn)行加。1.2 使用流程對(duì)數(shù)據(jù)進(jìn)行加的過程如下:步驟 1.步驟 2.打開 CIPHER 設(shè)備。調(diào)用接口 HI_UNF_CIPHER_Open 完成。創(chuàng)建一路 CIPHER,并獲取 CIPHER 句柄。調(diào)用接口 HI_UNF_CIPHER_CreateHandle完成。步驟 3.配置 CIPHER信息,包含密鑰、初始向量、加密算法、工作模式等信息。調(diào)用接口 HI_UNF_CIPHER_ConfigHandle 完成。對(duì)數(shù)據(jù)進(jìn)行加。調(diào)用接口 HI_UNF_CIPHER_Encrypt 或 HI_UNF_CIPHER_Decrypt步驟 4.分別完成加密或。步驟 5.步驟

6、6.銷毀 CIPHER 句柄。調(diào)用接口 HI_UNF_CIPHER_DestroyHandle 完成。關(guān)閉 CIPHER 設(shè)備。調(diào)用接口 HI_UNF_CIPHER_Close 完成。-結(jié)束1.3 注意事項(xiàng)z一次加操作的數(shù)據(jù)長(zhǎng)度必須小于 1MB。如果數(shù)據(jù)長(zhǎng)度大于或等于 1M,請(qǐng)拆分成兩部分進(jìn)行處理。CIPHER 使用用戶配置的 HI_UNF_CIPHER_BIT_WIDTH_E 值為塊進(jìn)行分塊加密。創(chuàng)建一路 CIPHER,配置屬性之后(假設(shè)配置的工作模式需要使用 IV 向量),后zz面多次調(diào)用加接口時(shí),IV 向量會(huì)依次輪流使用。專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)1所有

7、©CIPHERAPI 參考1 概述例如:用戶需依次加密數(shù)據(jù) 0,數(shù)據(jù) 1。向量為 a,b,c,d。用戶加密完數(shù)據(jù) 0 之后,數(shù)據(jù) 0 的最后一個(gè)分塊數(shù)據(jù)使用了 IV 向量中的 b 進(jìn)行加理;此時(shí),用戶再加密數(shù)據(jù) 1 時(shí),數(shù)據(jù) 1 的第一個(gè)分塊數(shù)據(jù)將會(huì)使用 IV 向量 c 進(jìn)行加密,然后依次為d,a,b,c,d。因此在加時(shí),必須要保證兩次向量使用的一致性。重新配置 CIPHER信息將設(shè)置 IV 向量從第一個(gè)開始使用。建議每次加之前都進(jìn)行配置 CIPHER信息操作,以使每次加操作都z將從 IV 向量起始位置開始執(zhí)行。專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)2所有 

8、69;CIPHERAPI 參考2 API 參考2API 參考CIPHER 提供以下 API:HI_UNF_CIPHER_Open:打開 CIPHER 設(shè)備。HI_UNF_CIPHER_Close:關(guān)閉 CIPHER 設(shè)備。HI_UNF_CIPHER_CreateHandle:創(chuàng)建一路 CIPHER,并獲取 CIPHER 句柄。HI_UNF_CIPHER_DestroyHandle:銷毀某路 CIPHER。zzzzHI_UNF_CIPHER_ConfigHandle:配置 CIPHERHI_UNF_CIPHER_Encrypt:對(duì)數(shù)據(jù)進(jìn)行加密。信息。zzHI_UNF_CIPHER_Decrypt

9、:對(duì)數(shù)據(jù)進(jìn)行。zHI_UNF_CIPHER_Open【描述】打開 CIPHER 設(shè)備?!菊Z法】HI_S32 HI_UNF_CIPHER_Open(HI_VOID);【參數(shù)】無?!痉祷刂怠俊拘枨蟆款^文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)3所有 ©返回值描述0。非 0參見錯(cuò)誤碼。CIPHERAPI 參考2 API 參考【注意】無。【舉例】無。HI_UNF_CIPHER_Close【描述】關(guān)閉 CIPHER 設(shè)備?!菊Z法】H

10、I_S32 HI_UNF_CIPHER_Close(HI_VOID);【參數(shù)】無?!痉祷刂怠俊拘枨蟆款^文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】無。【舉例】無。HI_UNF_CIPHER_CreateHandle【描述】創(chuàng)建一路 CIPHER,并獲取 CIPHER 句柄。【語法】HI_S32 HI_UNF_CIPHER_ CreateHandle(HI_HANDLE*phCipher);【參數(shù)】專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)4所有 ©返回值描述

11、0。非 0參見錯(cuò)誤碼。CIPHERAPI 參考2 API 參考【返回值】【需求】頭文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】phCipher 不能為空。該句柄將用于數(shù)據(jù)加最大支持 7 路 cipher。不支持單分組加z時(shí)的輸入。zzz【舉例】無。HI_UNF_CIPHER_DestroyHandle【描述】銷毀一路 CIPHER?!菊Z法】HI_S32 HI_UNF_CIPHER_DestroyHandle(HI_HANDLEhCipher);【參數(shù)】【返回值】專有和市信息半導(dǎo)體文檔

12、版本 01 (2014-12-20)5所有 ©返回值描述0。參數(shù)名稱描述輸入/輸出hCipherCIPHER 句柄。輸入返回值描述0。非 0參見錯(cuò)誤碼。參數(shù)名稱描述輸入/輸出phCipherCIPHER 句柄指針。輸出CIPHERAPI 參考2 API 參考【需求】頭文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】支持重復(fù)銷毀?!九e例】無。HI_UNF_CIPHER_ConfigHandle【描述】配置 CIPHER信息。詳細(xì)配置請(qǐng)參見結(jié)構(gòu)體 HI_UNF_CIPHER_CTR

13、L_S。【語法】HI_S32 HI_UNF_CIPHER_ConfigHandle(HI_HANDLE HI_UNF_CIPHER_CTRL_S* pstCtrl);【參數(shù)】hCipher,【返回值】【需求】頭文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)6所有 ©返回值描述0。非 0參見錯(cuò)誤碼。參數(shù)名稱描述輸入/輸出hCipherCIPHER 句柄。輸入pstCtrl信息指針。輸入返回值描述非 0參見錯(cuò)誤碼。CIPH

14、ERAPI 參考2 API 參考信息指針不能為空。【舉例】無。HI_UNF_CIPHER_Encrypt【描述】對(duì)數(shù)據(jù)進(jìn)行加密。【語法】HI_S32 HI_UNF_CIPHER_Encrypt(HI_HANDLE hCipher,HI_U32u32SrcPhyAddr,HI_U32 u32DestPhyAddr,HI_U32u32ByteLength);【參數(shù)】【返回值】【需求】頭文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】CIPHER 句柄必須已創(chuàng)建??啥啻握{(diào)用。數(shù)據(jù)的長(zhǎng)度至少為

15、16 字節(jié),且不能大于或等于 1024*1024 字節(jié)。zzz【舉例】無。專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)7所有 ©返回值描述0。非 0參見錯(cuò)誤碼。參數(shù)名稱描述輸入/輸出hCipherCIPHER 句柄。輸入u32SrcPhyAddr源數(shù)據(jù)(待加密的數(shù)據(jù))的物理地址。輸入u32DestPhyAddr存放加密結(jié)果的物理地址。輸出u32ByteLength數(shù)據(jù)的長(zhǎng)度(:字節(jié))。輸入CIPHERAPI 參考2 API 參考HI_UNF_CIPHER_Decrypt【描述】對(duì)數(shù)據(jù)進(jìn)行?!菊Z法】HI_S32 HI_UNF_CIPHER_Decrypt(HI_HANDL

16、E hCipher,HI_U32u32SrcPhyAddr,HI_U32 u32DestPhyAddr,HI_U32u32ByteLength);【參數(shù)】【返回值】【需求】頭文件:hi_error_ecs.h、hi_type.h、hi_unf_ecs.h、priv_cipher.h庫(kù)文件:libhi_cipher.azz【注意】CIPHER 句柄必須已創(chuàng)建??啥啻握{(diào)用。數(shù)據(jù)的長(zhǎng)度至少為 16 字節(jié),且不能大于或等于 1024x1024 字節(jié)。zzz【舉例】無。專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)8所有 ©返回值描述0。非 0參見錯(cuò)誤碼。參數(shù)名稱描述輸入/輸出hC

17、ipherCIPHER 句柄。輸入u32SrcPhyAddr源數(shù)據(jù)(待的數(shù)據(jù))的物理地址。輸入u32DestPhyAddr存放結(jié)果的物理地址。輸出u32ByteLength數(shù)據(jù)的長(zhǎng)度(:字節(jié))。輸入CIPHERAPI 參考3 數(shù)據(jù)類型3數(shù)據(jù)類型相關(guān)數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)定義如下:HI_HANDLE:定義 CIPHER 的句柄類型。HI_UNF_CIPHER_WORK_MODE_E:定義 CIPHER 工作模式。HI_UNF_CIPHER_ALG_E:定義 CIPHER 加密算法。HI_UNF_CIPHER_KEY_LENGTH_E:定義 CIPHER 密鑰長(zhǎng)度。HI_UNF_CIPHER_BIT_

18、WIDTH_E:定義 CIPHER 加密位寬。zzzzzHI_UNF_CIPHER_CTRL_S:定義 CIPHER信息結(jié)構(gòu)體。zHI_HANDLE【說明】定義 CIPHER 的句柄類型?!径x】typedef HI_U32 HI_HANDLE;【成員】無?!咀⒁馐马?xiàng)】無?!鞠嚓P(guān)數(shù)據(jù)類型及接口】無。HI_UNF_CIPHER_WORK_MODE_E【說明】定義 CIPHER 工作模式。【定義】專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)9所有 ©CIPHERAPI 參考3數(shù)據(jù)類型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;【成員】【注意事項(xiàng)】無。【相關(guān)數(shù)據(jù)類型及接口】無。HI_UNF_CIPHER_ALG_E【說明】定義 CIPHER 加密算法?!径x】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;【成員】專有和市信息半導(dǎo)體文檔版本 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數(shù)據(jù)類型【注意事項(xiàng)】無?!鞠嚓P(guān)數(shù)據(jù)類型及接口】無。HI_UNF_CIPHER_KEY_LENGTH_E【說明】定義 CIPHER 密鑰長(zhǎng)度?!径x】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,【成員】【注意事項(xiàng)】AES 的密鑰長(zhǎng)度可以為 128bit,192bit 或 256bit。z專有和市信息半導(dǎo)體文檔版本 01 (2014-12-20)11所有 ©成員名稱描述HI_UNF_CIPHER_KEY_AES_128BITAES 運(yùn)算方式下采用 128bit 密鑰長(zhǎng)度HI_UNF_CIPHER_K

23、EY_AES_192BITAES 運(yùn)算方式下采用 192bit 密鑰長(zhǎng)度HI_UNF_CIPHER_KEY_AES_256BITAES 運(yùn)算方式下采用 256bit 密鑰長(zhǎng)度HI_UNF_CIPHER_KEY_DES_3KEY3DES 運(yùn)算方式下采用 3 個(gè) keyHI_UNF_CIPHER_KEY_DES_2KEY3DES 運(yùn)算方式下采用 2 個(gè) key成員名稱描述HI_UNF_CIPHER_ALG_DESDES 算法HI_UNF_CIPHER_ALG_3DES3DES 算法HI_UNF_CIPHER_ALG_AESAES 算法CIPHERAPI 參考3 數(shù)據(jù)類型3DES 算法的密鑰長(zhǎng)度可以

24、為 2 個(gè)或 3 個(gè)key,一個(gè) key 指 DES 加密所用的密鑰, 它的長(zhǎng)度為 64bit。DES 算法該項(xiàng)無效。zz【相關(guān)數(shù)據(jù)類型及接口】無。HI_UNF_CIPHER_BIT_WIDTH_E【說明】定義 CIPHER 加密位寬?!径x】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,【成員】【注意事項(xiàng)】無。【相關(guān)數(shù)據(jù)類型及接口】無。HI_UNF_CIPHER_CTRL_S【說明】定義 CIPHER信息結(jié)構(gòu)體?!径x】typedef structhiHI_UNF_CIPHER_CTRL_S專有和市信息半導(dǎo)體文檔版本 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論