Home | History | Annotate | Download | only in btm

Lines Matching refs:ble

21  *  This file contains functions for BLE device control utilities, and LE
105 p_dev_rec->ble.ble_addr_type = addr_type;
107 memcpy(p_dev_rec->ble.pseudo_addr, bd_addr, BD_ADDR_LEN);
112 p_info->results.ble_addr_type = p_dev_rec->ble.ble_addr_type ;
348 *p_addr_type = p_dev_rec->ble.ble_addr_type;
473 ** Description Set scan parameter used in BLE connection request
623 p_dev_rec->ble.ble_addr_type = p_inq_info->results.ble_addr_type;
626 memcmp(p_dev_rec->ble.pseudo_addr, remote_bda, BD_ADDR_LEN) == 0)
629 *p_addr_type = p_dev_rec->ble.ble_addr_type;
631 else if (memcmp(p_dev_rec->ble.pseudo_addr, remote_bda, BD_ADDR_LEN) == 0)
634 *p_addr_type = p_dev_rec->ble.ble_addr_type;
686 memcpy(remote_bda, p_dev_rec->ble.pseudo_addr, BD_ADDR_LEN);
687 if (btm_bda_to_acl(p_dev_rec->ble.pseudo_addr, transport) != NULL)
808 ** Description This function is to set maximum BLE transmission packet size
1074 p_dev_rec->ble.keys.local_counter++;
1076 p_dev_rec->ble.keys.counter++;
1079 p_dev_rec->ble.keys.local_counter,
1080 p_dev_rec->ble.keys.counter);
1088 ** Description This function is to get the BLE key type that has been exchanged
1102 *p_key_types = p_dev_rec->ble.key_type;
1130 if (p_dev_rec && p_dev_rec->ble.keys.div)
1133 *p_div = p_dev_rec->ble.keys.div;
1144 ** an BLE key. SMP is internal, whereas all the keys shall
1146 ** when application passes ble key stored in NVRAM to the btm_sec.
1174 memcpy(p_rec->ble.keys.pltk, p_keys->penc_key.ltk, BT_OCTET16_LEN);
1175 memcpy(p_rec->ble.keys.rand, p_keys->penc_key.rand, BT_OCTET8_LEN);
1176 p_rec->ble.keys.sec_level = p_keys->penc_key.sec_level;
1177 p_rec->ble.keys.ediv = p_keys->penc_key.ediv;
1178 p_rec->ble.keys.key_size = p_keys->penc_key.key_size;
1179 p_rec->ble.key_type |= BTM_LE_KEY_PENC;
1186 p_rec->ble.key_type,
1188 p_rec->ble.keys.sec_level);
1194 p_rec->ble.keys.irk[i] = p_keys->pid_key.irk[i];
1197 //memcpy( p_rec->ble.keys.irk, p_keys->pid_key, BT_OCTET16_LEN); todo will crash the system
1198 memcpy(p_rec->ble.static_addr, p_keys->pid_key.static_addr, BD_ADDR_LEN);
1199 p_rec->ble.static_addr_type = p_keys->pid_key.addr_type;
1200 p_rec->ble.key_type |= BTM_LE_KEY_PID;
1201 BTM_TRACE_DEBUG("BTM_LE_KEY_PID key_type=0x%x save peer IRK", p_rec->ble.key_type);
1209 memcpy(p_rec->ble.keys.pcsrk, p_keys->pcsrk_key.csrk, BT_OCTET16_LEN);
1210 p_rec->ble.keys.srk_sec_level = p_keys->pcsrk_key.sec_level;
1211 p_rec->ble.keys.counter = p_keys->pcsrk_key.counter;
1212 p_rec->ble.key_type |= BTM_LE_KEY_PCSRK;
1220 p_rec->ble.key_type,
1222 p_rec->ble.keys.srk_sec_level,
1223 p_rec->ble.keys.counter );
1227 memcpy(p_rec->ble.keys.lltk, p_keys->lenc_key.ltk, BT_OCTET16_LEN);
1228 p_rec->ble.keys.div = p_keys->lenc_key.div; /* update DIV */
1229 p_rec->ble.keys.sec_level = p_keys->lenc_key.sec_level;
1230 p_rec->ble.keys.key_size = p_keys->lenc_key.key_size;
1231 p_rec->ble.key_type |= BTM_LE_KEY_LENC;
1234 p_rec->ble.key_type,
1235 p_rec->ble.keys.div,
1236 p_rec->ble.keys.key_size,
1237 p_rec->ble.keys.sec_level );
1241 memcpy (p_rec->ble.keys.lcsrk, p_keys->lcsrk_key.csrk, BT_OCTET16_LEN);
1242 p_rec->ble.keys.div = p_keys->lcsrk_key.div; /* update DIV */
1243 p_rec->ble.keys.local_csrk_sec_level = p_keys->lcsrk_key.sec_level;
1244 p_rec->ble.keys.local_counter = p_keys->lcsrk_key.counter;
1245 p_rec->ble.key_type |= BTM_LE_KEY_LCSRK;
1247 p_rec->ble.key_type,
1248 p_rec->ble.keys.div,
1249 p_rec->ble.keys.local_csrk_sec_level,
1250 p_rec->ble.keys.local_counter );
1254 p_rec->ble.key_type |= BTM_LE_KEY_LID;
1261 BTM_TRACE_DEBUG ("BLE key type 0x%02x updated for BDA: %08x%04x (btm_sec_save_le_key)", key_type,
1265 /* Notify the application that one of the BLE keys has been updated
1277 BTM_TRACE_WARNING ("BLE key type 0x%02x called for Unknown BDA or type: %08x%04x !! (btm_sec_save_le_key)", key_type,
1333 ** Description Check BLE link security level match.
1378 if (p_dev_rec->ble.key_type & BTM_LE_KEY_PENC)
1379 cur_sec_level = p_dev_rec->ble.keys.sec_level;
1550 else if (p_rec->ble.key_type & BTM_LE_KEY_PENC)
1552 if (btsnd_hcic_ble_start_enc(p_rec->ble_hci_handle, p_rec->ble.keys.rand,
1553 p_rec->ble.keys.ediv, p_rec->ble.keys.pltk))
1598 p_dev_rec->enc_key_size = p_dev_rec->ble.keys.key_size;
1610 gatt_notify_enc_cmpl(p_dev_rec->ble.pseudo_addr);
1636 p_cb->key_size = p_rec->ble.keys.key_size;
1638 BTM_TRACE_ERROR("key size = %d", p_rec->ble.keys.key_size);
1645 if (p_rec->ble.key_type & BTM_LE_KEY_LENC)
1646 btsnd_hcic_ble_ltk_req_reply(btm_cb.enc_handle, p_rec->ble.keys.lltk);
1796 match_rec->ble.active_addr_type = BTM_BLE_ADDR_RRA;
1797 memcpy(match_rec->ble.cur_rand_addr, bda, BD_ADDR_LEN);
1801 memcpy(bda, match_rec->ble.pseudo_addr, BD_ADDR_LEN);
1875 p_dev_rec->ble.ble_addr_type = addr_type;
1877 memcpy(p_dev_rec->ble.pseudo_addr, bda, BD_ADDR_LEN);
1885 p_dev_rec->ble.active_addr_type = BTM_BLE_ADDR_PSEUDO;
1887 if (p_dev_rec->ble.ble_addr_type == BLE_ADDR_RANDOM && !addr_matched)
1888 memcpy(p_dev_rec->ble.cur_rand_addr, bda, BD_ADDR_LEN);
2173 UINT32_TO_STREAM(pp, p_rec->ble.keys.local_counter);
2174 UINT32_TO_STREAM(p_mac, p_rec->ble.keys.local_counter);
2176 if ((ret = aes_cipher_msg_auth_code(p_rec->ble.keys.lcsrk, p_buf, (UINT16)(len + 4),
2214 if (p_rec == NULL || (p_rec && !(p_rec->ble.key_type & BTM_LE_KEY_PCSRK)))
2218 else if (counter < p_rec->ble.keys.counter)
2229 p_rec->ble.keys.counter);
2231 if (aes_cipher_msg_auth_code(p_rec->ble.keys.pcsrk, p_orig, len, BTM_CMAC_TLEN_SIZE, p_mac))
2288 else if (p_dev_rec->ble.key_type & BTM_LE_KEY_PENC)
2291 *p_le_key_size = p_dev_rec->ble.keys.key_size;
2543 BTM_TRACE_DEBUG("BLE DHK generated.");
2594 BTM_TRACE_DEBUG("BLE IR generated.");