summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarish Bandi <quic_hbandi@quicinc.com>2023-03-28 20:38:00 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2023-04-07 03:11:36 -0700
commite12c682726e6d4b8151c2f7249fdf16fdadc269d (patch)
tree92e68ca895b1fe80032d034b73907af244c6cfaf
parentf20503c97e19542e15f2e94b0d4fc21fed70dfa1 (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.h3
-rw-r--r--bta/jv/bta_jv_api.cc14
-rw-r--r--btif/src/btif_gatt_util.cc14
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);
}