Home
last modified time | relevance | path

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

/linux/net/bluetooth/
H A Dsmp.h90 __u8 irk[16]; member
192 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16],
194 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
H A Dhci_core.c1214 struct smp_irk *irk; in hci_find_irk_by_rpa() local
1217 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
1218 if (!bacmp(&irk->rpa, rpa)) { in hci_find_irk_by_rpa()
1219 irk_to_return = irk; in hci_find_irk_by_rpa()
1224 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_rpa()
1225 if (smp_irk_matches(hdev, irk->val, rpa)) { in hci_find_irk_by_rpa()
1226 bacpy(&irk->rpa, rpa); in hci_find_irk_by_rpa()
1227 irk_to_return = irk; in hci_find_irk_by_rpa()
1249 struct smp_irk *irk; in hci_find_irk_by_addr() local
1256 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in hci_find_irk_by_addr()
[all …]
H A Dhci_debugfs.c681 16, hdev->irk, &hdev->rpa); in identity_show()
823 struct smp_irk *irk; in identity_resolving_keys_show() local
826 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { in identity_resolving_keys_show()
828 &irk->bdaddr, irk->addr_type, in identity_resolving_keys_show()
829 16, irk->val, &irk->rpa); in identity_resolving_keys_show()
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()
930 struct smp_irk *irk = NULL; in __hci_conn_add() local
942 irk = hci_get_irk(hdev, dst, dst_type); in __hci_conn_add()
949 irk = hci_get_irk(hdev, dst, dst_type); in __hci_conn_add()
968 if (!irk) { in __hci_conn_add()
972 bacpy(&conn->dst, &irk in __hci_conn_add()
1381 struct smp_irk *irk; hci_connect_le() local
[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()
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()
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()
529 err = smp_ah(irk, &rpa->b[3], rpa->b); in smp_generate_rpa()
1318 memcpy(idinfo.irk, hdev->irk, sizeo in smp_distribute_keys()
3494 const u8 irk[16] = { test_ah() local
[all...]
H A Dmgmt.c3178 /* Abort any ongoing SMP pairing. Removes ltk and irk if they exist. */ in unpair_device()
7140 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); in set_privacy()
7149 memset(hdev->irk, 0, sizeof(hdev->irk)); in set_privacy()
7167 static bool irk_is_valid(struct mgmt_irk_info *irk) in irk_is_valid()
7169 switch (irk->addr.type) { in irk_is_valid()
7175 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) in load_irks()
7230 struct mgmt_irk_info *irk in load_irks()
7159 irk_is_valid(struct mgmt_irk_info * irk) irk_is_valid() argument
7222 struct mgmt_irk_info *irk = &cp->irks[i]; load_irks() local
9682 mgmt_new_irk(struct hci_dev * hdev,struct smp_irk * irk,bool persistent) mgmt_new_irk() argument
[all...]
H A Dhci_sync.c1091 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); in hci_update_random_address_sync()
2368 * Setting params to NULL programs local hdev->irk in hci_le_add_resolve_list_sync()
2374 struct smp_irk *irk; in hci_le_add_resolve_list_sync()
2381 /* Attempt to program local identity address, type and irk if params is in hci_le_add_resolve_list_sync()
2389 memcpy(cp.peer_irk, hdev->irk, 16); in hci_le_add_resolve_list_sync()
2394 irk = hci_find_irk_by_addr(hdev, &params->addr, params->addr_type); in hci_le_add_resolve_list_sync()
2395 if (!irk) in hci_le_add_resolve_list_sync()
2407 memcpy(cp.peer_irk, irk->val, 16); in hci_le_add_resolve_list_sync()
2424 memcpy(cp.local_irk, hdev->irk, 16);
2437 struct smp_irk *irk; in hci_le_set_privacy_mode_sync()
2367 struct smp_irk *irk; hci_le_add_resolve_list_sync() local
2430 struct smp_irk *irk; hci_le_set_privacy_mode_sync() local
[all...]
H A Dhci_event.c5721 struct smp_irk *irk; in le_conn_complete_evt()
5804 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); in le_conn_complete_evt()
5805 if (irk) { in le_conn_complete_evt()
5806 bacpy(&conn->dst, &irk->bdaddr); in le_conn_complete_evt()
5807 conn->dst_type = irk->addr_type; in le_conn_complete_evt()
6186 struct smp_irk *irk; in process_adv_report()
6255 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) in process_adv_report()
6260 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); in process_adv_report()
6261 if (irk) { in process_adv_report()
6262 bdaddr = &irk in process_adv_report()
5711 struct smp_irk *irk; le_conn_complete_evt() local
6174 struct smp_irk *irk; process_adv_report() local
[all...]
/linux/include/net/bluetooth/
H A Dmgmt.h422 __u8 irk[16]; member
1045 struct mgmt_irk_info irk; member
H A Dhci_core.h610 __u8 irk[16]; member
2480 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);