亚洲欧美激情四射在线日-性欧美性另类巨大-日日摸夜夜添夜夜爽出水-国产激情精品一区二区三区

上海動信微電子科技有限公司

聯(lián)系我們

13482583038

技術資料

您的當前位置:首頁 > 新聞中心 > 技術資料

DX8加密芯片應用開發(fā)手冊(三)

發(fā)布時間:2017-08-31瀏覽次數(shù):載入中...來源:上海動信微電子科技有限公司

6.??DX8_API庫概述


DX8加密芯片應用開發(fā)手冊這章節(jié)主講DX8_API函數(shù)的概述


6.1. DX8_API庫函數(shù)列表:


函數(shù)名稱

功能描述

備注

DX8系統(tǒng)函數(shù)

DX8_Version

獲取DX8_API版本信息

?

DX8_Reset

復位DX8

?

DX8_Sleep

DX8睡眠

?

Dx8_Wakeup

喚醒DX8

?

DX8_GetRandom

DX8獲取隨機數(shù)

?

DX8_VerifyPin

驗證PIN

?

DX8防抄板認證函數(shù)

DX8_HostAuth

DX8芯片計算挑戰(zhàn)響應

兩者結果一致,認證通過

Lib_HostAuth

軟件計算挑戰(zhàn)響應

DX8讀寫EEPROM函數(shù)

DX8_VerifyZone

驗證Zone Key

當分區(qū)Zone配置成密鑰訪問模式時,

需要Zone Key驗證通過后才能讀寫

DX8_WriteZone

EEPROM分區(qū)Zone

DX8_ReadZone

EEPROM分區(qū)Zone

DX82基于標識數(shù)據(jù)加解密函數(shù)

DX8_InitSessionKey

直接初始化會話密鑰

僅適用于DX82

DX8_GenSessionKey

根據(jù)標識產(chǎn)生會話密鑰

DX8_DoCrypto

數(shù)據(jù)加解密計算

DX8 SHA1計算函數(shù)

DX8_Sha1Init

SHA1初始化

僅適用于DX82

DX8_Sha1Update

SHA1數(shù)據(jù)計算

DX8_Sha1Final

獲取SHA1結果

?軟件流加密函數(shù)

Lib_InitStreamKey

初始化流加密密鑰

軟件流加密函數(shù)

Lib_StreamEncryption

流加密

Lib_StreamDecryption

流解密


6.2. DX8_API庫函數(shù)返回值定義


返回值

定義

描述

0x00

DX8_SUCCESS

成功

0x01

DX8_BUS_ERR

硬件接口總線錯誤

0x02

DX8_NO_INIT

DX8沒有執(zhí)行初始化

0x03

DX8_RESET_ERR

復位錯誤

0x04

DX8_CHIP_INFO_ERR

DX8芯片信息錯誤

0x05

DX8_RESPONSE_LEN_ERR

返回數(shù)據(jù)長度錯誤

0x06

DX8_TRANSFER_CRC_ERR

傳輸數(shù)據(jù)CRC錯誤

0x07

DX8_STATUS_DATERR

命令數(shù)據(jù)的長度或CRC錯誤

0x08

DX8_STATUS_RIGHTERR

命令執(zhí)行權限錯誤

0x09

DX8_STATUS_CMDERR

命令字節(jié)或者命令參數(shù)錯誤

0x0a

DX8_STATUS_TIMEOUT

DX8命令執(zhí)行超時錯誤

0x0b

DX8_SLEEP_ERR

DX8進入Sleep狀態(tài)錯誤

0x0c

DX8_WAKEUP_ERR

DX8喚醒錯誤

0x0d

DX8_VERIFY_PIN_ERR

PIN驗證錯誤

0x0e

DX8_VERIFY_KEY_ERR

Zone Key驗證錯誤

0x0f

DX8_WRITE_ZONE_LEN_ERR

EEPROM數(shù)據(jù)長度錯誤

0x10

DX8_READ_ZONE_LEN_ERR

EEPROM數(shù)據(jù)長度錯誤

0x11

DX8_CRYPTO_KEY_ERR

產(chǎn)生會話密鑰錯誤

0x12

DX8_CRYPTO_LEN_ERR

加解密數(shù)據(jù)長度錯誤

?


6.3. 主機隨機數(shù)產(chǎn)生


在調用DX8_VerifyPinDX8_HostAuthDX8_VerifyZone等函數(shù)時,需要主機自身產(chǎn)生隨機數(shù)字節(jié)來對DX8進行認證,如果隨機數(shù)有規(guī)律的話,會給系統(tǒng)帶來安全隱患。

C語言中使用rand()函數(shù)產(chǎn)生。為了使rand()函數(shù)產(chǎn)生真隨機數(shù),在使用rand()函數(shù)前,需要對其隨機種子進行動態(tài)初始化,在具有時間的系統(tǒng)中,一般推薦采用時間作為隨機因子,如果系統(tǒng)中沒有時間,也可采用其他盡量動態(tài)的參數(shù)作為隨機因子(CPU的心跳值),以此來增強系統(tǒng)的安全性。

?

示例代碼:


void GetSoftRandom(u8_x *random, u16_x len)

{

? u16_x i;

? srand((unsigned int)time(0) + (unsigned int)jiffies + (srand_cnt++));

? for (i=0; i

}


6.4. 程序員使用的密鑰


程序員在調用相關DX8_API庫函數(shù)需要輸入相關的密鑰參數(shù),這些密鑰由Dx8Configuration.exe配置軟件在將配置寫入USBKEY時自動產(chǎn)生,在dx8_engineer.h中,程序員需要將該頭文件內容嵌入到應用開發(fā)中,例如下:


密鑰參數(shù)

?

6.5. DX8_API庫版本


由于所使用的CPU、編譯器和操作系統(tǒng)的不同,我們會根據(jù)您的硬件環(huán)境生成與之對應的DX8_API庫文件,全力協(xié)助您完成超快速Design In,目前常用的版本如下:

?

操作系統(tǒng)

CPU

DX8_API版本

Android java

Cotex-A系列

libjdx8_spi2c.so

libjdx8_com.so(ble/wifi)

Linux C

Cotex-A系列

libcdx8_axx.a

Windows

PC

libdx8_win32.lib

libdx8_win32usb.lib

無操作系統(tǒng)

通用8051

libdx8_8051.lib

CC2540/CC2541

libdx8_cc254x.a

STM32

libdx8_stm32.lib

dsPIC33

libdx8_dsPIC33.a

xxxxx

libdx8_xxxxx.a


根據(jù)目前的應用需求,DX8_API主要有以下三種語言版本:

l? C

l? Java

l? Object C (正在開發(fā)中,敬請期待)


6.6. C語言開發(fā)

?

?C語言代碼一

?C語言代碼二

?

1.7.Java語言開發(fā)


Java語言一


Java語音二


待續(xù)......






【返回列表】
FhFA9Ar/m9aK2oVA6eea52qB9B021S0kiYOKXHxp5pt2d2JKmKjsbUfsaBkNmrUaO1Atzf61lsZba0UkQE5bqwf1pL0UqxSgSts0Gzxj/MbmcoNGBHnmWd/h16Fm3b54mhzPRaGo063AXE4TE0KMJZQ0hwkwkPqeDmj7YKiOEmYaFqjN+l6lJL87bU09DoQLiX0PhTVBPc/zUccZjlz29kEoEUGD50CY