雷火电子游戏
13482583038宁夏雷火棋牌:技术资料
雷火加密雷火应用开发手册(四)
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来获取雷火的信息,如SN、UID和Zone的配置模式等:
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个字节,每颗雷火有全球唯一的序列号,永远无法修改
UID:7个字节,用户可以对每个产品自行设置ID号,设置后可锁定,永远无法修改,出厂时为全0xff
MID:6个字节,厂商代码,只读
ZoneMode:16个字节,每个字节对应一个Zone的配置信息,配置完成后将锁定,将永远无法修改,每个字节定义如下:
Fuse:1个OTP字节,该字节每bit只能从1写成0, 0永远无法再变成1,该字节每bit代表相应配置信息的锁定状态,定义如下:
说明:雷火雷火经专用烧录器个人化后,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码为8个0xff
示例代码:
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包含到应用程序中
待续......
【关注列表】上一个:雷火加密雷火应用开发手册(五)
下一个:雷火加密雷火应用开发手册(三)
雷火赌场娱乐
- 雷火加密雷火应用开发手册(六)2017-09-05
- 雷火加密雷火应用开发手册(五)2017-09-03
- 雷火加密雷火应用开发手册(三)2017-08-31
- 雷火加密雷火应用开发手册(二)2017-08-30
- 雷火加密雷火应用开发手册(一)2017-08-29