/linux-master/net/bluetooth/ |
H A D | smp.h | 90 __u8 irk[16]; member in struct:smp_cmd_ident_info 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 D | hci_request.c | 375 struct smp_irk *irk; local 377 irk = hci_find_irk_by_addr(req->hdev, bdaddr, bdaddr_type); 378 if (irk) { 428 struct smp_irk *irk; local 430 irk = hci_find_irk_by_addr(hdev, ¶ms->addr, 432 if (irk) { 437 memcpy(cp.peer_irk, irk->val, 16); 440 memcpy(cp.local_irk, hdev->irk, 16); 658 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa);
|
H A D | hci_core.c | 1270 struct smp_irk *irk; local 1273 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { 1274 if (!bacmp(&irk->rpa, rpa)) { 1275 irk_to_return = irk; 1280 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { 1281 if (smp_irk_matches(hdev, irk->val, rpa)) { 1282 bacpy(&irk->rpa, rpa); 1283 irk_to_return = irk; 1305 struct smp_irk *irk; local 1312 list_for_each_entry_rcu(irk, 1413 struct smp_irk *irk; local 1486 struct smp_irk *irk; local [all...] |
H A D | hci_debugfs.c | 682 16, hdev->irk, &hdev->rpa); 824 struct smp_irk *irk; local 827 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { 829 &irk->bdaddr, irk->addr_type, 830 16, irk->val, &irk->rpa);
|
H A D | smp.c | 113 u8 irk[16]; member in struct:smp_chan 471 static int smp_ah(const u8 irk[16], const u8 r[3], u8 res[3]) argument 480 err = smp_e(irk, _res); 497 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], argument 507 bt_dev_dbg(hdev, "RPA %pMR IRK %*phN", bdaddr, 16, irk); 509 err = smp_ah(irk, &bdaddr->b[3], hash); 516 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) argument 529 err = smp_ah(irk, &rpa->b[3], rpa->b); 1326 memcpy(idinfo.irk, hdev->irk, sizeo 3501 const u8 irk[16] = { local [all...] |
H A D | hci_conn.c | 75 struct smp_irk *irk; local 83 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); 84 if (irk) { 85 bdaddr = &irk->bdaddr; 86 bdaddr_type = irk->addr_type; 1269 struct smp_irk *irk; local 1309 irk = hci_find_irk_by_addr(hdev, dst, dst_type); 1310 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { 1311 dst = &irk [all...] |
H A D | hci_sync.c | 972 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); 2224 * Setting params to NULL programs local hdev->irk 2230 struct smp_irk *irk; local 2237 /* Attempt to program local identity address, type and irk if params is 2245 memcpy(cp.peer_irk, hdev->irk, 16); 2249 irk = hci_find_irk_by_addr(hdev, ¶ms->addr, params->addr_type); 2250 if (!irk) 2262 memcpy(cp.peer_irk, irk->val, 16); 2279 memcpy(cp.local_irk, hdev->irk, 16); 2292 struct smp_irk *irk; local [all...] |
H A D | mgmt.c | 3003 /* Abort any ongoing SMP pairing. Removes ltk and irk if they exist. */ 6993 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); 7002 memset(hdev->irk, 0, sizeof(hdev->irk)); 7020 static bool irk_is_valid(struct mgmt_irk_info *irk) argument 7022 switch (irk->addr.type) { 7028 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) 7083 struct mgmt_irk_info *irk local 9556 mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent) argument [all...] |
H A D | hci_event.c | 5752 struct smp_irk *irk; local 5824 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); 5825 if (irk) { 5826 bacpy(&conn->dst, &irk->bdaddr); 5827 conn->dst_type = irk->addr_type; 6135 struct smp_irk *irk; local 6201 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) 6206 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); 6207 if (irk) { 6208 bdaddr = &irk [all...] |
/linux-master/include/net/bluetooth/ |
H A D | mgmt.h | 414 __u8 irk[16]; member in struct:mgmt_cp_set_privacy 1027 struct mgmt_irk_info irk; member in struct:mgmt_ev_new_irk
|
H A D | hci_core.h | 629 __u8 irk[16]; member in struct:hci_dev 2313 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent);
|