全部产品

设备端API

本文描述ID²接口在设备端如何使用。ID² Client SDK封装了底层对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。