<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-09-01瀏覽次數:載入中...來源:上海動信微電子科技有限公司


    7.??? DX8_API庫函數詳細介紹

    這章節主講DX8_API函數的詳細介紹的第一部分系統函數


    7.1. 系統函數:


    7.1.1. 獲取API版本


    u8_x *DX8_Version(void);

    功能描述: 獲取DX8_API版本

    參數:? ? ? ?void

    返回值:?? 字符串指針

    示例代碼:;

    char *apiVersion = DX8_Version();

    printf(“Version = %s\n”, apiVersion);


    7.1.2. 復位設備


    u8_x? DX8_Reset(void);

    功能描述:復位DX8芯片,并獲取芯片的配置信息

    參數:? ? ? void

    返回值:? 成功返回0,否則返回錯誤代碼

    示例代碼:

    u8_x rv;

    rv = DX8_Reset();

    if (rv) {

    ?? printf(“Reset device failed, rv = 0x%.2x\n”, rv);

    ?? return rv;

    }

    DX8_Reset獲取DX8芯片的配置信息存儲在CHIP_INFO dx8_info結構體中,dx8_info在庫中已經定義,在DX8_API.h頭文件extern 出來了,用戶可以直接訪問dx8_info來獲取芯片的信息,如SN、UIDZone的配置模式等:

    ? ? ? CHIP_INFO結構體C定義:??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_INFO結構體Java類定義:

    ? ? ? ?? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ??? ? ? ? ? ? ? ?


    DX81/DX82芯片基本信息列表:


    Product

    Type

    PageSize

    (Bytes)

    ZoneNum

    ZoneSize

    (Bytes)

    EEPROM

    (Bits)

    DX81系列芯片

    DX81C01

    0x10

    16

    4

    32

    1K

    DX81C02

    0x11

    4

    64

    2K

    DX81C04

    0x12

    4

    128

    4K

    DX81C08

    0x13

    32

    8

    128

    8K

    DX81C16

    0x14

    16

    128

    16K

    DX81C32

    0x15

    16

    256

    32K

    DX81C64

    0x16

    16

    512

    64K

    DX81C128

    0x17

    64

    16

    1024

    128K

    DX81C256

    0x18

    16

    2048

    256K

    DX82系列芯片

    DX82C01

    0x20

    16

    4

    32

    1K

    DX82C02

    0x21

    4

    64

    2K

    DX82C04

    0x22

    4

    128

    4K

    DX82C08

    0x23

    32

    8

    128

    8K

    DX82C16

    0x24

    16

    128

    16K

    DX82C32

    0x25

    16

    256

    32K

    DX82C64

    0x26

    16

    512

    64K

    DX82C128

    0x27

    64

    16

    1024

    128K

    DX82C256

    0x28

    16

    2048

    256K


    SN:? 8個字節,每顆芯片有全球唯一的序列號,永遠無法修改

    UID7個字節,用戶可以對每個產品自行設置ID號,設置后可鎖定,永遠無法修改,出廠時為全0xff

    MID6個字節,廠商代碼,只讀

    ZoneMode16個字節,每個字節對應一個Zone的配置信息,配置完成后將鎖定,將永遠無法修改,每個字節定義如下:


    ZoneMode字節定義


    Fuse1OTP字節,該字節每bit只能從1寫成0, 0永遠無法再變成1,該字節每bit代表相應配置信息的鎖定狀態,定義如下:


    Fuse字節定義

    說明:DX8芯片經專用燒錄器個人化后,Fuse字節為0x00,即配置全部鎖定。


    7.1.3. 睡眠


    u8_x? DX8_Sleep(void);

    功能描述:使DX8芯片進入睡眠狀態

    參數:???? void

    返回值:? 成功返回0,否則返回錯誤代碼

    示例代碼:

    u8_x rv;

    rv = DX8_Sleep();

    if (rv) {

    ?? printf(“Sleep device failed, rv = 0x%.2x\n”, rv);

    ?? return rv;

    }


    7.1.4. 喚醒


    u8_x? DX8_Wakeup(void);

    功能描述:喚醒DX8芯片進入工作狀態,DX8_Reset()函數也可以喚醒DX8芯片

    參數:???? void

    返回值:? 成功返回0,否則返回錯誤代碼

    示例代碼:

    u8_x rv;

    rv = DX8_Wakeup();

    if (rv) {

    ?? printf(“Wakeup device failed, rv = 0x%.2x\n”, rv);

    ?? return rv;

    }


    7.1.5. 獲取隨機數


    u8_x DX8_GetRandom(u8_x *random, u8_x len);

    功能描述:從DX8芯片中獲取真隨機數,長度必須不大于32

    參數:??? random?? 返回的隨機數存儲buffer

    ????????? len??????? 獲取隨機數的長度,最小為1,最大為32

    返回值:? 成功返回0,否則返回錯誤代碼

    示例代碼:

    u8_x rv;

    u8_x random[32];

    rv = DX8_GetRandom(random, 32);

    if (rv) {

    ?? printf(“Get Random failed, rv = 0x%.2x\n”, rv);

    ?? return rv;

    }


    7.1.6. 驗證PIN


    u8_x DX8_VerifyPin(u8_x *seed, u8_x *buf);

    功能描述:驗證PIN,主機對DX8進行驗證,同時DX8對主機進行驗證

    參數:? ? ? seed? 輸入32個字節的隨機數,主機對DX8進行認證

    ? ? ? ? ? ? ? ? buf?? 輸入8個字節PIN碼,DX8對主機進行認證

    返回值:? 驗證通過返回0,否則返回錯誤代碼

    說明該函數不會將用戶PIN碼暴漏在傳輸線上,PIN碼本身是對芯片配置權限作認證的,當芯片配置被全部鎖定后,該函數任然可以用作Passwords Checking雙向認證功能,芯片出廠PIN碼為80xff

    示例代碼:

    u8_x rv;

    u8_x seed[32];

    GetSoftRandom(seed,32);

    rv = DX8_VerifyPin(seed, pin_value);

    if (rv) {

    ?? printf(“Verify PIN failed, rv = 0x%.2x\n”, rv);

    ?? return rv;

    }

    說明:pin_value是在使用Dx8Configuration.exe時產生的dx8_engineer.h中定義,需要將dx8_engineer.h包含到應用程序中


    待續......

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