summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/bta/csis/csis_client.cc2
-rw-r--r--system/bta/csis/csis_client_test.cc4
-rw-r--r--system/bta/has/has_client.cc2
-rw-r--r--system/bta/has/has_client_test.cc6
-rw-r--r--system/bta/hearing_aid/hearing_aid.cc2
-rw-r--r--system/bta/hh/bta_hh_le.cc4
-rw-r--r--system/bta/le_audio/client.cc2
-rw-r--r--system/bta/le_audio/le_audio_client_test.cc6
-rw-r--r--system/bta/test/common/btm_api_mock.cc4
-rw-r--r--system/bta/test/common/btm_api_mock.h4
-rw-r--r--system/bta/vc/vc.cc2
-rw-r--r--system/bta/vc/vc_test.cc8
-rw-r--r--system/stack/btm/btm_ble_sec.cc3
-rw-r--r--system/stack/btm/btm_sec.cc4
-rw-r--r--system/stack/btm/btm_sec.h2
-rw-r--r--system/stack/btm/btm_sec_cb.cc34
-rw-r--r--system/stack/btm/btm_sec_cb.h4
-rw-r--r--system/stack/btm/btm_security_client_interface.cc2
-rw-r--r--system/stack/btm/security_device_record.h3
-rw-r--r--system/stack/eatt/eatt_impl.h2
-rw-r--r--system/stack/gatt/gatt_auth.cc4
-rw-r--r--system/stack/gatt/gatt_utils.cc2
-rw-r--r--system/stack/include/security_client_callbacks.h2
-rw-r--r--system/stack/test/common/mock_btm_api_layer.cc4
-rw-r--r--system/stack/test/common/mock_btm_api_layer.h4
-rw-r--r--system/stack/test/eatt/eatt_test.cc4
-rw-r--r--system/test/mock/mock_stack_btm_interface.cc2
-rw-r--r--system/test/mock/mock_stack_btm_sec.cc8
-rw-r--r--system/test/mock/mock_stack_btm_sec.h6
-rw-r--r--system/test/mock/mock_stack_security_client_interface.h2
30 files changed, 63 insertions, 75 deletions
diff --git a/system/bta/csis/csis_client.cc b/system/bta/csis/csis_client.cc
index 1abf97356e..aaf20ddeca 100644
--- a/system/bta/csis/csis_client.cc
+++ b/system/bta/csis/csis_client.cc
@@ -271,7 +271,7 @@ public:
auto device = FindDeviceByAddress(address);
if (device == nullptr) {
- if (!BTM_IsLinkKeyKnown(address, BT_TRANSPORT_LE)) {
+ if (!BTM_IsBonded(address, BT_TRANSPORT_LE)) {
log::error("Connecting {} when not bonded", address);
callbacks_->OnConnectionState(address, ConnectionState::DISCONNECTED);
return;
diff --git a/system/bta/csis/csis_client_test.cc b/system/bta/csis/csis_client_test.cc
index a9a2480849..85f0fd64ea 100644
--- a/system/bta/csis/csis_client_test.cc
+++ b/system/bta/csis/csis_client_test.cc
@@ -369,7 +369,7 @@ protected:
SetMockCsisLockCallback(&csis_lock_cb);
callbacks.reset(new MockCsisCallbacks());
- ON_CALL(btm_interface, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(true)));
ON_CALL(btm_interface, BTM_IsEncrypted(_, _)).WillByDefault(DoAll(Return(true)));
@@ -724,7 +724,7 @@ TEST_F(CsisClientTest, test_connect_after_remove) {
CsisClient::Get()->RemoveDevice(test_address);
EXPECT_CALL(*callbacks, OnConnectionState(test_address, ConnectionState::DISCONNECTED));
- ON_CALL(btm_interface, IsLinkKeyKnown(_, _)).WillByDefault(Return(false));
+ ON_CALL(btm_interface, IsDeviceBonded(_, _)).WillByDefault(Return(false));
CsisClient::Get()->Connect(test_address);
Mock::VerifyAndClearExpectations(callbacks.get());
diff --git a/system/bta/has/has_client.cc b/system/bta/has/has_client.cc
index 15bdfc5bfc..cb99045b41 100644
--- a/system/bta/has/has_client.cc
+++ b/system/bta/has/has_client.cc
@@ -164,7 +164,7 @@ public:
void Connect(const RawAddress& address) override {
log::info("{}", address);
- if (!BTM_IsLinkKeyKnown(address, BT_TRANSPORT_LE)) {
+ if (!BTM_IsBonded(address, BT_TRANSPORT_LE)) {
log::error("Connecting {} when not bonded", address);
callbacks_->OnConnectionState(ConnectionState::DISCONNECTED, address);
return;
diff --git a/system/bta/has/has_client_test.cc b/system/bta/has/has_client_test.cc
index 527ab2ef93..9b02f00027 100644
--- a/system/bta/has/has_client_test.cc
+++ b/system/bta/has/has_client_test.cc
@@ -633,7 +633,7 @@ protected:
encryption_result = true;
- ON_CALL(btm_interface, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(true)));
ON_CALL(btm_interface, SetEncryption(_, _, _, _, _))
.WillByDefault(Invoke([this](const RawAddress& bd_addr, tBT_TRANSPORT /*transport*/,
@@ -861,7 +861,7 @@ protected:
ON_CALL(btm_interface, BTM_IsEncrypted(address, _))
.WillByDefault(DoAll(Return(encryption_result)));
- ON_CALL(btm_interface, IsLinkKeyKnown(address, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(address, _)).WillByDefault(DoAll(Return(true)));
}
void InjectNotifyReadPresetResponse(uint16_t conn_id, RawAddress const& address, uint16_t handle,
@@ -1189,7 +1189,7 @@ TEST_F(HasClientTest, test_connect_after_remove) {
EXPECT_CALL(*callbacks, OnConnectionState(ConnectionState::DISCONNECTED, test_address));
// Device has no Link Key
- ON_CALL(btm_interface, IsLinkKeyKnown(test_address, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(test_address, _)).WillByDefault(DoAll(Return(true)));
HasClient::Get()->Connect(test_address);
Mock::VerifyAndClearExpectations(&callbacks);
}
diff --git a/system/bta/hearing_aid/hearing_aid.cc b/system/bta/hearing_aid/hearing_aid.cc
index 58a4313638..d19ac8070c 100644
--- a/system/bta/hearing_aid/hearing_aid.cc
+++ b/system/bta/hearing_aid/hearing_aid.cc
@@ -572,7 +572,7 @@ public:
return;
}
- if (BTM_IsLinkKeyKnown(address, BT_TRANSPORT_LE)) {
+ if (BTM_IsBonded(address, BT_TRANSPORT_LE)) {
/* if bonded and link not encrypted */
BTM_SetEncryption(address, BT_TRANSPORT_LE, encryption_callback, nullptr,
BTM_BLE_SEC_ENCRYPT);
diff --git a/system/bta/hh/bta_hh_le.cc b/system/bta/hh/bta_hh_le.cc
index 5a5c261f98..031462aedc 100644
--- a/system/bta/hh/bta_hh_le.cc
+++ b/system/bta/hh/bta_hh_le.cc
@@ -280,7 +280,7 @@ void bta_hh_le_open_conn(tBTA_HH_DEV_CB* p_cb, bool direct) {
bta_hh_cb.le_cb_index[BTA_HH_GET_LE_CB_IDX(p_cb->hid_handle)] = p_cb->index; // Update index map
if (!direct) {
// don't reconnect unbonded device
- if (!BTM_IsLinkKeyKnown(p_cb->link_spec.addrt.bda, BT_TRANSPORT_LE)) {
+ if (!BTM_IsBonded(p_cb->link_spec.addrt.bda, BT_TRANSPORT_LE)) {
return;
}
log::debug("Add {} to background connection list", p_cb->link_spec);
@@ -1108,7 +1108,7 @@ void bta_hh_start_security(tBTA_HH_DEV_CB* p_cb, const tBTA_HH_DATA* /* p_buf */
log::debug("addr:{} already encrypted", p_cb->link_spec.addrt.bda);
p_cb->status = BTA_HH_OK;
bta_hh_sm_execute(p_cb, BTA_HH_ENC_CMPL_EVT, NULL);
- } else if (BTM_IsLinkKeyKnown(p_cb->link_spec.addrt.bda, BT_TRANSPORT_LE)) {
+ } else if (BTM_IsBonded(p_cb->link_spec.addrt.bda, BT_TRANSPORT_LE)) {
/* if bonded and link not encrypted */
log::debug("addr:{} bonded, not encrypted", p_cb->link_spec.addrt.bda);
p_cb->status = BTA_HH_ERR_AUTH_FAILED;
diff --git a/system/bta/le_audio/client.cc b/system/bta/le_audio/client.cc
index 18f5f501da..16114df846 100644
--- a/system/bta/le_audio/client.cc
+++ b/system/bta/le_audio/client.cc
@@ -1882,7 +1882,7 @@ public:
LeAudioDevice* leAudioDevice = leAudioDevices_.FindByAddress(address);
if (!leAudioDevice) {
- if (!BTM_IsLinkKeyKnown(address, BT_TRANSPORT_LE)) {
+ if (!BTM_IsBonded(address, BT_TRANSPORT_LE)) {
log::error("Connecting {} when not bonded", address);
callbacks_->OnConnectionState(ConnectionState::DISCONNECTED, address);
return;
diff --git a/system/bta/le_audio/le_audio_client_test.cc b/system/bta/le_audio/le_audio_client_test.cc
index 2e518e4ae5..42c7f9d634 100644
--- a/system/bta/le_audio/le_audio_client_test.cc
+++ b/system/bta/le_audio/le_audio_client_test.cc
@@ -1535,7 +1535,7 @@ protected:
mock_iso_manager_ = MockIsoManager::GetInstance();
ON_CALL(*mock_iso_manager_, RegisterCigCallbacks(_)).WillByDefault(SaveArg<0>(&cig_callbacks_));
- ON_CALL(mock_btm_interface_, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(mock_btm_interface_, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(true)));
// Required since we call OnAudioDataReady()
const auto codec_location = ::bluetooth::le_audio::types::CodecLocation::HOST;
@@ -1779,7 +1779,7 @@ protected:
ON_CALL(mock_btm_interface_, BTM_IsEncrypted(address, _))
.WillByDefault(DoAll(Return(isEncrypted)));
- ON_CALL(mock_btm_interface_, IsLinkKeyKnown(address, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(mock_btm_interface_, IsDeviceBonded(address, _)).WillByDefault(DoAll(Return(true)));
EXPECT_CALL(mock_gatt_interface_, Open(gatt_if, address, BTM_BLE_DIRECT_CONNECTION, _))
.Times(1);
@@ -5797,7 +5797,7 @@ TEST_F(UnicastTest, ConnectAfterRemove) {
LeAudioClient::Get(), test_address0));
SyncOnMainLoop();
- ON_CALL(mock_btm_interface_, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(false)));
+ ON_CALL(mock_btm_interface_, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(false)));
do_in_main_thread(base::BindOnce(&LeAudioClient::Connect, base::Unretained(LeAudioClient::Get()),
test_address0));
diff --git a/system/bta/test/common/btm_api_mock.cc b/system/bta/test/common/btm_api_mock.cc
index 87907f80f8..7f3f228dfe 100644
--- a/system/bta/test/common/btm_api_mock.cc
+++ b/system/bta/test/common/btm_api_mock.cc
@@ -61,9 +61,9 @@ void bluetooth::manager::SetMockBtmInterface(MockBtmInterface* mock_btm_interfac
};
}
-bool BTM_IsLinkKeyKnown(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
+bool BTM_IsBonded(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
log::assert_that(btm_interface != nullptr, "Mock btm interface not set!");
- return btm_interface->IsLinkKeyKnown(bd_addr, transport);
+ return btm_interface->IsDeviceBonded(bd_addr, transport);
}
bool BTM_IsEncrypted(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
diff --git a/system/bta/test/common/btm_api_mock.h b/system/bta/test/common/btm_api_mock.h
index 6f746a66ac..a293985a80 100644
--- a/system/bta/test/common/btm_api_mock.h
+++ b/system/bta/test/common/btm_api_mock.h
@@ -35,7 +35,7 @@ class BtmInterface {
public:
virtual bool GetSecurityFlagsByTransport(const RawAddress& bd_addr, uint8_t* p_sec_flags,
tBT_TRANSPORT transport) = 0;
- virtual bool IsLinkKeyKnown(const RawAddress& bd_addr, tBT_TRANSPORT transport) = 0;
+ virtual bool IsDeviceBonded(const RawAddress& bd_addr, tBT_TRANSPORT transport) = 0;
virtual bool BTM_IsEncrypted(const RawAddress& bd_addr, tBT_TRANSPORT transport) = 0;
virtual tBTM_STATUS SetEncryption(const RawAddress& bd_addr, tBT_TRANSPORT transport,
tBTM_SEC_CALLBACK* p_callback, void* p_ref_data,
@@ -66,7 +66,7 @@ public:
MOCK_METHOD((bool), GetSecurityFlagsByTransport,
(const RawAddress& bd_addr, uint8_t* p_sec_flags, tBT_TRANSPORT transport),
(override));
- MOCK_METHOD((bool), IsLinkKeyKnown, (const RawAddress& bd_addr, tBT_TRANSPORT transport),
+ MOCK_METHOD((bool), IsDeviceBonded, (const RawAddress& bd_addr, tBT_TRANSPORT transport),
(override));
MOCK_METHOD((bool), BTM_IsEncrypted, (const RawAddress& bd_addr, tBT_TRANSPORT transport),
(override));
diff --git a/system/bta/vc/vc.cc b/system/bta/vc/vc.cc
index 0313b3962c..df8e6a00e7 100644
--- a/system/bta/vc/vc.cc
+++ b/system/bta/vc/vc.cc
@@ -144,7 +144,7 @@ public:
auto device = volume_control_devices_.FindByAddress(address);
if (!device) {
- if (!BTM_IsLinkKeyKnown(address, BT_TRANSPORT_LE)) {
+ if (!BTM_IsBonded(address, BT_TRANSPORT_LE)) {
bluetooth::log::error("Connecting {} when not bonded", address);
callbacks_->OnConnectionState(ConnectionState::DISCONNECTED, address);
return;
diff --git a/system/bta/vc/vc_test.cc b/system/bta/vc/vc_test.cc
index 4961a32399..c52dc9f2a6 100644
--- a/system/bta/vc/vc_test.cc
+++ b/system/bta/vc/vc_test.cc
@@ -444,7 +444,7 @@ protected:
gatt::SetMockBtaGattQueue(&gatt_queue);
reset_mock_function_count_map();
- ON_CALL(btm_interface, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(true)));
// default action for GetCharacteristic function call
ON_CALL(gatt_interface, GetCharacteristic(_, _))
@@ -695,7 +695,7 @@ protected:
void SetEncryptionResult(const RawAddress& address, bool success) {
ON_CALL(btm_interface, BTM_IsEncrypted(address, _)).WillByDefault(DoAll(Return(false)));
- ON_CALL(btm_interface, IsLinkKeyKnown(address, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(address, _)).WillByDefault(DoAll(Return(true)));
ON_CALL(btm_interface, SetEncryption(address, _, _, _, BTM_BLE_SEC_ENCRYPT))
.WillByDefault(
Invoke([&success, this](const RawAddress& bd_addr, tBT_TRANSPORT transport,
@@ -820,7 +820,7 @@ TEST_F(VolumeControlTest, test_connect_after_remove) {
Mock::VerifyAndClearExpectations(&callbacks);
EXPECT_CALL(callbacks, OnConnectionState(ConnectionState::DISCONNECTED, test_address)).Times(1);
- ON_CALL(btm_interface, IsLinkKeyKnown(_, _)).WillByDefault(DoAll(Return(false)));
+ ON_CALL(btm_interface, IsDeviceBonded(_, _)).WillByDefault(DoAll(Return(false)));
VolumeControl::Get()->Connect(test_address);
Mock::VerifyAndClearExpectations(&callbacks);
@@ -1033,7 +1033,7 @@ TEST_F(VolumeControlTest, test_service_discovery_completed_before_encryption) {
TestConnect(test_address);
ON_CALL(btm_interface, BTM_IsEncrypted(test_address, _)).WillByDefault(DoAll(Return(false)));
- ON_CALL(btm_interface, IsLinkKeyKnown(test_address, _)).WillByDefault(DoAll(Return(true)));
+ ON_CALL(btm_interface, IsDeviceBonded(test_address, _)).WillByDefault(DoAll(Return(true)));
ON_CALL(btm_interface, SetEncryption(test_address, _, _, _, _))
.WillByDefault(Return(tBTM_STATUS::BTM_SUCCESS));
diff --git a/system/stack/btm/btm_ble_sec.cc b/system/stack/btm/btm_ble_sec.cc
index 29d48e6033..8ac6f25bac 100644
--- a/system/stack/btm/btm_ble_sec.cc
+++ b/system/stack/btm/btm_ble_sec.cc
@@ -2110,8 +2110,7 @@ std::optional<Octet16> BTM_BleGetPeerIRK(const RawAddress address) {
}
bool BTM_BleIsLinkKeyKnown(const RawAddress address) {
- tBTM_SEC_DEV_REC* p_dev_rec = btm_find_dev(address);
- return p_dev_rec != nullptr && p_dev_rec->sec_rec.is_le_link_key_known();
+ return btm_sec_cb.IsDeviceBonded(address, BT_TRANSPORT_LE);
}
std::optional<tBLE_BD_ADDR> BTM_BleGetIdentityAddress(const RawAddress address) {
diff --git a/system/stack/btm/btm_sec.cc b/system/stack/btm/btm_sec.cc
index e181349129..3f82fc5ac1 100644
--- a/system/stack/btm/btm_sec.cc
+++ b/system/stack/btm/btm_sec.cc
@@ -407,8 +407,8 @@ bool BTM_IsLinkKeyAuthed(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
return btm_sec_cb.IsLinkKeyAuthenticated(bd_addr, transport);
}
-bool BTM_IsLinkKeyKnown(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
- return btm_sec_cb.IsLinkKeyKnown(bd_addr, transport);
+bool BTM_IsBonded(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
+ return btm_sec_cb.IsDeviceBonded(bd_addr, transport);
}
bool BTM_IsAuthenticated(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
diff --git a/system/stack/btm/btm_sec.h b/system/stack/btm/btm_sec.h
index ade49b883e..05bafc40d5 100644
--- a/system/stack/btm/btm_sec.h
+++ b/system/stack/btm/btm_sec.h
@@ -57,7 +57,7 @@ bool BTM_SecRegister(const tBTM_APPL_INFO* p_cb_info);
bool BTM_IsEncrypted(const RawAddress& bd_addr, tBT_TRANSPORT transport);
bool BTM_IsLinkKeyAuthed(const RawAddress& bd_addr, tBT_TRANSPORT transport);
-bool BTM_IsLinkKeyKnown(const RawAddress& bd_addr, tBT_TRANSPORT transport);
+bool BTM_IsBonded(const RawAddress& bd_addr, tBT_TRANSPORT transport = BT_TRANSPORT_AUTO);
bool BTM_IsAuthenticated(const RawAddress& bd_addr, tBT_TRANSPORT transport);
bool BTM_CanReadDiscoverableCharacteristics(const RawAddress& bd_addr);
void BTM_update_version_info(const RawAddress& bd_addr,
diff --git a/system/stack/btm/btm_sec_cb.cc b/system/stack/btm/btm_sec_cb.cc
index c40d8fe416..3f253059c2 100644
--- a/system/stack/btm/btm_sec_cb.cc
+++ b/system/stack/btm/btm_sec_cb.cc
@@ -117,7 +117,7 @@ tBTM_SEC_SERV_REC* tBTM_SEC_CB::find_first_serv_rec(bool is_originator, uint16_t
tBTM_SEC_REC* tBTM_SEC_CB::getSecRec(const RawAddress bd_addr) {
tBTM_SEC_DEV_REC* p_dev_rec = btm_find_dev(bd_addr);
- if (p_dev_rec) {
+ if (p_dev_rec != nullptr) {
return &p_dev_rec->sec_rec;
}
return nullptr;
@@ -171,33 +171,25 @@ bool tBTM_SEC_CB::IsDeviceAuthenticated(const RawAddress bd_addr, tBT_TRANSPORT
return false;
}
-bool tBTM_SEC_CB::IsLinkKeyKnown(const RawAddress bd_addr, tBT_TRANSPORT transport) {
+bool tBTM_SEC_CB::IsDeviceBonded(const RawAddress bd_addr, tBT_TRANSPORT transport) {
tBTM_SEC_REC* sec_rec = getSecRec(bd_addr);
- if (sec_rec) {
- if (transport == BT_TRANSPORT_BR_EDR) {
- return sec_rec->is_link_key_known();
- } else if (transport == BT_TRANSPORT_LE) {
- return sec_rec->is_le_link_key_known();
- }
- log::error("unknown transport:{}", bt_transport_text(transport));
+ if (sec_rec == nullptr) {
return false;
}
- log::error("unknown device:{}", bd_addr);
- return false;
-}
+ bool bonded = false;
-bool tBTM_SEC_CB::IsDeviceBonded(const RawAddress bd_addr) {
- tBTM_SEC_DEV_REC* p_dev_rec = btm_find_dev(bd_addr);
- bool is_bonded = false;
+ // Check BR/EDR bond status if requested transport is BT_TRANSPORT_BR_EDR or BT_TRANSPORT_AUTO
+ if (transport != BT_TRANSPORT_LE) {
+ bonded = sec_rec->is_link_key_known();
+ }
- if (p_dev_rec &&
- ((p_dev_rec->sec_rec.ble_keys.key_type && p_dev_rec->sec_rec.is_le_link_key_known()) ||
- p_dev_rec->sec_rec.is_link_key_known())) {
- is_bonded = true;
+ // Check LE bond status if requested transport is BT_TRANSPORT_LE or BT_TRANSPORT_AUTO
+ if (transport != BT_TRANSPORT_BR_EDR) {
+ bonded |= (sec_rec->ble_keys.key_type != BTM_LE_KEY_NONE && sec_rec->is_le_link_key_known());
}
- log::debug("Device record bonded check peer:{} is_bonded:{}", bd_addr, is_bonded);
- return is_bonded;
+
+ return bonded;
}
#define BTM_NO_AVAIL_SEC_SERVICES ((uint16_t)0xffff)
diff --git a/system/stack/btm/btm_sec_cb.h b/system/stack/btm/btm_sec_cb.h
index b851aa32cb..1e3ae3b258 100644
--- a/system/stack/btm/btm_sec_cb.h
+++ b/system/stack/btm/btm_sec_cb.h
@@ -84,13 +84,11 @@ public:
tBTM_SEC_SERV_REC* find_first_serv_rec(bool is_originator, uint16_t psm);
- bool IsDeviceBonded(const RawAddress bd_addr);
+ bool IsDeviceBonded(const RawAddress bd_addr, tBT_TRANSPORT transport = BT_TRANSPORT_AUTO);
bool IsDeviceEncrypted(const RawAddress bd_addr, tBT_TRANSPORT transport);
bool IsDeviceAuthenticated(const RawAddress bd_addr, tBT_TRANSPORT transport);
bool IsLinkKeyAuthenticated(const RawAddress bd_addr, tBT_TRANSPORT transport);
- bool IsLinkKeyKnown(const RawAddress bd_addr, tBT_TRANSPORT transport);
-
tBTM_SEC_REC* getSecRec(const RawAddress bd_addr);
bool AddService(bool is_originator, const char* p_name, uint8_t service_id, uint16_t sec_level,
diff --git a/system/stack/btm/btm_security_client_interface.cc b/system/stack/btm/btm_security_client_interface.cc
index 3adda4d0f8..ae3161b6e0 100644
--- a/system/stack/btm/btm_security_client_interface.cc
+++ b/system/stack/btm/btm_security_client_interface.cc
@@ -55,7 +55,7 @@ static SecurityClientInterface security = {
.BTM_SetEncryption = BTM_SetEncryption,
.BTM_IsEncrypted = BTM_IsEncrypted,
.BTM_SecIsLeSecurityPending = BTM_SecIsLeSecurityPending,
- .BTM_IsLinkKeyKnown = BTM_IsLinkKeyKnown,
+ .BTM_IsBonded = BTM_IsBonded,
.BTM_SetSecurityLevel = BTM_SetSecurityLevel,
.BTM_SecClrService = BTM_SecClrService,
diff --git a/system/stack/btm/security_device_record.h b/system/stack/btm/security_device_record.h
index 61a6d182a6..c7074ec253 100644
--- a/system/stack/btm/security_device_record.h
+++ b/system/stack/btm/security_device_record.h
@@ -221,12 +221,11 @@ struct tBTM_SEC_REC {
LinkKey link_key; /* Device link key */
uint8_t link_key_type; /* Type of key used in pairing */
uint8_t enc_key_size; /* current link encryption key size */
+ tBTM_BOND_TYPE bond_type; /* Whether the BR/EDR pairing was persistent or temporary */
// LE Link Key Info
tBTM_SEC_BLE_KEYS ble_keys;
- tBTM_BOND_TYPE bond_type; /* bond type */
-
public:
bool is_device_authenticated() const { return sec_flags & BTM_SEC_AUTHENTICATED; }
void set_device_authenticated() { sec_flags |= BTM_SEC_AUTHENTICATED; }
diff --git a/system/stack/eatt/eatt_impl.h b/system/stack/eatt/eatt_impl.h
index c746695cb7..0d27726af4 100644
--- a/system/stack/eatt/eatt_impl.h
+++ b/system/stack/eatt/eatt_impl.h
@@ -308,7 +308,7 @@ struct eatt_impl {
std::vector<uint16_t> empty;
tL2CAP_LE_RESULT_CODE result =
tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_AUTHENTICATION;
- if (BTM_IsLinkKeyKnown(bda, BT_TRANSPORT_LE)) {
+ if (BTM_IsBonded(bda, BT_TRANSPORT_LE)) {
result = tL2CAP_LE_RESULT_CODE::L2CAP_LE_RESULT_INSUFFICIENT_ENCRYP;
}
log::error("ACL to device {} is unencrypted.", bda);
diff --git a/system/stack/gatt/gatt_auth.cc b/system/stack/gatt/gatt_auth.cc
index 4323c8ed13..7c4b935389 100644
--- a/system/stack/gatt/gatt_auth.cc
+++ b/system/stack/gatt/gatt_auth.cc
@@ -299,7 +299,7 @@ static tGATT_SEC_ACTION gatt_determine_sec_act(tGATT_CLCB* p_clcb) {
return GATT_SEC_ENC_PENDING;
}
- is_link_key_known = BTM_IsLinkKeyKnown(p_tcb->peer_bda, p_clcb->p_tcb->transport);
+ is_link_key_known = BTM_IsBonded(p_tcb->peer_bda, p_clcb->p_tcb->transport);
is_link_encrypted = BTM_IsEncrypted(p_tcb->peer_bda, p_clcb->p_tcb->transport);
is_key_mitm = BTM_IsLinkKeyAuthed(p_tcb->peer_bda, p_clcb->p_tcb->transport);
@@ -363,7 +363,7 @@ tGATT_STATUS gatt_get_link_encrypt_status(tGATT_TCB& tcb) {
tGATT_STATUS encrypt_status = GATT_NOT_ENCRYPTED;
bool encrypted = BTM_IsEncrypted(tcb.peer_bda, tcb.transport);
- bool link_key_known = BTM_IsLinkKeyKnown(tcb.peer_bda, tcb.transport);
+ bool link_key_known = BTM_IsBonded(tcb.peer_bda, tcb.transport);
bool link_key_authed = BTM_IsLinkKeyAuthed(tcb.peer_bda, tcb.transport);
if (encrypted && link_key_known) {
diff --git a/system/stack/gatt/gatt_utils.cc b/system/stack/gatt/gatt_utils.cc
index b0d18f892e..f401be9285 100644
--- a/system/stack/gatt/gatt_utils.cc
+++ b/system/stack/gatt/gatt_utils.cc
@@ -867,7 +867,7 @@ std::list<tGATT_SRV_LIST_ELEM>::iterator gatt_sr_find_i_rcb_by_handle(uint16_t h
void gatt_sr_get_sec_info(const RawAddress& rem_bda, tBT_TRANSPORT transport,
tGATT_SEC_FLAG* p_sec_flag, uint8_t* p_key_size) {
tGATT_SEC_FLAG flags = {};
- flags.is_link_key_known = BTM_IsLinkKeyKnown(rem_bda, transport);
+ flags.is_link_key_known = BTM_IsBonded(rem_bda, transport);
flags.is_link_key_authed = BTM_IsLinkKeyAuthed(rem_bda, transport);
flags.is_encrypted = BTM_IsEncrypted(rem_bda, transport);
flags.can_read_discoverable_characteristics = BTM_CanReadDiscoverableCharacteristics(rem_bda);
diff --git a/system/stack/include/security_client_callbacks.h b/system/stack/include/security_client_callbacks.h
index d9d19f33f6..f8a29e7bc3 100644
--- a/system/stack/include/security_client_callbacks.h
+++ b/system/stack/include/security_client_callbacks.h
@@ -111,7 +111,7 @@ typedef struct {
tBTM_BLE_SEC_ACT sec_act);
bool (*BTM_IsEncrypted)(const RawAddress& bd_addr, tBT_TRANSPORT transport);
bool (*BTM_SecIsLeSecurityPending)(const RawAddress& bd_addr);
- bool (*BTM_IsLinkKeyKnown)(const RawAddress& bd_addr, tBT_TRANSPORT transport);
+ bool (*BTM_IsBonded)(const RawAddress& bd_addr, tBT_TRANSPORT transport);
// Secure service management
bool (*BTM_SetSecurityLevel)(bool is_originator, const char* p_name, uint8_t service_id,
diff --git a/system/stack/test/common/mock_btm_api_layer.cc b/system/stack/test/common/mock_btm_api_layer.cc
index 83d969dc72..763309abea 100644
--- a/system/stack/test/common/mock_btm_api_layer.cc
+++ b/system/stack/test/common/mock_btm_api_layer.cc
@@ -37,8 +37,8 @@ bool BTM_IsEncrypted(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport)
return btm_api_interface->IsEncrypted(remote_bd_addr, transport);
}
-bool BTM_IsLinkKeyKnown(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) {
- return btm_api_interface->IsLinkKeyKnown(remote_bd_addr, transport);
+bool BTM_IsBonded(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) {
+ return btm_api_interface->IsDeviceBonded(remote_bd_addr, transport);
}
uint8_t btm_ble_read_sec_key_size(const RawAddress& bd_addr) {
diff --git a/system/stack/test/common/mock_btm_api_layer.h b/system/stack/test/common/mock_btm_api_layer.h
index b9a748d36c..e852053661 100644
--- a/system/stack/test/common/mock_btm_api_layer.h
+++ b/system/stack/test/common/mock_btm_api_layer.h
@@ -31,7 +31,7 @@ public:
uint32_t mx_chan_id) = 0;
virtual uint8_t acl_link_role(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) = 0;
virtual bool IsEncrypted(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) = 0;
- virtual bool IsLinkKeyKnown(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) = 0;
+ virtual bool IsDeviceBonded(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport) = 0;
virtual uint8_t ReadSecKeySize(const RawAddress& remote_bd_addr) = 0;
virtual ~BtmApiInterface() = default;
};
@@ -43,7 +43,7 @@ public:
uint16_t psm, uint32_t mx_proto_id, uint32_t mx_chan_id));
MOCK_METHOD2(acl_link_role, uint8_t(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport));
MOCK_METHOD2(IsEncrypted, bool(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport));
- MOCK_METHOD2(IsLinkKeyKnown, bool(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport));
+ MOCK_METHOD2(IsDeviceBonded, bool(const RawAddress& remote_bd_addr, tBT_TRANSPORT transport));
MOCK_METHOD1(ReadSecKeySize, uint8_t(const RawAddress& remote_bd_addr));
};
diff --git a/system/stack/test/eatt/eatt_test.cc b/system/stack/test/eatt/eatt_test.cc
index 31ceba5060..130893a0a5 100644
--- a/system/stack/test/eatt/eatt_test.cc
+++ b/system/stack/test/eatt/eatt_test.cc
@@ -336,7 +336,7 @@ TEST_F(EattTest, IncomingEattConnectionByKnownDeviceEncryptionOff) {
ON_CALL(btm_api_interface_, IsEncrypted)
.WillByDefault(
[](const RawAddress& /*addr*/, tBT_TRANSPORT /*transport*/) { return false; });
- ON_CALL(btm_api_interface_, IsLinkKeyKnown)
+ ON_CALL(btm_api_interface_, IsDeviceBonded)
.WillByDefault(
[](const RawAddress& /*addr*/, tBT_TRANSPORT /*transport*/) { return true; });
ON_CALL(gatt_interface_, ClientReadSupportedFeatures)
@@ -370,7 +370,7 @@ TEST_F(EattTest, IncomingEattConnectionByUnknownDeviceEncryptionOff) {
ON_CALL(btm_api_interface_, IsEncrypted)
.WillByDefault(
[](const RawAddress& /*addr*/, tBT_TRANSPORT /*transport*/) { return false; });
- ON_CALL(btm_api_interface_, IsLinkKeyKnown)
+ ON_CALL(btm_api_interface_, IsDeviceBonded)
.WillByDefault(
[](const RawAddress& /*addr*/, tBT_TRANSPORT /*transport*/) { return false; });
EXPECT_CALL(mock_stack_l2cap_interface_,
diff --git a/system/test/mock/mock_stack_btm_interface.cc b/system/test/mock/mock_stack_btm_interface.cc
index 44c542081d..20a8f7a586 100644
--- a/system/test/mock/mock_stack_btm_interface.cc
+++ b/system/test/mock/mock_stack_btm_interface.cc
@@ -140,7 +140,7 @@ struct btm_client_interface_t default_btm_client_interface = {
.BTM_SecIsLeSecurityPending = [](const RawAddress& /* bd_addr */) -> bool {
return false;
},
- .BTM_IsLinkKeyKnown = [](const RawAddress& /* bd_addr */,
+ .BTM_IsBonded = [](const RawAddress& /* bd_addr */,
tBT_TRANSPORT /* transport */) -> bool { return false; },
.BTM_SetSecurityLevel = [](bool /* is_originator */, const char* /*p_name */,
uint8_t /* service_id */, uint16_t /* sec_level */,
diff --git a/system/test/mock/mock_stack_btm_sec.cc b/system/test/mock/mock_stack_btm_sec.cc
index ca943498fe..532404c409 100644
--- a/system/test/mock/mock_stack_btm_sec.cc
+++ b/system/test/mock/mock_stack_btm_sec.cc
@@ -46,7 +46,7 @@ struct BTM_ConfirmReqReply BTM_ConfirmReqReply;
struct BTM_IsAuthenticated BTM_IsAuthenticated;
struct BTM_IsEncrypted BTM_IsEncrypted;
struct BTM_IsLinkKeyAuthed BTM_IsLinkKeyAuthed;
-struct BTM_IsLinkKeyKnown BTM_IsLinkKeyKnown;
+struct BTM_IsBonded BTM_IsBonded;
struct BTM_PINCodeReply BTM_PINCodeReply;
struct BTM_PasskeyReqReply BTM_PasskeyReqReply;
struct BTM_PeerSupportsSecureConnections BTM_PeerSupportsSecureConnections;
@@ -111,7 +111,7 @@ bool BTM_CanReadDiscoverableCharacteristics::return_value = false;
bool BTM_IsAuthenticated::return_value = false;
bool BTM_IsEncrypted::return_value = false;
bool BTM_IsLinkKeyAuthed::return_value = false;
-bool BTM_IsLinkKeyKnown::return_value = false;
+bool BTM_IsBonded::return_value = false;
bool BTM_PeerSupportsSecureConnections::return_value = false;
tBTM_STATUS BTM_SecBond::return_value = tBTM_STATUS::BTM_SUCCESS;
tBTM_STATUS BTM_SecBondCancel::return_value = tBTM_STATUS::BTM_SUCCESS;
@@ -155,9 +155,9 @@ bool BTM_IsLinkKeyAuthed(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
inc_func_call_count(__func__);
return test::mock::stack_btm_sec::BTM_IsLinkKeyAuthed(bd_addr, transport);
}
-bool BTM_IsLinkKeyKnown(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
+bool BTM_IsBonded(const RawAddress& bd_addr, tBT_TRANSPORT transport) {
inc_func_call_count(__func__);
- return test::mock::stack_btm_sec::BTM_IsLinkKeyKnown(bd_addr, transport);
+ return test::mock::stack_btm_sec::BTM_IsBonded(bd_addr, transport);
}
void BTM_PINCodeReply(const RawAddress& bd_addr, tBTM_STATUS res, uint8_t pin_len, uint8_t* p_pin) {
inc_func_call_count(__func__);
diff --git a/system/test/mock/mock_stack_btm_sec.h b/system/test/mock/mock_stack_btm_sec.h
index a54782c9fb..3ae397be41 100644
--- a/system/test/mock/mock_stack_btm_sec.h
+++ b/system/test/mock/mock_stack_btm_sec.h
@@ -111,10 +111,10 @@ struct BTM_IsLinkKeyAuthed {
};
extern struct BTM_IsLinkKeyAuthed BTM_IsLinkKeyAuthed;
-// Name: BTM_IsLinkKeyKnown
+// Name: BTM_IsBonded
// Params: const RawAddress& bd_addr, tBT_TRANSPORT transport
// Return: bool
-struct BTM_IsLinkKeyKnown {
+struct BTM_IsBonded {
static bool return_value;
std::function<bool(const RawAddress& bd_addr, tBT_TRANSPORT transport)> body{
[](const RawAddress& /* bd_addr */, tBT_TRANSPORT /* transport */) {
@@ -124,7 +124,7 @@ struct BTM_IsLinkKeyKnown {
return body(bd_addr, transport);
}
};
-extern struct BTM_IsLinkKeyKnown BTM_IsLinkKeyKnown;
+extern struct BTM_IsBonded BTM_IsBonded;
// Name: BTM_PINCodeReply
// Params: const RawAddress& bd_addr, tBTM_STATUS res, uint8_t pin_len, uint8_t*
diff --git a/system/test/mock/mock_stack_security_client_interface.h b/system/test/mock/mock_stack_security_client_interface.h
index 224d880905..1487326ac5 100644
--- a/system/test/mock/mock_stack_security_client_interface.h
+++ b/system/test/mock/mock_stack_security_client_interface.h
@@ -44,7 +44,7 @@ struct MockSecurityClientInterface : public SecurityClientInterface {
MOCK_METHOD((bool), BTM_IsEncrypted,
(const RawAddress& /* bd_addr */, tBT_TRANSPORT /* transport */));
MOCK_METHOD((bool), BTM_SecIsLeSecurityPending, (const RawAddress& /* bd_addr */));
- MOCK_METHOD((bool), BTM_IsLinkKeyKnown,
+ MOCK_METHOD((bool), BTM_IsDeviceBonded,
(const RawAddress& /* bd_addr */, tBT_TRANSPORT /* transport */));
MOCK_METHOD((bool), BTM_SetSecurityLevel,
(bool /* is_originator */, const char* /* p_name */, uint8_t /* service_id */,