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

Commit 16a237e7 authored by Myles Watson's avatar Myles Watson
Browse files

Security: Move parsing to HCI: Remote OOB

The security code should not have to parse packets.

Bug: 301661850
Test: mma -j32
Change-Id: I0791250571fdacadaf297e3c32b6f0e159905c68
parent 6dd1ab52
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -3047,16 +3047,15 @@ void btm_simple_pair_complete(const RawAddress bd_addr, uint8_t status) {
 * Returns          void
 *
 ******************************************************************************/
void btm_rem_oob_req(const uint8_t* p) {
void btm_rem_oob_req(const RawAddress bd_addr) {
  tBTM_SP_RMT_OOB evt_data;
  tBTM_SEC_DEV_REC* p_dev_rec;
  Octet16 c;
  Octet16 r;

  evt_data.bd_addr = bd_addr;
  RawAddress& p_bda = evt_data.bd_addr;

  STREAM_TO_BDADDR(p_bda, p);

  VLOG(2) << __func__ << " BDA: " << ADDRESS_TO_LOGGABLE_STR(p_bda);
  p_dev_rec = btm_find_dev(p_bda);
  if ((p_dev_rec != NULL) && btm_sec_cb.api.p_sp_callback) {
+1 −1
Original line number Diff line number Diff line
@@ -582,7 +582,7 @@ void btm_simple_pair_complete(const RawAddress bd_addr, uint8_t status);
 * Returns          void
 *
 ******************************************************************************/
void btm_rem_oob_req(const uint8_t* p);
void btm_rem_oob_req(const RawAddress bd_addr);

/*******************************************************************************
 *
+7 −1
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ static void btu_hcif_esco_connection_chg_evt(uint8_t* p);

/* Parsing functions for btm functions */

static void btu_hcif_rem_oob_req(const uint8_t* p);
static void btu_hcif_simple_pair_complete(const uint8_t* p);
static void btu_hcif_create_conn_cancel_complete(const uint8_t* p,
                                                 uint16_t evt_len);
@@ -310,7 +311,7 @@ void btu_hcif_process_event(UNUSED_ATTR uint8_t controller_id,
      btm_proc_sp_req_evt(BTM_SP_KEY_REQ_EVT, p);
      break;
    case HCI_REMOTE_OOB_DATA_REQUEST_EVT:
      btm_rem_oob_req(p);
      btu_hcif_rem_oob_req(p);
      break;
    case HCI_SIMPLE_PAIRING_COMPLETE_EVT:
      btu_hcif_simple_pair_complete(p);
@@ -1421,6 +1422,11 @@ static void btu_hcif_mode_change_evt(uint8_t* p) {

/* Parsing functions for btm functions */

void btu_hcif_rem_oob_req(const uint8_t* p) {
  RawAddress bda;
  STREAM_TO_BDADDR(bda, p);
  btm_rem_oob_req(bda);
}
void btu_hcif_simple_pair_complete(const uint8_t* p) {
  RawAddress bd_addr;
  uint8_t status;
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ void btm_io_capabilities_req(RawAddress p);
void btm_io_capabilities_rsp(const tBTM_SP_IO_RSP evt_data);
void btm_proc_sp_req_evt(tBTM_SP_EVT event, const uint8_t* p);
void btm_read_local_oob_complete(uint8_t* p, uint16_t evt_len);
void btm_rem_oob_req(const uint8_t* p);
void btm_rem_oob_req(const RawAddress bd_addr);
void btm_sec_auth_complete(uint16_t handle, tHCI_STATUS status);
void btm_sec_disconnected(uint16_t handle, tHCI_STATUS reason, std::string);
void btm_sec_encrypt_change(uint16_t handle, tHCI_STATUS status,
+2 −2
Original line number Diff line number Diff line
@@ -320,9 +320,9 @@ void btm_read_local_oob_complete(uint8_t* p, uint16_t evt_len) {
  inc_func_call_count(__func__);
  test::mock::stack_btm_sec::btm_read_local_oob_complete(p, evt_len);
}
void btm_rem_oob_req(const uint8_t* p) {
void btm_rem_oob_req(const RawAddress bd_addr) {
  inc_func_call_count(__func__);
  test::mock::stack_btm_sec::btm_rem_oob_req(p);
  test::mock::stack_btm_sec::btm_rem_oob_req(bd_addr);
}
void btm_sec_abort_access_req(const RawAddress& bd_addr) {
  inc_func_call_count(__func__);
Loading