Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 45179bdc authored by Martin Brabham's avatar Martin Brabham Committed by Xin Li
Browse files

Reset the IRK after all devices are unpaired

Bug: 204355134
Test: Check IRK, pair devices, unpair all devices, Check IRK
Tag: #security
Bug: 213904741
Merged-In: I8e44f010a72dcdec595d81293a05f49ccc054065
Change-Id: I8e44f010a72dcdec595d81293a05f49ccc054065
parent 0f71a628
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include "bta/dm/bta_dm_int.h"
#include "bta/gatt/bta_gattc_int.h"
#include "bta/include/bta_dm_ci.h"
#include "btif/include/btif_config.h"
#include "btif/include/btif_dm.h"
#include "btif/include/btif_storage.h"
#include "btif/include/stack_manager.h"
@@ -658,6 +659,13 @@ void bta_dm_remove_device(const RawAddress& bd_addr) {
  if (!other_address_connected && !other_address.IsEmpty()) {
    bta_dm_process_remove_device(other_address);
  }

  /* Check the length of the paired devices, and if 0 then reset IRK */
  auto paired_devices = btif_config_get_paired_devices();
  if (paired_devices.empty()) {
    LOG_INFO("Last paired device removed, resetting IRK");
    btm_ble_reset_id();
  }
}

/*******************************************************************************
+3 −0
Original line number Diff line number Diff line
@@ -252,3 +252,6 @@ void read_phy_cb(
    uint8_t* data, uint16_t len) {
  mock_function_count_map[__func__]++;
}
void btm_ble_reset_id(void) {
  mock_function_count_map[__func__]++;
}