奇迹电游
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