Home
last modified time | relevance | path

Searched refs:irk (Results 1 – 10 of 10) sorted by relevance

/linux-4.4.14/net/bluetooth/
Dsmp.h89 __u8 irk[16]; member
189 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16],
191 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
Dhci_core.c2383 struct smp_irk *irk; in hci_find_irk_by_rpa() local
2386 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
2387 if (!bacmp(&irk->rpa, rpa)) { in hci_find_irk_by_rpa()
2389 return irk; in hci_find_irk_by_rpa()
2393 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
2394 if (smp_irk_matches(hdev, irk->val, rpa)) { in hci_find_irk_by_rpa()
2395 bacpy(&irk->rpa, rpa); in hci_find_irk_by_rpa()
2397 return irk; in hci_find_irk_by_rpa()
2408 struct smp_irk *irk; in hci_find_irk_by_addr() local
2415 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_addr()
[all …]
Dhci_conn.c67 struct smp_irk *irk; in hci_connect_le_scan_cleanup() local
75 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in hci_connect_le_scan_cleanup()
76 if (irk) { in hci_connect_le_scan_cleanup()
77 bdaddr = &irk->bdaddr; in hci_connect_le_scan_cleanup()
78 bdaddr_type = irk->addr_type; in hci_connect_le_scan_cleanup()
789 struct smp_irk *irk; in hci_connect_le() local
839 irk = hci_find_irk_by_addr(hdev, dst, dst_type); in hci_connect_le()
840 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { in hci_connect_le()
841 dst = &irk->rpa; in hci_connect_le()
Dhci_debugfs.c653 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()
Dsmp.c111 u8 irk[16]; member
481 static int smp_ah(struct crypto_blkcipher *tfm, const u8 irk[16], in smp_ah()
491 err = smp_e(tfm, irk, _res); in smp_ah()
508 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], in smp_irk_matches()
521 BT_DBG("RPA %pMR IRK %*phN", bdaddr, 16, irk); in smp_irk_matches()
523 err = smp_ah(smp->tfm_aes, irk, &bdaddr->b[3], hash); in smp_irk_matches()
530 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) in smp_generate_rpa()
546 err = smp_ah(smp->tfm_aes, irk, &rpa->b[3], rpa->b); in smp_generate_rpa()
1296 memcpy(idinfo.irk, hdev->irk, sizeof(idinfo.irk)); in smp_distribute_keys()
2464 memcpy(smp->irk, info->irk, 16); in smp_cmd_ident_info()
[all …]
Dmgmt.c5512 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy()
5516 memset(hdev->irk, 0, sizeof(hdev->irk)); in set_privacy()
5532 static bool irk_is_valid(struct mgmt_irk_info *irk) in irk_is_valid() argument
5534 switch (irk->addr.type) { in irk_is_valid()
5540 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) in irk_is_valid()
5594 struct mgmt_irk_info *irk = &cp->irks[i]; in load_irks() local
5596 hci_add_irk(hdev, &irk->addr.bdaddr, in load_irks()
5597 le_addr_type(irk->addr.type), irk->val, in load_irks()
7856 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent) in mgmt_new_irk() argument
7864 bacpy(&ev.rpa, &irk->rpa); in mgmt_new_irk()
[all …]
Dhci_event.c4452 struct smp_irk *irk; in hci_le_conn_complete_evt() local
4529 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); in hci_le_conn_complete_evt()
4530 if (irk) { in hci_le_conn_complete_evt()
4531 bacpy(&conn->dst, &irk->bdaddr); in hci_le_conn_complete_evt()
4532 conn->dst_type = irk->addr_type; in hci_le_conn_complete_evt()
4724 struct smp_irk *irk; in process_adv_report() local
4772 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) in process_adv_report()
4777 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in process_adv_report()
4778 if (irk) { in process_adv_report()
4779 bdaddr = &irk->bdaddr; in process_adv_report()
[all …]
Dhci_request.c356 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_update_random_address()
/linux-4.4.14/include/net/bluetooth/
Dmgmt.h402 __u8 irk[16]; member
715 struct mgmt_irk_info irk; member
Dhci_core.h388 __u8 irk[16]; member
1484 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);