更新时间:2024-11-20 08:51:21下载pdf
Port 文件内的函数为 涂鸦蓝牙 SDK(Tuya BLE SDK)所需要的抽象接口。您可以根据设备所使用的蓝牙芯片平台,按需实现各类接口。
函数名 | TUYA_BLE_PRINTF |
---|---|
函数原型 | void TUYA_BLE_PRINTF(const char *format,…) |
功能概述 | 字符串打印 |
参数 | format[in]:格式控制符 …[in]:可变参数 |
返回值 | 无 |
备注 | 通过宏定义的方式移植实现,例如 #define TUYA_BLE_PRINTF(...) log_d (__VA_ARGS__) |
函数名 | TUYA_BLE_HEXDUMP |
---|---|
函数原型 | void TUYA_BLE_HEXDUMP(uint8_t *p_data , uint16_t len) |
功能概述 | 16 进制打印 |
参数 | p_data[in]:要打印的数据指针 len[in]:数据长度 |
返回值 | 无 |
备注 | 通过宏定义的方式移植实现,例如 #define TUYA_BLE_HEXDUMP(...) elog_hexdump("", 8, __VA_ARGS__) |
函数名 | tuya_ble_gap_advertising_adv_data_update |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gap_advertising_adv_data_update(uint8_t const * p_ad_data, uint8_t ad_len) |
功能概述 | 蓝牙广播包数据更新 |
参数 | p_ad_data[in]:新的广播数据 ad_len[in]:数据长度 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_gap_advertising_scan_rsp_data_update |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gap_advertising_scan_rsp_data_update(uint8_t const *p_sr_data, uint8_t sr_len) |
功能概述 | 蓝牙扫描响应包数据更新 |
参数 | p_sr_data[in]:新的扫描响应包数据 sr_len[in]:数据长度 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_gap_disconnect |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gap_disconnect(void) |
功能概述 | 断开蓝牙连接 |
参数 | 无 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_gatt_send_data |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gatt_send_data(const uint8_t *p_data,uint16_t len) |
功能概述 | 蓝牙 GATT 发送数据(notify) |
参数 | p_data[in]:要发送的数据指针 len[in]:发送的数据长度(目前不能超过20字节) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 |
|
函数名 | tuya_ble_device_info_characteristic_value_update |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_device_info_characteristic_value_update(uint8_t const *p_data, uint8_t data_len) |
功能概述 | 更新 Read Characteristic Value (UUID : 00000003-0000-1001-8001-00805F9B07D0 ) |
参数 | p_data[in]:要发送的数据指针 len[in]:发送的数据长度(目前不能超过20字节) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 |
|
函数名 | tuya_ble_timer_create |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_timer_create(void** p_timer_id,uint32_t timeout_value_ms, tuya_ble_timer_mode mode,tuya_ble_timer_handler_t timeout_handler) |
功能概述 | 创建一个定时器 |
参数 | p_timer_id[out]:创建的定时器指针 timeout_value_ms[in]:定时时间,单位 ms mode[in]:
|
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_timer_delete |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_timer_delete(void* timer_id) |
功能概述 | 删除一个定时器 |
参数 | timer_id [in]:定时器 ID |
返回值 | TUYA_BLE_SUCCESS:成功 TUYA_BLE_ERR_INVALID_PARAM:无效的参数 其他:失败 |
函数名 | tuya_ble_timer_start |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_timer_start(void* timer_id) |
功能概述 | 启动一个定时器 |
参数 | timer_id [in]:定时器 ID |
返回值 | TUYA_BLE_SUCCESS:成功 TUYA_BLE_ERR_INVALID_PARAM:无效的参数 其他:失败 |
备注 | 如果定时器已经启动,执行该函数后会重新启动 |
函数名 | tuya_ble_timer_restart |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_timer_restart(void* timer_id,uint32_t timeout_value_ms) |
功能概述 | 以新的定时时间重新启动一个定时器 |
参数 | timer_id [in]:定时器 ID timeout_value_ms[in]:定时时间,单位ms |
返回值 | TUYA_BLE_SUCCESS:成功 TUYA_BLE_ERR_INVALID_PARAM:无效的参数 其他:失败 |
函数名 | tuya_ble_timer_stop |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_timer_stop(void* timer_id) |
功能概述 | 停止一个定时器 |
参数 | timer_id [in]:定时器 ID |
返回值 | TUYA_BLE_SUCCESS:成功 TUYA_BLE_ERR_INVALID_PARAM:无效的参数 其他:失败 |
函数名 | tuya_ble_device_delay_ms |
---|---|
函数原型 | void tuya_ble_device_delay_ms(uint32_t ms) |
功能概述 | ms 级延时函数 |
参数 | ms [in]:延时毫秒数 |
返回值 | 无 |
备注 | 如果是在 OS 平台下,必须为无阻塞延时 |
函数名 | tuya_ble_device_delay_us |
---|---|
函数原型 | void tuya_ble_device_delay_us(uint32_t us) |
功能概述 | us 级延时函数 |
参数 | us [in]:延时微妙数 |
返回值 | 无 |
备注 | 如果是在 OS 平台下,必须为无阻塞延时 |
函数名 | tuya_ble_device_reset |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_device_reset(void) |
功能概述 | 设备重启 |
参数 | 无 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_gap_addr_get |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gap_addr_get(tuya_ble_gap_addr_t *p_addr); |
功能概述 | 获取设备 Mac 地址 |
参数 | p_addr [out]:Mac 地址指针 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
typedef enum
{
TUYA_BLE_ADDRESS_TYPE_PUBLIC, // public address
TUYA_BLE_ADDRESS_TYPE_RANDOM, // random address
} tuya_ble_addr_type_t;
typedef struct
{
tuya_ble_addr_type_t addr_type;
uint8_t addr[6];
}tuya_ble_gap_addr_t;
函数名 | tuya_ble_gap_addr_set |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_gap_addr_set(tuya_ble_gap_addr_t *p_addr); |
功能概述 | 设置更新设备 Mac 地址 |
参数 | p_addr [in]:Mac 地址指针 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_device_enter_critical |
---|---|
函数原型 | voidtuya_ble_device_enter_critical(void) |
功能概述 | 进入临界区 |
参数 | 无 |
返回值 | 无 |
备注 | 通过宏定义方式定义,例如在 Nordic 平台下定义如下所示 |
#define tuya_ble_device_enter_critical() \
{ \
uint8_t __CR_NESTED = 0; \
app_util_critical_region_enter(&__CR_NESTED);\
#define tuya_ble_device_exit_critical() \
app_util_critical_region_exit(__CR_NESTED); \
}
函数名 | tuya_ble_device_exit_critical |
---|---|
函数原型 | void tuya_ble_device_exit_critical(void) |
功能概述 | 退出临界区 |
参数 | 无 |
返回值 | 无 |
备注 | 通过宏定义方式定义,例如在 Nordic 平台下定义如下示 |
#define tuya_ble_device_enter_critical() \
{ \
uint8_t __CR_NESTED = 0; \
app_util_critical_region_enter(&__CR_NESTED);\
#define tuya_ble_device_exit_critical() \
app_util_critical_region_exit(__CR_NESTED); \
}
函数名 | tuya_ble_rand_generator |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_rand_generator(uint8_t* p_buf, uint8_t len) |
功能概述 | 随机数生成 |
参数 | p_buf [out]:生成的随机数的数组指针 len[in]:随机数字节数 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
函数名 | tuya_ble_rtc_get_timestamp |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_rtc_get_timestamp(uint32_t *timestamp,int32_t *timezone); |
功能概述 | 获取 unix 时间戳 |
参数 | timestamp [out]:时间戳 timezone [out]:时区(有符号型整数,真实时区的100倍) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 数据来自应用本身维护的 RTC 实时时钟,如果应用没有RTC,无需实现该接口 |
函数名 | tuya_ble_rtc_set_timestamp |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_rtc_set_timestamp(uint32_t timestamp,int32_t timezone) |
功能概述 | 更新 unix 时间戳 |
参数 | timestamp [in]:unix 时间戳 timezone [in]:时区(有符号型整数,真实时区的100倍) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | SDK 通过调用此函数更新应用程序维护的 RTC 实时时钟,如果应用没有RTC,无需实现该接口 |
函数名 | tuya_ble_nv_init |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_nv_init(void) |
功能概述 | NV 初始化 |
参数 | 无 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 配合 Config 文件定义的 NV 空间地址使用,SDK 调用 NV 相关函数来存储和管理授权信息和其他信息 |
函数名 | tuya_ble_nv_erase |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_nv_erase(uint32_t addr,uint32_t size) |
功能概述 | NV 擦除函数 |
参数 | addr[in]:要擦除 NV 区域的起始地址 size[in]:要擦除的大小(单位:字节) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 配合 config 文件定义的 NV 空间地址使用,SDK 调用 NV 相关函数来存储和管理授权信息和其他信息 |
函数名 | tuya_ble_nv_write |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_nv_write(uint32_t addr,const uint8_t * p_data, uint32_t size) |
功能概述 | NV 写数据函数 |
参数 | addr[in]:指向被写入数据的起始地址 p_data[in]:写入的起始地址 size[in]:要写入数据的大小(单位:字节) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 配合 config 文件定义的 NV 空间地址使用,SDK 调用 NV 相关函数来存储和管理授权信息和其他信息 |
函数名 | tuya_ble_nv_read |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_nv_read(uint32_t addr,uint8_t * p_data, uint32_t size) |
功能概述 | NV 读数据函数 |
参数 | addr[in]:要读取数据的 NV 起始地址 p_data[out]:读取数据的地址 size[in]:要读取数据的大小(单位:字节) |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 配合 config 文件定义的 NV 空间地址使用,SDK 调用 NV 相关函数来存储和管理授权信息和其他信息 |
函数名 | tuya_ble_common_uart_init |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_common_uart_init(void) |
功能概述 | Uart 初始化函数 |
参数 | 无 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 |
|
函数名 | tuya_ble_common_uart_send_data |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_common_uart_send_data(const uint8_t *p_data,uint16_t len) |
功能概述 | UART 发送数据函数 |
参数 | p_data[in]:要发送的数据指针 len[in]:要发送的数据长度 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 主要用于授权产测使用 |
函数名 | tuya_ble_os_task_create |
---|---|
函数原型 | bool tuya_ble_os_task_create(void **pp_handle, const char *p_name, void(*p_routine)(void *),void *p_param, uint16_t stack_size, uint16_t priority) |
功能概述 | 任务创建 |
参数 | pp_handle [out]:用于回传一个句柄,通过该句柄可以引用创建的任务 p_name[in]:任务的描述性名称 p_routine [in]:用以实现永不返回的指向任务例程函数的指针 p_param[in]:传递给任务例程函数的指针参数 stack_size[in]:指定为字节数的任务堆栈的大小 priority[in]:任务应该运行的优先级,优先级值越高任务优先级越大 |
返回值 | True:任务创建成功并添加到任务就绪列表中 False:任务创建失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_task_delete |
---|---|
函数原型 | bool tuya_ble_os_task_delete(void *p_handle) |
功能概述 | 从 RTOS 的任务管理中移除一个任务,正在删除的任务将从 RUNNING、READY 或 WAITING 状态中移除 |
参数 | pp_handle [in]:要删除的任务的句柄 |
返回值 | True:任务删除成功 False:任务删除失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_task_suspend |
---|---|
函数原型 | bool tuya_ble_os_task_suspend(void *p_handle) |
功能概述 | 任务挂起,挂起的任务不会被调度,也不会获得任何微控制器处理时间 |
参数 | pp_handle [in]:要挂起的任务的句柄 |
返回值 | True:任务挂起成功 False:任务挂起失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_task_resume |
---|---|
函数原型 | bool tuya_ble_os_task_resume(void *p_handle) |
功能概述 | 恢复挂起的任务 |
参数 | pp_handle [in]:要恢复的任务的句柄 |
返回值 | True:任务恢复成功 False:任务恢复失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_msg_queue_create |
---|---|
函数原型 | bool tuya_ble_os_msg_queue_create(void **pp_handle, uint32_t msg_num, uint32_tmsg_size) |
功能概述 | 创建消息队列实例,这将分配新队列所需的存储空间并传回队列的句柄 |
参数 | pp_handle [out]:用于传回一个可以引用消息队列的句柄 msg_num [in]:队列可以包含的最大列表数 msg_size [in]:消息队列的数量队列中,每个项目所需的字节数 |
返回值 | True:消息队列创建成功 False:消息队列创建失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_msg_queue_delete |
---|---|
函数原型 | bool tuya_ble_os_msg_queue_delete(void *p_handle) |
功能概述 | 删除消息队列实例 |
参数 | pp_handle [in]:被删除的消息队列的句柄 |
返回值 | True:消息队列删除成功 False:消息队列删除失败 |
备注 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_msg_queue_peek |
---|---|
原型函数 | bool tuya_ble_os_msg_queue_peek(void *p_handle, uint32_t *p_msg_num) |
功能概述 | 查看已发送和驻留在消息队列中的列表数 |
参数 | pp_handle [in]:被查看的消息队列的句柄 p_msg_num[out]:用于传回驻留在消息队列中的列表数 |
返回值 | True:消息队列查看成功 False:消息队列查看失败 |
注意事项 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_msg_queue_send |
---|---|
函数原型 | bool tuya_ble_os_msg_queue_send(void *p_handle, void *p_msg, uint32_t wait_ms) |
功能概述 | 将列表发送到指定消息队列的后面 |
参数 | pp_handle [in]:消息队列的句柄,将在其上发送列表 p_msg[in] :指向将在队列上发送的列表的指针 wait_ms[in] :最大值任务应该阻塞等待列表在队列上发送的时间(以毫秒为单位)
|
返回值 | True:消息项已成功发送 False:消息项发送失败 |
注意事项 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_os_msg_queue_recv |
---|---|
函数原型 | bool tuya_ble_os_msg_queue_recv(void *p_handle, void *p_msg, uint32_t wait_ms) |
功能概述 | 从指定的消息队列接收项目 |
参数 | pp_handle [in] :要接收项目的消息队列的句柄 p_msg[out] :指向接收项目将被复制到的缓冲区的指针 wait_ms[in] :最大值 任务应该阻塞等待队列中接收到项目的时间量(以毫秒为单位)
|
返回值 | True:消息项已成功接收 False:消息项接收失败 |
注意事项 | 该接口函数只需在基于 OS 的平台下实现 |
函数名 | tuya_ble_event_queue_send_port |
---|---|
函数原型 | bool tuya_ble_event_queue_send_port(tuya_ble_evt_param_t *evt, uint32_t wait_ms) |
功能概述 | 如果取消定义 TUYA_BLE_SELF_BUILT_TASK ,应用程序应向 SDK 提供任务以处理事件,SDK 将使用此端口向应用程序提供的任务发送事件 |
参数 | evt [in] :要发送的消息数据点 wait_ms[in] :任务应该阻塞等待队列上的项目发送的最长时间(以毫秒为单位)
|
返回值 | True:消息项发送成功 False:消息项发送失败 |
注意事项 | 该接口函数非常在基于 OS 的平台下实现 |
函数名 | tuya_ble_aes128_ecb_encrypt |
---|---|
函数原型 | bool tuya_ble_aes128_ecb_encrypt(uint8_t *key,uint8_t *input,uint16_tinput_len,uint8_t *output) |
功能概述 | 指定明文和密钥的 128 位 AES ECB(电码本模式)加密 |
参数 | key [in]:加密明文的密钥 In_put[in]:指定要加密的纯文本 in_put_len[in]:要加密的数据的字节长度,必须是 16 的倍数 Out_put[out]:用于存储加密数据的输出缓冲区 |
返回值 | True:成功 False:失败 |
函数名 | tuya_ble_aes128_ecb_decrypt |
---|---|
函数原型 | bool tuya_ble_aes128_ecb_decrypt(uint8_t *key,uint8_t *input,uint16_tinput_len,uint8_t *output) |
功能概述 | 对指定的加密数据和密钥进行 128 位 AES ECB 解密 |
参数 | key [in]:解密明文的密钥 In_put[in]:要解密的指定加密数据 in_put_len[in]:要解密的数据的字节长度,必须是 16 的倍数 Out_put[out]:用于存储解密数据的输出缓冲区 |
返回值 | True:成功 False:失败 |
函数名 | tuya_ble_aes128_cbc_encrypt |
---|---|
函数原型 | bool tuya_ble_aes128_cbc_encrypt(uint8_t *key,uint8_t *iv,uint8_t input,uint16_t input_len,uint8_toutput) |
功能概述 | 特定明文和密钥上的 128 位 AES CBC(密码分组链接)加密 |
参数 | key [in]:加密明文的密钥 iv[in]:CBC 加密模式的初向量(IV,Initialization vector) In_put[in]:指定要加密的纯文本 in_put_len[in]:要加密的数据的字节长度,必须是 16 的倍数 Out_put[out]:用于存储加密数据的输出缓冲区 |
返回值 | True:成功 False:失败 |
函数名 | tuya_ble_aes128_cbc_decrypt |
---|---|
函数原型 | bool tuya_ble_aes128_cbc_decrypt(uint8_t*key,uint8_t *iv,uint8_t *input,uint16_t input_len,uint8_t *output) |
功能概述 | 指定明文和密钥的 128 位 AES CBC 解密 |
参数 | key [in]:解密明文的密钥 Iv[in]:CBC 加密模式的初始化向量 In_put[in]:要解密的指定数据 in_put_len[in]:要解密的数据的字节长度,必须是 16 的倍数 Out_put[out]:用于存储解密数据的输出缓冲区 |
返回值 |
函数名 | tuya_ble_md5_crypt |
---|---|
函数原型 | booltuya_ble_md5_crypt(uint8_t *input,uint16_t input_len,uint8_t *output) |
功能概述 | MD5 校验和. |
参数 | In_put[in]:指定要加密的纯文本 in_put_len[in]:要加密的数据的字节长度 Out_put[out]:输出缓冲区用于存储 MD5 结果数据,输出数据 len 始终为 16 |
返回值 | True:成功 False:失败 |
函数名 | tuya_ble_hmac_sha1_crypt |
---|---|
函数原型 | bool tuya_ble_hmac_sha1_crypt(constuint8_t *key, uint32_t key_len, const uint8_t *input, uint32_t input_len,uint8_t *output) |
功能概述 | 使用提供的密钥,计算输入缓冲区上的全通用 HMAC |
参数 | key [in]:HMAC 密钥 key_len[in]:HMAC 密钥的长度(以字节为单位 In_put[in]:指定要加密的纯文本 in_put_len[in]:要加密的数据的字节长度 out_put[out]:输出缓冲器存储结果数据 |
返回值 | True:成功. False:失败 |
备注 | 目前没有使用,不需要实现 |
函数名 | tuya_ble_hmac_sha256_crypt |
---|---|
函数原型 | bool tuya_ble_hmac_sha256_crypt(const uint8_t *key, uint32_t key_len, const uint8_t *input, uint32_t input_len, uint8_t *output) |
功能概述 | 使用提供的密钥,计算输入缓冲区上的全通用 HMAC |
参数 | key [in]:HMAC 密钥 key_len[in]:HMAC 密钥的长度(以字节为单位) In_put[in]:指定要加密的纯文本 in_put_len[in]:要加密的数据的字节长度 out_put[out]:输出缓冲器存储结果数据 |
返回值 | True:成功. False:失败 |
备注 | 目前没有使用,不需要实现 |
函数名 | tuya_ble_storage_private_data |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_storage_private_data(tuya_ble_private_data_type private_data_type, uint8_t *p_data, uint32_t data_size) |
功能概述 | 存储密钥数据,用于 基于安全芯片加密 的高级加密模式 |
参数 | private_data_type[in]:数据类型 p_data[in]:要写入数据的起始地址 data_size[in]:数据长度 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_get_dev_crt_len |
---|---|
函数原型 | uint32_t tuya_ble_get_dev_crt_len(void) |
功能概述 | 获取存储在安全芯片内的证书长度 |
参数 | 无 |
返回值 | 证书长度 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_get_dev_crt_der |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_get_dev_crt_der(uint8_t *p_der,uint32_t der_len)) |
功能概述 | 读取安全芯片内的设备证书数据 |
参数 | p_der[out]:读取的证书数据存放地址 der_len[in]:要读取的证书数据长度 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_ecc_keypair_gen_secp256r1 |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_ecc_keypair_gen_secp256r1(uint8_t *public_key,uint8_t *private_key) |
功能概述 | 生成ECDH密钥对,ECC曲线为 secp256r1 |
参数 | public_key[out]:生成的公钥 private_key[out]:生成的私钥 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_ecc_shared_secret_compute_secp256r1 |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_ecc_shared_secret_compute_secp256r1(uint8_t *public_key,uint8_t *private_key,uint8_t *secret_key) |
功能概述 | 计算共享密钥 |
参数 | public_key[in]:公钥 private_key[in]:私钥 secret_key[out]:共享密钥 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_ecc_sign_secp256r1 |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_ecc_sign_secp256r1(const uint8_t *p_sk, const uint8_t * p_data, uint32_t data_size,uint8_t *p_sig) |
功能概述 | 计算 ECDSA 签名 |
参数 | p_sk[in]:签名私钥 p_data[in]:要签名的数据 data_size[in]:要签名的数据长度 p_sig[out]:计算的签名数据 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_ecc_verify_secp256r1 |
---|---|
函数原型 | tuya_ble_status_t tuya_ble_ecc_verify_secp256r1(const uint8_t *p_pk, const uint8_t * p_data, uint32_t data_size,const uint8_t *p_sig) |
功能概述 | 验证 ECDSA 签名 |
参数 | p_pk[in]:验签公钥 p_data[in]:验证签名的数据 data_size[in]:验证签名的数据长度 p_sig[in]:验证的签名数据 |
返回值 | TUYA_BLE_SUCCESS:成功 其他:失败 |
备注 | 用于基于安全芯片加密的高级加密模式,否则无需实现 |
函数名 | tuya_ble_port_malloc |
---|---|
函数原型 | void *tuya_ble_port_malloc( uint32_t size ) |
功能概述 | 分配所需大小的内存块 |
参数 | Size[in]:所需的内存大小 |
返回值 | 返回分配的内存块的地址,如果地址为 NULL,则内存分配失败 |
备注 | 该接口函数只需在 TUYA_BLE_USE_PLATFORM_MEMORY_HEAP==1 时移植实现 |
函数名 | tuya_ble_port_free |
---|---|
函数原型 | void tuya_ble_port_free(void *pv ) |
功能概述 | 释放已分配的内存块 |
参数 | pv[in]:被释放的内存块的地址 |
返回值 | None. |
备注 | 该接口函数只需在 TUYA_BLE_USE_PLATFORM_MEMORY_HEAP==1 时移植实现 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈