diff options
author | Harish Bandi <quic_hbandi@quicinc.com> | 2023-03-28 20:38:00 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-04-07 03:11:36 -0700 |
commit | e12c682726e6d4b8151c2f7249fdf16fdadc269d (patch) | |
tree | 92e68ca895b1fe80032d034b73907af244c6cfaf | |
parent | f20503c97e19542e15f2e94b0d4fc21fed70dfa1 (diff) |
Fix for BLE link is not encrypting
Included transport link parameter to the BTA_JvIsEncrypted()
Change-Id: I8e7178ba8e06e49e4a19370475655737b69b6bd6
-rw-r--r-- | bta/include/bta_jv_api.h | 3 | ||||
-rw-r--r-- | bta/jv/bta_jv_api.cc | 14 | ||||
-rw-r--r-- | btif/src/btif_gatt_util.cc | 14 |
3 files changed, 19 insertions, 12 deletions
diff --git a/bta/include/bta_jv_api.h b/bta/include/bta_jv_api.h index 8a893c053..f4b108c3b 100644 --- a/bta/include/bta_jv_api.h +++ b/bta/include/bta_jv_api.h @@ -29,6 +29,7 @@ #include "bta_api.h" #include "btm_api.h" #include "l2c_api.h" +#include "gatt_api.h" /***************************************************************************** * Constants and data types @@ -427,7 +428,7 @@ void BTA_JvDisable(void); * false if not. * ******************************************************************************/ -bool BTA_JvIsEncrypted(const RawAddress& bd_addr); +bool BTA_JvIsEncrypted(const RawAddress& bd_addr, tGATT_TRANSPORT transport_link); /******************************************************************************* * diff --git a/bta/jv/bta_jv_api.cc b/bta/jv/bta_jv_api.cc index cfeaa754f..f099cb829 100644 --- a/bta/jv/bta_jv_api.cc +++ b/bta/jv/bta_jv_api.cc @@ -117,15 +117,15 @@ void BTA_JvDisable(void) { * false if not. * ******************************************************************************/ -bool BTA_JvIsEncrypted(const RawAddress& bd_addr) { +bool BTA_JvIsEncrypted(const RawAddress& bd_addr, tGATT_TRANSPORT transport_link) { bool is_encrypted = false; - uint8_t sec_flags, le_flags; + uint8_t sec_flags = 0x00; - if (BTM_GetSecurityFlags(bd_addr, &sec_flags) && - BTM_GetSecurityFlagsByTransport(bd_addr, &le_flags, BT_TRANSPORT_LE)) { - if (sec_flags & BTM_SEC_FLAG_ENCRYPTED || le_flags & BTM_SEC_FLAG_ENCRYPTED) - is_encrypted = true; - } + if (BTM_GetSecurityFlagsByTransport(bd_addr, &sec_flags, transport_link)) { + if (sec_flags & BTM_SEC_FLAG_ENCRYPTED) { + is_encrypted = true; + } + } return is_encrypted; } /******************************************************************************* diff --git a/btif/src/btif_gatt_util.cc b/btif/src/btif_gatt_util.cc index 6be1cb238..4ae77953d 100644 --- a/btif/src/btif_gatt_util.cc +++ b/btif/src/btif_gatt_util.cc @@ -58,8 +58,10 @@ void btif_to_bta_response(tGATTS_RSP* p_dest, btgatt_response_t* p_src) { ******************************************************************************/ #if (BLE_DELAY_REQUEST_ENC == FALSE) -static bool btif_gatt_is_link_encrypted(const RawAddress& bd_addr) { - return BTA_JvIsEncrypted(bd_addr); +static bool btif_gatt_is_link_encrypted(const RawAddress& bd_addr, + tGATT_TRANSPORT transport_link) { + BTIF_TRACE_DEBUG(" Starting of %s: ", __func__); + return BTA_JvIsEncrypted(bd_addr, transport_link); } static void btif_gatt_set_encryption_cb(UNUSED_ATTR const RawAddress& bd_addr, @@ -75,11 +77,15 @@ static void btif_gatt_set_encryption_cb(UNUSED_ATTR const RawAddress& bd_addr, void btif_gatt_check_encrypted_link(RawAddress bd_addr, tGATT_TRANSPORT transport_link) { tBTM_LE_PENC_KEYS key; + BTIF_TRACE_DEBUG(" Starting of %s: transport = %d", __func__, + transport_link); if ((btif_storage_get_ble_bonding_key( &bd_addr, BTIF_DM_LE_KEY_PENC, (uint8_t*)&key, sizeof(tBTM_LE_PENC_KEYS)) == BT_STATUS_SUCCESS) && - !btif_gatt_is_link_encrypted(bd_addr)) { - BTIF_TRACE_DEBUG("%s: transport = %d", __func__, transport_link); + !btif_gatt_is_link_encrypted(bd_addr, transport_link)) { + BTIF_TRACE_DEBUG( + "%s: link is not encrypted, trigger Encryption transport = %d", + __func__, transport_link); BTA_DmSetEncryption(bd_addr, transport_link, &btif_gatt_set_encryption_cb, BTM_BLE_SEC_ENCRYPT); } |