热博电子游戏
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