ruoyulee 2023-09-26 10:22 采纳率: 50%
浏览 5

esp32 ble蓝牙静态链接密码为什么没用?esp_ ble gap_ set security_ param()函数为什么调用多次?

12: uint8 t key_size = 16; //the key-size should be 7~16 bytes
513: uint8_t init_key = ESP BLE_ENC_ KEY MASK:| ESP_ BLE_ID_ KEY_MASK;
514: uint8_t rsp_key = ESP_BLE_ENC_ KEY_MASK | ESP BLE_ID_KEY_MASK;
515: //set static passkey
516: ** uint32 t passkey = 123456;**
517: uint8_t auth_option:= ESP_BLE_ONLY_ACCEPT_SPECIFIED_ AUTH_DISABLE;
518: uint8_t oob_support = ESP_BLE_OOB_DISABLE;
519 esp ble gap set security_ param(ESP BLE_SM_SET STATIC_ PASSKEY, &passkey, sizeof(uint32_t));
520: esp_ ble gap_ set security_ param(ESP BLE_ SM_AUTHEN REQ_MODE, &auth_req, sizeof(uint8_t)); //ble gap_sel- ecu
521: esp ble gap set security r param(ESP nam(eSP BLE SM IOCAP_MODE, &iocap, sizeof(uint8_t)),
522: esp ble gap set security param(ESP BLE_SM_MAX_ KEY_ SIZE, &key_size, sizeof(uint8_t));
523: esp ble gap set security_ param(ESP BLE SM ONLY ACCEPT SPECIFIED SEC_ AUTH, &auth_option, sizeof(uint8_t))
524: esp ble gap set_ security param(ESP BLE SM OOB SUPPORT, &oob_ support, sizeof(uint8_t));

525: /* If your BLE device-acts-as •a Slave, the-init_ key means-you-hope which-types of key-of the master shoul
526: and-the response key-means which key you-can-distribute to the-master;
527: If-your BLE device acts as a master, the response key-means you-hope which-types of key-of the slave show
528: and-the init key-means which-key-you-can-distribute to-the slave */

529: esp ble gap set security param(ESP BLE SM_SET_ INIT_KEY, &init_key, sizeof(uint8_t));
530: esp ble_gap_set security_param (ESP_BLE_SM_SET_ RSP_KEY, &rsp_ key, sizeof(uint8_t));

img

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 09:28
    关注

    该回复引自免费微信小程序-皆我百晓生:


    在ESP32中使用静态链接密码时,调用esp_ble_gap_set_security_param函数多次是为了设置不同的安全参数。每次调用该函数可以设置不同的安全参数,以满足不同的需求。

    在给出的代码中,第519行到第524行的esp_ble_gap_set_security_param函数的调用分别设置了以下安全参数:

    • ESP_BLE_SM_SET_STATIC_PASSKEY:设置静态passkey(密码)
    • ESP_BLE_SM_AUTHEN_REQ_MODE:设置认证模式
    • ESP_BLE_SM_IOCAP_MODE:设置输入输出能力
    • ESP_BLE_SM_MAX_KEY_SIZE:设置最大密钥大小
    • ESP_BLE_SM_ONLY_ACCEPT_SPECIFIED_SEC_AUTH:设置仅接受指定的安全认证

    第529行和第530行的esp_ble_gap_set_security_param函数调用是为了设置初始密钥和响应密钥。根据注释,如果BLE设备作为从设备(Slave)时,初始密钥表示希望从设备分发给主设备的密钥类型,响应密钥表示可以分发给主设备的密钥类型。如果BLE设备作为主设备(Master)时,响应密钥表示希望从设备展示的密钥类型,初始密钥表示可以分发给从设备的密钥类型。

    因此,通过多次调用esp_ble_gap_set_security_param函数,可以设置不同的安全参数和密钥类型,以满足具体的使用场景和需求。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月26日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成