Home
last modified time | relevance | path

Searched refs:irk (Results 1 - 21 of 21) sorted by relevance

/kernel/linux/linux-5.10/net/bluetooth/
H A Dsmp.h90 __u8 irk[16]; member
191 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16],
193 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
H A Dhci_core.c2508 struct smp_irk *irk; in hci_find_irk_by_rpa() local
2511 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
2512 if (!bacmp(&irk->rpa, rpa)) { in hci_find_irk_by_rpa()
2513 irk_to_return = irk; in hci_find_irk_by_rpa()
2518 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
2519 if (smp_irk_matches(hdev, irk->val, rpa)) { in hci_find_irk_by_rpa()
2520 bacpy(&irk->rpa, rpa); in hci_find_irk_by_rpa()
2521 irk_to_return = irk; in hci_find_irk_by_rpa()
2543 struct smp_irk *irk; in hci_find_irk_by_addr() local
2550 list_for_each_entry_rcu(irk, in hci_find_irk_by_addr()
2651 struct smp_irk *irk; hci_add_irk() local
2724 struct smp_irk *irk; hci_bdaddr_is_paired() local
[all...]
H A Dhci_debugfs.c630 16, hdev->irk, &hdev->rpa); in identity_show()
772 struct smp_irk *irk; in identity_resolving_keys_show() local
775 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in identity_resolving_keys_show()
777 &irk->bdaddr, irk->addr_type, in identity_resolving_keys_show()
778 16, irk->val, &irk->rpa); in identity_resolving_keys_show()
H A 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()
1002 struct smp_irk *irk; in hci_connect_le() local
1044 irk = hci_find_irk_by_addr(hdev, dst, dst_type); in hci_connect_le()
1045 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { in hci_connect_le()
1046 dst = &irk in hci_connect_le()
[all...]
H A Dsmp.c113 u8 irk[16]; member
471 static int smp_ah(const u8 irk[16], const u8 r[3], u8 res[3]) in smp_ah() argument
480 err = smp_e(irk, _res); in smp_ah()
497 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], in smp_irk_matches() argument
507 bt_dev_dbg(hdev, "RPA %pMR IRK %*phN", bdaddr, 16, irk); in smp_irk_matches()
509 err = smp_ah(irk, &bdaddr->b[3], hash); in smp_irk_matches()
516 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) in smp_generate_rpa() argument
529 err = smp_ah(irk, &rpa->b[3], rpa->b); in smp_generate_rpa()
1321 memcpy(idinfo.irk, hdev->irk, sizeo in smp_distribute_keys()
3536 const u8 irk[16] = { test_ah() local
[all...]
H A Dhci_request.c755 struct smp_irk *irk; in del_from_accept_list() local
757 irk = hci_find_irk_by_addr(req->hdev, bdaddr, bdaddr_type); in del_from_accept_list()
758 if (irk) { in del_from_accept_list()
809 struct smp_irk *irk; in add_to_accept_list() local
811 irk = hci_find_irk_by_addr(hdev, &params->addr, in add_to_accept_list()
813 if (irk) { in add_to_accept_list()
818 memcpy(cp.peer_irk, irk->val, 16); in add_to_accept_list()
821 memcpy(cp.local_irk, hdev->irk, 16); in add_to_accept_list()
2039 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_get_random_address()
2499 err = smp_generate_rpa(hdev, hdev->irk, in hci_update_random_address()
[all...]
H A Dmgmt.c2499 /* Abort any ongoing SMP pairing. Removes ltk and irk if they exist. */ in unpair_device()
5831 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy()
5840 memset(hdev->irk, 0, sizeof(hdev->irk)); in set_privacy()
5858 static bool irk_is_valid(struct mgmt_irk_info *irk) in irk_is_valid() argument
5860 switch (irk->addr.type) { in irk_is_valid()
5866 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) in irk_is_valid()
5921 struct mgmt_irk_info *irk in load_irks() local
8131 mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent) mgmt_new_irk() argument
[all...]
H A Dhci_event.c5169 struct smp_irk *irk; in le_conn_complete_evt() local
5224 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); in le_conn_complete_evt()
5225 if (irk) { in le_conn_complete_evt()
5226 bacpy(&conn->dst, &irk->bdaddr); in le_conn_complete_evt()
5227 conn->dst_type = irk->addr_type; in le_conn_complete_evt()
5492 struct smp_irk *irk; in process_adv_report() local
5554 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) in process_adv_report()
5559 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in process_adv_report()
5560 if (irk) { in process_adv_report()
5561 bdaddr = &irk in process_adv_report()
[all...]
/kernel/linux/linux-6.6/net/bluetooth/
H A Dsmp.h90 __u8 irk[16]; member
191 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16],
193 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
H A Dhci_request.c373 struct smp_irk *irk; in del_from_accept_list() local
375 irk = hci_find_irk_by_addr(req->hdev, bdaddr, bdaddr_type); in del_from_accept_list()
376 if (irk) { in del_from_accept_list()
426 struct smp_irk *irk; in add_to_accept_list() local
428 irk = hci_find_irk_by_addr(hdev, &params->addr, in add_to_accept_list()
430 if (irk) { in add_to_accept_list()
435 memcpy(cp.peer_irk, irk->val, 16); in add_to_accept_list()
438 memcpy(cp.local_irk, hdev->irk, 16); in add_to_accept_list()
656 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_update_random_address()
H A Dhci_core.c1239 struct smp_irk *irk; in hci_find_irk_by_rpa() local
1242 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
1243 if (!bacmp(&irk->rpa, rpa)) { in hci_find_irk_by_rpa()
1244 irk_to_return = irk; in hci_find_irk_by_rpa()
1249 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
1250 if (smp_irk_matches(hdev, irk->val, rpa)) { in hci_find_irk_by_rpa()
1251 bacpy(&irk->rpa, rpa); in hci_find_irk_by_rpa()
1252 irk_to_return = irk; in hci_find_irk_by_rpa()
1274 struct smp_irk *irk; in hci_find_irk_by_addr() local
1281 list_for_each_entry_rcu(irk, in hci_find_irk_by_addr()
1382 struct smp_irk *irk; hci_add_irk() local
1455 struct smp_irk *irk; hci_bdaddr_is_paired() local
[all...]
H A Dhci_debugfs.c674 16, hdev->irk, &hdev->rpa); in identity_show()
816 struct smp_irk *irk; in identity_resolving_keys_show() local
819 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in identity_resolving_keys_show()
821 &irk->bdaddr, irk->addr_type, in identity_resolving_keys_show()
822 16, irk->val, &irk->rpa); in identity_resolving_keys_show()
H A Dsmp.c114 u8 irk[16]; member
472 static int smp_ah(const u8 irk[16], const u8 r[3], u8 res[3]) in smp_ah() argument
481 err = smp_e(irk, _res); in smp_ah()
498 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], in smp_irk_matches() argument
508 bt_dev_dbg(hdev, "RPA %pMR IRK %*phN", bdaddr, 16, irk); in smp_irk_matches()
510 err = smp_ah(irk, &bdaddr->b[3], hash); in smp_irk_matches()
517 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) in smp_generate_rpa() argument
530 err = smp_ah(irk, &rpa->b[3], rpa->b); in smp_generate_rpa()
1327 memcpy(idinfo.irk, hdev->irk, sizeo in smp_distribute_keys()
3502 const u8 irk[16] = { test_ah() local
[all...]
H A Dhci_conn.c75 struct smp_irk *irk; in hci_connect_le_scan_cleanup() local
83 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in hci_connect_le_scan_cleanup()
84 if (irk) { in hci_connect_le_scan_cleanup()
85 bdaddr = &irk->bdaddr; in hci_connect_le_scan_cleanup()
86 bdaddr_type = irk->addr_type; in hci_connect_le_scan_cleanup()
1336 struct smp_irk *irk; in hci_connect_le() local
1376 irk = hci_find_irk_by_addr(hdev, dst, dst_type); in hci_connect_le()
1377 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { in hci_connect_le()
1378 dst = &irk in hci_connect_le()
[all...]
H A Dhci_sync.c922 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_update_random_address_sync()
2174 * Setting params to NULL programs local hdev->irk
2180 struct smp_irk *irk; in hci_le_add_resolve_list_sync() local
2187 /* Attempt to program local identity address, type and irk if params is in hci_le_add_resolve_list_sync()
2195 memcpy(cp.peer_irk, hdev->irk, 16); in hci_le_add_resolve_list_sync()
2199 irk = hci_find_irk_by_addr(hdev, &params->addr, params->addr_type); in hci_le_add_resolve_list_sync()
2200 if (!irk) in hci_le_add_resolve_list_sync()
2212 memcpy(cp.peer_irk, irk->val, 16); in hci_le_add_resolve_list_sync()
2229 memcpy(cp.local_irk, hdev->irk, 16); in hci_le_add_resolve_list_sync()
2242 struct smp_irk *irk; in hci_le_set_privacy_mode_sync() local
[all...]
H A Dmgmt.c2986 /* Abort any ongoing SMP pairing. Removes ltk and irk if they exist. */ in unpair_device()
6975 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy()
6984 memset(hdev->irk, 0, sizeof(hdev->irk)); in set_privacy()
7002 static bool irk_is_valid(struct mgmt_irk_info *irk) in irk_is_valid() argument
7004 switch (irk->addr.type) { in irk_is_valid()
7010 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) in irk_is_valid()
7065 struct mgmt_irk_info *irk in load_irks() local
9539 mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent) mgmt_new_irk() argument
[all...]
H A Dhci_event.c5884 struct smp_irk *irk; in le_conn_complete_evt() local
5956 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); in le_conn_complete_evt()
5957 if (irk) { in le_conn_complete_evt()
5958 bacpy(&conn->dst, &irk->bdaddr); in le_conn_complete_evt()
5959 conn->dst_type = irk->addr_type; in le_conn_complete_evt()
6266 struct smp_irk *irk; in process_adv_report() local
6332 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) in process_adv_report()
6337 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in process_adv_report()
6338 if (irk) { in process_adv_report()
6339 bdaddr = &irk in process_adv_report()
[all...]
/kernel/linux/linux-5.10/include/net/bluetooth/
H A Dmgmt.h410 __u8 irk[16]; member
928 struct mgmt_irk_info irk; member
H A Dhci_core.h550 __u8 irk[16];
1780 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);
/kernel/linux/linux-6.6/include/net/bluetooth/
H A Dmgmt.h414 __u8 irk[16]; member
1027 struct mgmt_irk_info irk; member
H A Dhci_core.h630 __u8 irk[16]; member
2267 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);

Completed in 71 milliseconds