<nav id="46scu"></nav>
<menu id="46scu"><strong id="46scu"></strong></menu>
  • <menu id="46scu"></menu>
  • <xmp id="46scu"><xmp id="46scu">
    上海動信微電子科技有限公司

    聯系我們

    13482583038

    技術資料

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

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

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

    6.??DX8_API庫概述


    DX8加密芯片應用開發手冊這章節主講DX8_API函數的概述


    6.1. DX8_API庫函數列表:


    函數名稱

    功能描述

    備注

    DX8系統函數

    DX8_Version

    獲取DX8_API版本信息

    ?

    DX8_Reset

    復位DX8

    ?

    DX8_Sleep

    DX8睡眠

    ?

    Dx8_Wakeup

    喚醒DX8

    ?

    DX8_GetRandom

    DX8獲取隨機數

    ?

    DX8_VerifyPin

    驗證PIN

    ?

    DX8防抄板認證函數

    DX8_HostAuth

    DX8芯片計算挑戰響應

    兩者結果一致,認證通過

    Lib_HostAuth

    軟件計算挑戰響應

    DX8讀寫EEPROM函數

    DX8_VerifyZone

    驗證Zone Key

    當分區Zone配置成密鑰訪問模式時,

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

    DX8_WriteZone

    EEPROM分區Zone

    DX8_ReadZone

    EEPROM分區Zone

    DX82基于標識數據加解密函數

    DX8_InitSessionKey

    直接初始化會話密鑰

    僅適用于DX82

    DX8_GenSessionKey

    根據標識產生會話密鑰

    DX8_DoCrypto

    數據加解密計算

    DX8 SHA1計算函數

    DX8_Sha1Init

    SHA1初始化

    僅適用于DX82

    DX8_Sha1Update

    SHA1數據計算

    DX8_Sha1Final

    獲取SHA1結果

    ?軟件流加密函數

    Lib_InitStreamKey

    初始化流加密密鑰

    軟件流加密函數

    Lib_StreamEncryption

    流加密

    Lib_StreamDecryption

    流解密


    6.2. DX8_API庫函數返回值定義


    返回值

    定義

    描述

    0x00

    DX8_SUCCESS

    成功

    0x01

    DX8_BUS_ERR

    硬件接口總線錯誤

    0x02

    DX8_NO_INIT

    DX8沒有執行初始化

    0x03

    DX8_RESET_ERR

    復位錯誤

    0x04

    DX8_CHIP_INFO_ERR

    DX8芯片信息錯誤

    0x05

    DX8_RESPONSE_LEN_ERR

    返回數據長度錯誤

    0x06

    DX8_TRANSFER_CRC_ERR

    傳輸數據CRC錯誤

    0x07

    DX8_STATUS_DATERR

    命令數據的長度或CRC錯誤

    0x08

    DX8_STATUS_RIGHTERR

    命令執行權限錯誤

    0x09

    DX8_STATUS_CMDERR

    命令字節或者命令參數錯誤

    0x0a

    DX8_STATUS_TIMEOUT

    DX8命令執行超時錯誤

    0x0b

    DX8_SLEEP_ERR

    DX8進入Sleep狀態錯誤

    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數據長度錯誤

    0x10

    DX8_READ_ZONE_LEN_ERR

    EEPROM數據長度錯誤

    0x11

    DX8_CRYPTO_KEY_ERR

    產生會話密鑰錯誤

    0x12

    DX8_CRYPTO_LEN_ERR

    加解密數據長度錯誤

    ?


    6.3. 主機隨機數產生


    在調用DX8_VerifyPin,DX8_HostAuth,DX8_VerifyZone等函數時,需要主機自身產生隨機數字節來對DX8進行認證,如果隨機數有規律的話,會給系統帶來安全隱患。

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

    ?

    示例代碼:


    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庫函數需要輸入相關的密鑰參數,這些密鑰由Dx8Configuration.exe配置軟件在將配置寫入USBKEY時自動產生,在dx8_engineer.h中,程序員需要將該頭文件內容嵌入到應用開發中,例如下:


    密鑰參數

    ?

    6.5. DX8_API庫版本


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

    ?

    操作系統

    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

    無操作系統

    通用8051

    libdx8_8051.lib

    CC2540/CC2541

    libdx8_cc254x.a

    STM32

    libdx8_stm32.lib

    dsPIC33

    libdx8_dsPIC33.a

    xxxxx

    libdx8_xxxxx.a


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

    l? C

    l? Java

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


    6.6. C語言開發

    ?

    ?C語言代碼一

    ?C語言代碼二

    ?

    1.7.Java語言開發


    Java語言一


    Java語音二


    待續......






    【返回列表】
    FgU/eHDH6K3I4KWd8ySaDGqB9B021S0kZ8v+3BksXP9eNwWAqj7CyPXvjx4gir+fn2RUFVv3ntFBFkEKscPnyW26UV8vfSC020l/FRswnB6JLyOcBP9x2toJ5+w0Gk1o
    pc加拿大开奖