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

Commit 0321255c authored by Myles Watson's avatar Myles Watson
Browse files

btif: Use key types to avoid casting

Test: build
Change-Id: If816c480219552dc8833b094a6228817883b774d
parent c98faf0c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -209,10 +209,12 @@ bt_status_t btif_storage_remove_hid_info(RawAddress* remote_bd_addr);
bool btif_storage_is_restricted_device(const RawAddress* remote_bd_addr);

bt_status_t btif_storage_add_ble_bonding_key(RawAddress* remote_bd_addr,
                                             char* key, uint8_t key_type,
                                             const uint8_t* key,
                                             uint8_t key_type,
                                             uint8_t key_length);
bt_status_t btif_storage_get_ble_bonding_key(RawAddress* remote_bd_addr,
                                             uint8_t key_type, char* key_value,
                                             uint8_t key_type,
                                             uint8_t* key_value,
                                             int key_length);

bt_status_t btif_storage_add_ble_local_key(char* key, uint8_t key_type,
+15 −15
Original line number Diff line number Diff line
@@ -2883,32 +2883,32 @@ void btif_dm_save_ble_bonding_keys(void) {
  RawAddress bd_addr = pairing_cb.bd_addr;

  if (pairing_cb.ble.is_penc_key_rcvd) {
    btif_storage_add_ble_bonding_key(&bd_addr, (char*)&pairing_cb.ble.penc_key,
                                     BTIF_DM_LE_KEY_PENC,
    btif_storage_add_ble_bonding_key(
        &bd_addr, (uint8_t*)&pairing_cb.ble.penc_key, BTIF_DM_LE_KEY_PENC,
        sizeof(tBTM_LE_PENC_KEYS));
  }

  if (pairing_cb.ble.is_pid_key_rcvd) {
    btif_storage_add_ble_bonding_key(&bd_addr, (char*)&pairing_cb.ble.pid_key,
                                     BTIF_DM_LE_KEY_PID,
    btif_storage_add_ble_bonding_key(
        &bd_addr, (uint8_t*)&pairing_cb.ble.pid_key, BTIF_DM_LE_KEY_PID,
        sizeof(tBTM_LE_PID_KEYS));
  }

  if (pairing_cb.ble.is_pcsrk_key_rcvd) {
    btif_storage_add_ble_bonding_key(&bd_addr, (char*)&pairing_cb.ble.pcsrk_key,
                                     BTIF_DM_LE_KEY_PCSRK,
    btif_storage_add_ble_bonding_key(
        &bd_addr, (uint8_t*)&pairing_cb.ble.pcsrk_key, BTIF_DM_LE_KEY_PCSRK,
        sizeof(tBTM_LE_PCSRK_KEYS));
  }

  if (pairing_cb.ble.is_lenc_key_rcvd) {
    btif_storage_add_ble_bonding_key(&bd_addr, (char*)&pairing_cb.ble.lenc_key,
                                     BTIF_DM_LE_KEY_LENC,
    btif_storage_add_ble_bonding_key(
        &bd_addr, (uint8_t*)&pairing_cb.ble.lenc_key, BTIF_DM_LE_KEY_LENC,
        sizeof(tBTM_LE_LENC_KEYS));
  }

  if (pairing_cb.ble.is_lcsrk_key_rcvd) {
    btif_storage_add_ble_bonding_key(&bd_addr, (char*)&pairing_cb.ble.lcsrk_key,
                                     BTIF_DM_LE_KEY_LCSRK,
    btif_storage_add_ble_bonding_key(
        &bd_addr, (uint8_t*)&pairing_cb.ble.lcsrk_key, BTIF_DM_LE_KEY_LCSRK,
        sizeof(tBTM_LE_LCSRK_KEYS));
  }

+4 −5
Original line number Diff line number Diff line
@@ -99,11 +99,10 @@ static void btif_gatt_set_encryption_cb(UNUSED_ATTR const RawAddress& bd_addr,
#if (BLE_DELAY_REQUEST_ENC == FALSE)
void btif_gatt_check_encrypted_link(RawAddress bd_addr,
                                    tGATT_TRANSPORT transport_link) {
  char buf[100];

  if ((btif_storage_get_ble_bonding_key(&bd_addr, BTIF_DM_LE_KEY_PENC, buf,
                                        sizeof(tBTM_LE_PENC_KEYS)) ==
       BT_STATUS_SUCCESS) &&
  tBTM_LE_PENC_KEYS key;
  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);
    BTA_DmSetEncryption(bd_addr, transport_link, &btif_gatt_set_encryption_cb,
+12 −10
Original line number Diff line number Diff line
@@ -474,11 +474,11 @@ static void btif_read_le_key(const uint8_t key_type, const size_t key_len,
  CHECK(device_added);
  CHECK(key_found);

  char buffer[100];
  memset(buffer, 0, sizeof(buffer));
  tBTA_LE_KEY_VALUE key;
  memset(&key, 0, sizeof(key));

  if (btif_storage_get_ble_bonding_key(&bd_addr, key_type, buffer, key_len) ==
      BT_STATUS_SUCCESS) {
  if (btif_storage_get_ble_bonding_key(&bd_addr, key_type, (uint8_t*)&key,
                                       key_len) == BT_STATUS_SUCCESS) {
    if (add_key) {
      if (!*device_added) {
        BTA_DmAddBleDevice(bd_addr, addr_type, BT_DEVICE_TYPE_BLE);
@@ -487,7 +487,7 @@ static void btif_read_le_key(const uint8_t key_type, const size_t key_len,

      BTIF_TRACE_DEBUG("%s() Adding key type %d for %s", __func__, key_type,
                       bd_addr.ToString().c_str());
      BTA_DmAddBleKey(bd_addr, (tBTA_LE_KEY_VALUE*)buffer, key_type);
      BTA_DmAddBleKey(bd_addr, &key, key_type);
    }

    *key_found = true;
@@ -933,7 +933,8 @@ bt_status_t btif_storage_load_bonded_devices(void) {
 ******************************************************************************/

bt_status_t btif_storage_add_ble_bonding_key(RawAddress* remote_bd_addr,
                                             char* key, uint8_t key_type,
                                             const uint8_t* key,
                                             uint8_t key_type,
                                             uint8_t key_length) {
  const char* name;
  switch (key_type) {
@@ -958,8 +959,8 @@ bt_status_t btif_storage_add_ble_bonding_key(RawAddress* remote_bd_addr,
    default:
      return BT_STATUS_FAIL;
  }
  int ret = btif_config_set_bin(remote_bd_addr->ToString().c_str(), name,
                                (const uint8_t*)key, key_length);
  int ret = btif_config_set_bin(remote_bd_addr->ToString().c_str(), name, key,
                                key_length);
  btif_config_save();
  return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
}
@@ -975,7 +976,8 @@ bt_status_t btif_storage_add_ble_bonding_key(RawAddress* remote_bd_addr,
 *
 ******************************************************************************/
bt_status_t btif_storage_get_ble_bonding_key(RawAddress* remote_bd_addr,
                                             uint8_t key_type, char* key_value,
                                             uint8_t key_type,
                                             uint8_t* key_value,
                                             int key_length) {
  const char* name;
  switch (key_type) {
@@ -1001,7 +1003,7 @@ bt_status_t btif_storage_get_ble_bonding_key(RawAddress* remote_bd_addr,
  }
  size_t length = key_length;
  int ret = btif_config_get_bin(remote_bd_addr->ToString().c_str(), name,
                                (uint8_t*)key_value, &length);
                                key_value, &length);
  return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
}