亚洲国产成人精品一区91_日韩欧美成人观看_国产情侣露脸在线对白_日本动漫欧美激情桃花_亚洲鸥美中文字幕_日韩在线中文字幕有码中文_麻豆va在线精品免费播放_五月天婷婷视频新地址_AV毛片在线免费观看_看欧美三级黄免费

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

聯(lián)系我們

13482583038

技術資料

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

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

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


7.??? DX8_API庫函數(shù)詳細介紹

這章節(jié)主講DX8_API函數(shù)的詳細介紹的第一部分系統(tǒng)函數(shù)


7.1. 系統(tǒng)函數(shù):


7.1.1. 獲取API版本


u8_x *DX8_Version(void);

功能描述: 獲取DX8_API版本

參數(shù):? ? ? ?void

返回值:?? 字符串指針

示例代碼:;

char *apiVersion = DX8_Version();

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


7.1.2. 復位設備


u8_x? DX8_Reset(void);

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

參數(shù):? ? ? 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在庫中已經(jīng)定義,在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個字節(jié),每顆芯片有全球唯一的序列號,永遠無法修改

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

MID6個字節(jié),廠商代碼,只讀

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


ZoneMode字節(jié)定義


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


Fuse字節(jié)定義

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


7.1.3. 睡眠


u8_x? DX8_Sleep(void);

功能描述:使DX8芯片進入睡眠狀態(tài)

參數(shù):???? 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芯片進入工作狀態(tài),DX8_Reset()函數(shù)也可以喚醒DX8芯片

參數(shù):???? void

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

示例代碼:

u8_x rv;

rv = DX8_Wakeup();

if (rv) {

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

?? return rv;

}


7.1.5. 獲取隨機數(shù)


u8_x DX8_GetRandom(u8_x *random, u8_x len);

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

參數(shù):??? random?? 返回的隨機數(shù)存儲buffer

????????? len??????? 獲取隨機數(shù)的長度,最小為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對主機進行驗證

參數(shù):? ? ? seed? 輸入32個字節(jié)的隨機數(shù),主機對DX8進行認證

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

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

說明該函數(shù)不會將用戶PIN碼暴漏在傳輸線上,PIN碼本身是對芯片配置權限作認證的,當芯片配置被全部鎖定后,該函數(shù)任然可以用作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時產(chǎn)生的dx8_engineer.h中定義,需要將dx8_engineer.h包含到應用程序中


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

【返回列表】
uO+JQUWW8eUvQDLy+3M2/2qB9B021S0kQKnISoRCpAwbn6cLKBMcXWUV276UXGc9O1Atzf61lsaKuagicZSOEQbPXdLNNlnpLKvm7KWUXeG3rPIHD+cQmldKnLgqrvDC0ss/oSK0I4ohoXv/HuKEsfN0smqalxSBLOhve/xII5iKO76WbL0m+ZWZWMu8gx55gX+xHd41VXbP78WrwTWl5Ww7ecEYBx5Z