/linux-4.1.27/net/bluetooth/ |
D | smp.h | 89 __u8 irk[16]; member 188 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], 190 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
|
D | hci_core.c | 2280 struct smp_irk *irk; in hci_find_irk_by_rpa() local 2283 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa() 2284 if (!bacmp(&irk->rpa, rpa)) { in hci_find_irk_by_rpa() 2286 return irk; in hci_find_irk_by_rpa() 2290 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa() 2291 if (smp_irk_matches(hdev, irk->val, rpa)) { in hci_find_irk_by_rpa() 2292 bacpy(&irk->rpa, rpa); in hci_find_irk_by_rpa() 2294 return irk; in hci_find_irk_by_rpa() 2305 struct smp_irk *irk; in hci_find_irk_by_addr() local 2312 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_addr() [all …]
|
D | hci_debugfs.c | 653 16, hdev->irk, &hdev->rpa); in identity_show() 824 struct smp_irk *irk; in identity_resolving_keys_show() local 827 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in identity_resolving_keys_show() 829 &irk->bdaddr, irk->addr_type, in identity_resolving_keys_show() 830 16, irk->val, &irk->rpa); in identity_resolving_keys_show()
|
D | smp.c | 105 u8 irk[16]; member 463 static int smp_ah(struct crypto_blkcipher *tfm, const u8 irk[16], in smp_ah() 473 err = smp_e(tfm, irk, _res); in smp_ah() 490 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], in smp_irk_matches() 503 BT_DBG("RPA %pMR IRK %*phN", bdaddr, 16, irk); in smp_irk_matches() 505 err = smp_ah(smp->tfm_aes, irk, &bdaddr->b[3], hash); in smp_irk_matches() 512 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) in smp_generate_rpa() 528 err = smp_ah(smp->tfm_aes, irk, &rpa->b[3], rpa->b); in smp_generate_rpa() 1295 memcpy(idinfo.irk, hdev->irk, sizeof(idinfo.irk)); in smp_distribute_keys() 2437 memcpy(smp->irk, info->irk, 16); in smp_cmd_ident_info() [all …]
|
D | hci_conn.c | 732 struct smp_irk *irk; in hci_connect_le() local 779 irk = hci_find_irk_by_addr(hdev, dst, dst_type); in hci_connect_le() 780 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { in hci_connect_le() 781 dst = &irk->rpa; in hci_connect_le()
|
D | mgmt.c | 5367 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy() 5371 memset(hdev->irk, 0, sizeof(hdev->irk)); in set_privacy() 5387 static bool irk_is_valid(struct mgmt_irk_info *irk) in irk_is_valid() argument 5389 switch (irk->addr.type) { in irk_is_valid() 5395 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) in irk_is_valid() 5449 struct mgmt_irk_info *irk = &cp->irks[i]; in load_irks() local 5452 if (irk->addr.type == BDADDR_LE_PUBLIC) in load_irks() 5457 hci_add_irk(hdev, &irk->addr.bdaddr, addr_type, irk->val, in load_irks() 7613 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk) in mgmt_new_irk() argument 7630 if (bacmp(&irk->rpa, BDADDR_ANY)) in mgmt_new_irk() [all …]
|
D | hci_event.c | 4445 struct smp_irk *irk; in hci_le_conn_complete_evt() local 4522 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); in hci_le_conn_complete_evt() 4523 if (irk) { in hci_le_conn_complete_evt() 4524 bacpy(&conn->dst, &irk->bdaddr); in hci_le_conn_complete_evt() 4525 conn->dst_type = irk->addr_type; in hci_le_conn_complete_evt() 4710 struct smp_irk *irk; in process_adv_report() local 4737 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) in process_adv_report() 4742 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in process_adv_report() 4743 if (irk) { in process_adv_report() 4744 bdaddr = &irk->bdaddr; in process_adv_report() [all …]
|
D | hci_request.c | 348 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_update_random_address()
|
/linux-4.1.27/include/net/bluetooth/ |
D | mgmt.h | 402 __u8 irk[16]; member 715 struct mgmt_irk_info irk; member
|
D | hci_core.h | 378 __u8 irk[16]; member 1399 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk);
|