全部产品
云市场

设备端API手册

更新时间:2019-01-23 00:49:26

本文档描述ID²接口在设备端如何使用,ID² Client SDK封装了底层对ID²载体、接口的操作细节,应用只需调用该接口进行相关操作,即可访问设备端ID²服务。

一、ID²初始化

函数原型

  1. int id2_client_init(void);

功能描述

ID² Client SDK初始化,使用ID²设备端其它API之前,首先需调用该API进行初始化操作。

参数描述

返回值

0: 成功

其他参见设备端错误码

二、获取ID²

函数原型

  1. int id2_client_get_id(uint8_t* id, uint32_t* len);

功能描述

获取ID²字串

参数描述

名称输入/输出描述
idout存放ID²字串的起始地址,长度不小于24字节
lenin/out入参为参数id²的buf长度,出参为ID²字串的实际长度

返回值

0: 成功

其他参见设备端错误码

三、获取设备认证码—挑战应答模式

函数原型

  1. int id2_client_get_challenge_auth_code(const char* challenge, const uint8_t* extra, uint32_t extra_len, uint8_t* auth_code, uint32_t* auth_code_len);

功能描述

基于挑战应答模式生成设备端认证码,可以有选择性的携带额外数据(extra),携带的extra参与设备认证码的签名运算。

参数描述

名称输入/输出描述
challenge输入挑战字起始地址,经SP Server从ID² Server获取
extra输入额外数据起始地址,可选,由Device和SP Server根据某种约定分别生成
extra_len输入额外数据长度,最大长度512字节
auth_code输出设备认证码起始地址,长度不小于256字节
auth_code_len输入/输出入参为参数auth_code的buf长度,出参为设备认证码的实际长度

返回值

0: 成功

参见设备端错误码

交互流程图

四、获取设备认证码—时间戳模式

函数原型

  1. int id2_client_get_timestamp_auth_code(const char* timestamp, const uint8_t* extra, uint32_t extra_len, uint8_t* auth_code, uint32_t* auth_code_len);

功能描述

基于时间戳模式生成设备端认证码,可以有选择性的携带额外数据(extra),携带的extra参与设备认证码的签名运算。时间戳可以由设备端RTC生成,或者由SP携带发送给设备端。

参数描述

timestamp输入当前系统时间(从1970年1月1日午夜开始经过的毫秒数),字符串形式表示,如”1500954672653”extra输入额外数据起始地址,可选,由Device和SP Server根据某种约定分别生成extra_len输入额外数据长度,最大长度512字节auth_code输出设备认证码起始地址,长度不小于256字节len输入/输出入参为参数auth_code的buf长度,出参为设备认证码的实际长度

返回值

0: 成功

参见设备端错误码

交互流程图

五、ID²解密

函数原型

  1. int id2_client_decrypt(const uint8_t* in, uint32_t in_len, uint8_t* out, uint32_t* out_len);

功能描述

使用ID²解密指定的数据

参数描述

名称输入/输出描述
in输入待解密的数据起始地址,数据如果是base64编码,需要先进行base64解码
in_len输入待解密的数据长度,长度不超过512字节
out输出解密后的数据起始地址
out_len输入/输出入参为参数out的buf长度,出参为解密后的数据长度

返回值

0: 成功

参见设备端错误码

六、获取设备烧录状态

函数原型

  1. irot_result_t id2_client_get_prov_stat(bool *is_prov);

功能描述

获取设备端ID²的烧录状态

参数描述

名称输入/输出描述
is_prov输出布尔类型,存放ID²的烧录状态

返回值

0: 成功

参见设备端错误码

七、获取设备空发认证码

函数原型

  1. irot_result_t id2_client_get_otp_auth_code(const uint8_t *token, uint32_t token_len, uint8_t *auth_code, uint32_t *len);

功能描述

获取设备端ID²空发的认证码

参数描述

名称输入/输出描述
token输入ID² Server颁发的空发token, 按产品划分
token_len输入ID²空发token的长度,固定值32字节
auth_code输出ID²空发认证码的内存,长度小于256字节
len输入/输出入参为auth_code的内存大小,出参为认证码的实际长度

返回值

0: 成功

参见设备端错误码

八、烧录空发数据

函数原型

  1. irot_result_t id2_client_load_otp_data(const uint8_t *otp_data, uint32_t len);

功能描述

烧录空发数据到设备中

参数描述

名称输入/输出描述
otp_data输入ID² Server下发的空发数据包(加密保护)
len输入ID²空发数据包的长度

返回值

0: 成功

参见设备端错误码