• <b id="moyrj"></b>
  • <center id="moyrj"><dd id="moyrj"></dd></center>
  • <dfn id="moyrj"><mark id="moyrj"></mark></dfn>

      <sub id="moyrj"></sub>
      <sub id="moyrj"><ol id="moyrj"><abbr id="moyrj"></abbr></ol></sub>
      上海動(dòng)信微電子科技有限公司

      技術(shù)資料

      您的當(dāng)前位置:首頁 > 新聞中心 > 技術(shù)資料

      DX8加密芯片應(yīng)用開發(fā)手冊(cè)(三)

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

      6.??DX8_API庫概述


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


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


      函數(shù)名稱

      功能描述

      備注

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

      DX8_Version

      獲取DX8_API版本信息

      ?

      DX8_Reset

      復(fù)位DX8

      ?

      DX8_Sleep

      DX8睡眠

      ?

      Dx8_Wakeup

      喚醒DX8

      ?

      DX8_GetRandom

      DX8獲取隨機(jī)數(shù)

      ?

      DX8_VerifyPin

      驗(yàn)證PIN

      ?

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

      DX8_HostAuth

      DX8芯片計(jì)算挑戰(zhàn)響應(yīng)

      兩者結(jié)果一致,認(rèn)證通過

      Lib_HostAuth

      軟件計(jì)算挑戰(zhàn)響應(yīng)

      DX8讀寫EEPROM函數(shù)

      DX8_VerifyZone

      驗(yàn)證Zone Key

      當(dāng)分區(qū)Zone配置成密鑰訪問模式時(shí),

      需要Zone Key驗(yàn)證通過后才能讀寫

      DX8_WriteZone

      EEPROM分區(qū)Zone

      DX8_ReadZone

      EEPROM分區(qū)Zone

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

      DX8_InitSessionKey

      直接初始化會(huì)話密鑰

      僅適用于DX82

      DX8_GenSessionKey

      根據(jù)標(biāo)識(shí)產(chǎn)生會(huì)話密鑰

      DX8_DoCrypto

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

      DX8 SHA1計(jì)算函數(shù)

      DX8_Sha1Init

      SHA1初始化

      僅適用于DX82

      DX8_Sha1Update

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

      DX8_Sha1Final

      獲取SHA1結(jié)果

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

      Lib_InitStreamKey

      初始化流加密密鑰

      軟件流加密函數(shù)

      Lib_StreamEncryption

      流加密

      Lib_StreamDecryption

      流解密


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


      返回值

      定義

      描述

      0x00

      DX8_SUCCESS

      成功

      0x01

      DX8_BUS_ERR

      硬件接口總線錯(cuò)誤

      0x02

      DX8_NO_INIT

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

      0x03

      DX8_RESET_ERR

      復(fù)位錯(cuò)誤

      0x04

      DX8_CHIP_INFO_ERR

      DX8芯片信息錯(cuò)誤

      0x05

      DX8_RESPONSE_LEN_ERR

      返回?cái)?shù)據(jù)長(zhǎng)度錯(cuò)誤

      0x06

      DX8_TRANSFER_CRC_ERR

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

      0x07

      DX8_STATUS_DATERR

      命令數(shù)據(jù)的長(zhǎng)度或CRC錯(cuò)誤

      0x08

      DX8_STATUS_RIGHTERR

      命令執(zhí)行權(quán)限錯(cuò)誤

      0x09

      DX8_STATUS_CMDERR

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

      0x0a

      DX8_STATUS_TIMEOUT

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

      0x0b

      DX8_SLEEP_ERR

      DX8進(jìn)入Sleep狀態(tài)錯(cuò)誤

      0x0c

      DX8_WAKEUP_ERR

      DX8喚醒錯(cuò)誤

      0x0d

      DX8_VERIFY_PIN_ERR

      PIN驗(yàn)證錯(cuò)誤

      0x0e

      DX8_VERIFY_KEY_ERR

      Zone Key驗(yàn)證錯(cuò)誤

      0x0f

      DX8_WRITE_ZONE_LEN_ERR

      EEPROM數(shù)據(jù)長(zhǎng)度錯(cuò)誤

      0x10

      DX8_READ_ZONE_LEN_ERR

      EEPROM數(shù)據(jù)長(zhǎng)度錯(cuò)誤

      0x11

      DX8_CRYPTO_KEY_ERR

      產(chǎn)生會(huì)話密鑰錯(cuò)誤

      0x12

      DX8_CRYPTO_LEN_ERR

      加解密數(shù)據(jù)長(zhǎng)度錯(cuò)誤

      ?


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


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

      C語言中使用rand()函數(shù)產(chǎn)生。為了使rand()函數(shù)產(chǎn)生真隨機(jī)數(shù),在使用rand()函數(shù)前,需要對(duì)其隨機(jī)種子進(jìn)行動(dòng)態(tài)初始化,在具有時(shí)間的系統(tǒng)中,一般推薦采用時(shí)間作為隨機(jī)因子,如果系統(tǒng)中沒有時(shí)間,也可采用其他盡量動(dòng)態(tài)的參數(shù)作為隨機(jī)因子(CPU的心跳值),以此來增強(qiáng)系統(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. 程序員使用的密鑰


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


      密鑰參數(shù)

      ?

      6.5. DX8_API庫版本


      由于所使用的CPU、編譯器和操作系統(tǒng)的不同,我們會(huì)根據(jù)您的硬件環(huán)境生成與之對(duì)應(yīng)的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ù)目前的應(yīng)用需求,DX8_API主要有以下三種語言版本:

      l? C

      l? Java

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


      6.6. C語言開發(fā)

      ?

      ?C語言代碼一

      ?C語言代碼二

      ?

      1.7.Java語言開發(fā)


      Java語言一


      Java語音二


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






      【返回列表】
      6ogvvxJ7cZWm5SuoLqE4IGqB9B021S0k+ases/0gcTHykxuP0Eg2U9y5HuG+NNOHM6Hiq4ndLfiJLyOcBP9x2oXayJYrw9plHlHG9VCPBuKrVkdQ56ATZR4CM3IdujUltnEdTtvusi9ZlZ6fladyyMNV8ILNAZhWDUMWzMiTOlBtAB3YUmYAUDDq2lytouFDEXWQkT1yT6yqUy5/pj0hoQ==
    1. <b id="moyrj"></b>
    2. <center id="moyrj"><dd id="moyrj"></dd></center>
    3. <dfn id="moyrj"><mark id="moyrj"></mark></dfn>

        <sub id="moyrj"></sub>
        <sub id="moyrj"><ol id="moyrj"><abbr id="moyrj"></abbr></ol></sub>