mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 03:00:34 +03:00
feat(ble/blufi): Support setting BLE encryption for blufi
(cherry picked from commit 60a028fb17)
Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
This commit is contained in:
committed by
zhiweijian
parent
c9ee3fbaab
commit
4ce1ea8a15
@@ -12,6 +12,16 @@ BluFi 流程的关键部分包括数据的分片、加密以及校验和验证
|
||||
|
||||
用户可按需自定义用于对称加密、非对称加密以及校验的算法。此处,我们采用 DH 算法进行密钥协商,128-AES 算法用于数据加密,CRC16 算法用于校验和验证。
|
||||
|
||||
.. note::
|
||||
|
||||
**BluFi 目前处于维护模式,不再规划新功能。**
|
||||
|
||||
对于新项目或新增 Wi-Fi 配网的场景,建议使用 network_provisioning 组件
|
||||
|
||||
(`network_provisioning <https://github.com/espressif/idf-extra-components/tree/master/network_provisioning>`_)
|
||||
|
||||
来实现现代化、安全且有持续维护的解决方案。
|
||||
|
||||
BluFi 流程
|
||||
-----------
|
||||
|
||||
@@ -481,15 +491,36 @@ BluFi 会在调用完 Negotiate_data_handler 后,发送 Negotiate_data_handler
|
||||
|
||||
该函数用来进行校验,返回值为校验的值。BluFi 会使用该函数返回值与帧的校验值进行比较。
|
||||
|
||||
5. 实现更强的安全性
|
||||
5. BLE SMP Encryption for Blufi
|
||||
|
||||
本示例中默认的加密/解密逻辑仅用于演示目的。
|
||||
在 Wi-Fi 配网之前,可以使用 BLE SMP 配对建立安全连接,使配网过程更安全。
|
||||
|
||||
如果需要更高等级的安全性,建议通过自定义 BluFi 框架中的安全回调函数,实现您自己的加密、解密、认证以及校验算法。
|
||||
此功能可通过配置选项启用或禁用:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
esp_err_t esp_blufi_register_callbacks(esp_blufi_callbacks_t *callbacks)
|
||||
CONFIG_EXAMPLE_BLUFI_BLE_SMP_ENABLE
|
||||
|
||||
如果启用该选项,ESP32 设备在连接成功后会发起配对请求。仅在配对成功后,设备才可继续进行 Wi-Fi 配网。
|
||||
|
||||
目前 BLE SMP 配对 **仅支持 Bluedroid 主机**。
|
||||
|
||||
6. 实现更强的安全性
|
||||
|
||||
示例中的默认加密/解密逻辑仅用于演示目的。
|
||||
|
||||
如果需要更高等级的安全性,可以考虑以下方法:
|
||||
|
||||
1. **自定义安全回调** – 通过自定义 BluFi 框架中的安全回调函数,实现自己的加密、解密、认证以及校验算法:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
esp_err_t esp_blufi_register_callbacks(esp_blufi_callbacks_t *callbacks);
|
||||
|
||||
2. **Network Provisioning 组件(推荐使用)** – 或者可以使用 ESP-IDF 提供的 network_provisioning 组件,实现安全、可直接使用的配网解决方案:
|
||||
|
||||
`network_provisioning <https://github.com/espressif/idf-extra-components/tree/master/network_provisioning>`_
|
||||
|
||||
|
||||
|
||||
GATT 相关说明
|
||||
|
||||
Reference in New Issue
Block a user