component/bt: Fix the bug of can't pair if master send pair req but slave don't send sec req.
This commit is contained in:
parent
9274814268
commit
da32fbce7a
2 changed files with 15 additions and 5 deletions
|
@ -179,10 +179,20 @@ typedef enum {
|
||||||
|
|
||||||
/* relate to BTA_DM_BLE_SEC_xxx in bta_api.h */
|
/* relate to BTA_DM_BLE_SEC_xxx in bta_api.h */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ESP_BLE_SEC_NONE = 0, /* relate to BTA_DM_BLE_SEC_NONE in bta_api.h */
|
ESP_BLE_SEC_ENCRYPT = 1, /* relate to BTA_DM_BLE_SEC_ENCRYPT in bta_api.h. If the device has already
|
||||||
ESP_BLE_SEC_ENCRYPT, /* relate to BTA_DM_BLE_SEC_ENCRYPT in bta_api.h */
|
bonded, the stack will used LTK to encrypt with the remote device directly.
|
||||||
ESP_BLE_SEC_ENCRYPT_NO_MITM, /* relate to BTA_DM_BLE_SEC_ENCRYPT_NO_MITM in bta_api.h */
|
Else if the device hasn't bonded, the stack will used the default authentication request
|
||||||
ESP_BLE_SEC_ENCRYPT_MITM, /* relate to BTA_DM_BLE_SEC_ENCRYPT_MITM in bta_api.h */
|
used the esp_ble_gap_set_security_param function set by the user. */
|
||||||
|
ESP_BLE_SEC_ENCRYPT_NO_MITM, /* relate to BTA_DM_BLE_SEC_ENCRYPT_NO_MITM in bta_api.h. If the device has already
|
||||||
|
bonded, the stack will check the LTK Whether the authentication request has been met, if met, used the LTK
|
||||||
|
to encrypt with the remote device directly, else Re-pair with the remote device.
|
||||||
|
Else if the device hasn't bonded, the stack will used NO MITM authentication request in the current link instead of
|
||||||
|
used the authreq in the esp_ble_gap_set_security_param function set by the user. */
|
||||||
|
ESP_BLE_SEC_ENCRYPT_MITM, /* relate to BTA_DM_BLE_SEC_ENCRYPT_MITM in bta_api.h. If the device has already
|
||||||
|
bonded, the stack will check the LTK Whether the authentication request has been met, if met, used the LTK
|
||||||
|
to encrypt with the remote device directly, else Re-pair with the remote device.
|
||||||
|
Else if the device hasn't bonded, the stack will used MITM authentication request in the current link instead of
|
||||||
|
used the authreq in the esp_ble_gap_set_security_param function set by the user. */
|
||||||
}esp_ble_sec_act_t;
|
}esp_ble_sec_act_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
@ -1413,7 +1413,7 @@ tBTM_STATUS btm_ble_set_encryption (BD_ADDR bd_addr, void *p_ref_data, UINT8 lin
|
||||||
|
|
||||||
switch (sec_act) {
|
switch (sec_act) {
|
||||||
case BTM_BLE_SEC_ENCRYPT:
|
case BTM_BLE_SEC_ENCRYPT:
|
||||||
if (link_role == BTM_ROLE_MASTER) {
|
if (link_role == BTM_ROLE_MASTER && (p_rec->ble.key_type & BTM_LE_KEY_PENC)) {
|
||||||
/* start link layer encryption using the security info stored */
|
/* start link layer encryption using the security info stored */
|
||||||
cmd = btm_ble_start_encrypt(bd_addr, FALSE, NULL);
|
cmd = btm_ble_start_encrypt(bd_addr, FALSE, NULL);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue