上海赌场微电子科技有限公司

宁夏雷火棋牌:技术资料

您的当前位置:首页 > 雷火电子游戏 > 宁夏雷火棋牌:技术资料

雷火加密雷火应用开发手册(四)

发布时间:2017-09-01浏览次数:载入中...来源:上海赌场微电子科技有限公司


7.    雷火_API库函数详细介绍

这章节主讲雷火_API函数的详细介绍的第一部分系统函数


7.1. 系统函数:


7.1.1. 获取API版本


u8_x *雷火_Version(void);

功能描述: 获取雷火_API版本

参数:       void

关注值:   字符串指针

示例代码:

char *apiVersion = 雷火_Version();

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


7.1.2. 复位设备


u8_x  雷火_Reset(void);

功能描述:复位雷火雷火,并获取雷火的配置信息

参数:      void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 雷火_Reset();

if (rv) {

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

   return rv;

}

雷火_Reset获取雷火雷火的配置信息存储在CHIP_INFO 雷火_info结构体中,雷火_info在库中已经定义,在雷火_API.h头文件extern 出来了,用户可以直接访问雷火_info来获取雷火的信息,如SNUIDZone的配置模式等:

      CHIP_INFO结构体C定义:                                 CHIP_INFO结构体Java类定义:

                                                       


雷火1/雷火2雷火基本信息列表:


Product

Type

PageSize

(Bytes)

ZoneNum

ZoneSize

(Bytes)

EEPROM

(Bits)

雷火1系列雷火

雷火1C01

0x10

16

4

32

1K

雷火1C02

0x11

4

64

2K

雷火1C04

0x12

4

128

4K

雷火1C08

0x13

32

8

128

8K

雷火1C16

0x14

16

128

16K

雷火1C32

0x15

16

256

32K

雷火1C64

0x16

16

512

64K

雷火1C128

0x17

64

16

1024

128K

雷火1C256

0x18

16

2048

256K

雷火2系列雷火

雷火2C01

0x20

16

4

32

1K

雷火2C02

0x21

4

64

2K

雷火2C04

0x22

4

128

4K

雷火2C08

0x23

32

8

128

8K

雷火2C16

0x24

16

128

16K

雷火2C32

0x25

16

256

32K

雷火2C64

0x26

16

512

64K

雷火2C128

0x27

64

16

1024

128K

雷火2C256

0x28

16

2048

256K


SN:  8个字节,每颗雷火有全球唯一的序列号,永远无法修改

UID7个字节,用户可以对每个产品自行设置ID号,设置后可锁定,永远无法修改,出厂时为全0xff

MID6个字节,厂商代码,只读

ZoneMode16个字节,每个字节对应一个Zone的配置信息,配置完成后将锁定,将永远无法修改,每个字节定义如下:


ZoneMode字节定义


Fuse1OTP字节,该字节每bit只能从1写成0 0永远无法再变成1该字节每bit代表相应配置信息的锁定状态,定义如下:


Fuse字节定义

说明:雷火雷火经专用烧录器个人化后,Fuse字节为0x00,即配置全部锁定。


7.1.3. 睡眠


u8_x  雷火_Sleep(void);

功能描述:使雷火雷火进入睡眠状态

参数:     void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 雷火_Sleep();

if (rv) {

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

   return rv;

}


7.1.4. 唤醒


u8_x  雷火_Wakeup(void);

功能描述:唤醒雷火雷火进入工作状态,雷火_Reset()函数也可以唤醒雷火雷火

参数:     void

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

rv = 雷火_Wakeup();

if (rv) {

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

   return rv;

}


7.1.5. 获取随机数


u8_x 雷火_GetRandom(u8_x *random, u8_x len);

功能描述:从雷火雷火中获取真随机数,长度必须不大于32

参数:    random   关注的随机数存储buffer

          len        获取随机数的长度,最小为1,最大为32

关注值:  成功关注0,否则关注错误代码

示例代码:

u8_x rv;

u8_x random[32];

rv = 雷火_GetRandom(random, 32);

if (rv) {

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

   return rv;

}


7.1.6. 验证PIN


u8_x 雷火_VerifyPin(u8_x *seed, u8_x *buf);

功能描述:验证PIN,主机对雷火进行验证,同时雷火对主机进行验证

参数:      seed  输入32个字节的随机数,主机对雷火进行认证

                buf   输入8个字节PIN码,雷火对主机进行认证

关注值:  验证通过关注0,否则关注错误代码

说明该函数不会将用户PIN码暴漏在传输线上,PIN码本身是对雷火配置权限作认证的,当雷火配置被全部锁定后,该函数任然可以用作Passwords Checking双向认证功能,雷火出厂PIN码为80xff

示例代码:

u8_x rv;

u8_x seed[32];

GetSoftRandom(seed,32);

rv = 雷火_VerifyPin(seed, pin_value);

if (rv) {

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

   return rv;

}

说明:pin_value是在使用雷火Configuration.exe时产生的雷火_engineer.h中定义,需要将雷火_engineer.h包含到应用程序中


待续......

【关注列表】
LQ28hgahnOgLV9yI+Ft7LmqB9B021S0k+WfrsTOIv4KG1G13NTWD3r26fIk64vErB1U31hoxqSwTiWRyDOREy/RMupzLL5Mt7gAisSpj0k/+3Mm6X0gE8G/y/T8sinoIPG+cyTy14mvJ1XoW4RcJjTO7Kro0X9Cl/AJ25HGTwnRXzQOWP37daQ==