设备端API
ID² Client SDK封装了底层对ID²载体和接口的操作细节,应用只需调用该接口进行相关操作,即可访问设备端的ID²服务。本文描述如何在设备端使用ID²接口。
接口列表
初始化
函数原型:
int id2_client_init(void)
。功能描述:ID² Client SDK初始化。使用ID²设备端其它API之前,需先调用该API进行初始化操作。
参数描述:无。
返回值:成功时返回0;其他返回值,请参见错误码。
获取ID²
函数原型:
int id2_client_get_id(uint8_t* id, uint32_t* len)
。功能描述:获取ID²字符串。
参数描述:
参数 | 参数类型 | 描述 |
---|---|---|
id | 输出参数 | 存放ID²字符串的起始地址,长度不小于24个字节。 |
len | 输入参数和输出参数 | 输入参数为ID²的buf长度,输出参数为ID²字符串的实际长度。 |
返回值:成功时返回0;其他返回值,请参见错误码。
以挑战应答模式获取设备认证码
函数原型:
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 | 输入参数和输出参数 | 输入参数为authCode的buf长度,输出参数为设备认证码的实际长度。 |
返回值:成功时返回0;其他返回值,请参见错误码。
以时间戳模式获取设备认证码
函数原型:
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 Server携带发送给设备端。
参数描述:
参数 | 参数类型 | 描述 |
---|---|---|
timestamp | 输入参数 | 当前系统时间(从1970年1月1日午夜开始经过的毫秒数),时间戳格式,如1500954672653。 |
extra | 输入参数 | 可选参数。额外数据起始地址,由Device和SP Server根据某种约定分别生成。 |
extra_len | 输入参数 | 额外数据长度,最大长度512字节。 |
auth_code | 输出参数 | 设备认证码起始地址,长度不小于256字节。 |
auth_code_len | 输入参数和输出参数 | 输入参数为authCode的buf长度,输出参数为设备认证码的实际长度。 |
成功时返回0;其他返回值,请参见错误码。
ID²解密
函数原型:
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;其他返回值,请参见错误码。
获取设备烧录状态
函数原型:
irot_result_t id2_client_get_prov_stat(bool *is_prov)
。功能描述:获取设备端ID²的烧录状态。
参数描述:
参数 | 参数类型 | 描述 |
---|---|---|
is_prov | 输出参数 | 布尔类型,存放ID²的烧录状态。 |
成功时返回0;其他返回值,请参见错误码。
获取设备动态下发认证码
函数原型:
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,可在ID²控制台的产品详情页获取。 |
token_len | 输入参数 | ID²动态下发token的长度,固定值32字节。 |
auth_code | 输出参数 | ID²动态下发认证码的内存,长度小于256字节。 |
len | 输入参数和输出参数 | 输入参数为authCode的内存大小,输出参数为认证码的实际长度。 |
成功时返回0;其他返回值,请参见错误码。
烧录动态下发数据
函数原型:
irot_result_t id2_client_load_otp_data(const uint8_t *otp_data, uint32_t len)
。功能描述:烧录动态下发数据到设备中。
参数描述:
参数 | 参数类型 | 描述 |
---|---|---|
otp_data | 输入参数 | ID² Server下发的动态下发数据包。 |
len | 输入参数 | ID²动态下发数据包的长度。 |
成功时返回0;其他返回值,请参见错误码。
- 本页导读 (0)