irk 427 include/net/bluetooth/hci_core.h __u8 irk[16]; irk 1578 include/net/bluetooth/hci_core.h void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent); irk 403 include/net/bluetooth/mgmt.h __u8 irk[16]; irk 799 include/net/bluetooth/mgmt.h struct mgmt_irk_info irk; irk 67 net/bluetooth/hci_conn.c struct smp_irk *irk; irk 75 net/bluetooth/hci_conn.c irk = hci_get_irk(hdev, bdaddr, bdaddr_type); irk 76 net/bluetooth/hci_conn.c if (irk) { irk 77 net/bluetooth/hci_conn.c bdaddr = &irk->bdaddr; irk 78 net/bluetooth/hci_conn.c bdaddr_type = irk->addr_type; irk 967 net/bluetooth/hci_conn.c struct smp_irk *irk; irk 1004 net/bluetooth/hci_conn.c irk = hci_find_irk_by_addr(hdev, dst, dst_type); irk 1005 net/bluetooth/hci_conn.c if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { irk 1006 net/bluetooth/hci_conn.c dst = &irk->rpa; irk 2400 net/bluetooth/hci_core.c struct smp_irk *irk; irk 2403 net/bluetooth/hci_core.c list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { irk 2404 net/bluetooth/hci_core.c if (!bacmp(&irk->rpa, rpa)) { irk 2406 net/bluetooth/hci_core.c return irk; irk 2410 net/bluetooth/hci_core.c list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { irk 2411 net/bluetooth/hci_core.c if (smp_irk_matches(hdev, irk->val, rpa)) { irk 2412 net/bluetooth/hci_core.c bacpy(&irk->rpa, rpa); irk 2414 net/bluetooth/hci_core.c return irk; irk 2425 net/bluetooth/hci_core.c struct smp_irk *irk; irk 2432 net/bluetooth/hci_core.c list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { irk 2433 net/bluetooth/hci_core.c if (addr_type == irk->addr_type && irk 2434 net/bluetooth/hci_core.c bacmp(bdaddr, &irk->bdaddr) == 0) { irk 2436 net/bluetooth/hci_core.c return irk; irk 2523 net/bluetooth/hci_core.c struct smp_irk *irk; irk 2525 net/bluetooth/hci_core.c irk = hci_find_irk_by_addr(hdev, bdaddr, addr_type); irk 2526 net/bluetooth/hci_core.c if (!irk) { irk 2527 net/bluetooth/hci_core.c irk = kzalloc(sizeof(*irk), GFP_KERNEL); irk 2528 net/bluetooth/hci_core.c if (!irk) irk 2531 net/bluetooth/hci_core.c bacpy(&irk->bdaddr, bdaddr); irk 2532 net/bluetooth/hci_core.c irk->addr_type = addr_type; irk 2534 net/bluetooth/hci_core.c list_add_rcu(&irk->list, &hdev->identity_resolving_keys); irk 2537 net/bluetooth/hci_core.c memcpy(irk->val, val, 16); irk 2538 net/bluetooth/hci_core.c bacpy(&irk->rpa, rpa); irk 2540 net/bluetooth/hci_core.c return irk; irk 2596 net/bluetooth/hci_core.c struct smp_irk *irk; irk 2611 net/bluetooth/hci_core.c irk = hci_get_irk(hdev, bdaddr, addr_type); irk 2612 net/bluetooth/hci_core.c if (irk) { irk 2613 net/bluetooth/hci_core.c bdaddr = &irk->bdaddr; irk 2614 net/bluetooth/hci_core.c addr_type = irk->addr_type; irk 604 net/bluetooth/hci_debugfs.c 16, hdev->irk, &hdev->rpa); irk 746 net/bluetooth/hci_debugfs.c struct smp_irk *irk; irk 749 net/bluetooth/hci_debugfs.c list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { irk 751 net/bluetooth/hci_debugfs.c &irk->bdaddr, irk->addr_type, irk 752 net/bluetooth/hci_debugfs.c 16, irk->val, &irk->rpa); irk 4908 net/bluetooth/hci_event.c struct smp_irk *irk; irk 4988 net/bluetooth/hci_event.c irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); irk 4989 net/bluetooth/hci_event.c if (irk) { irk 4990 net/bluetooth/hci_event.c bacpy(&conn->dst, &irk->bdaddr); irk 4991 net/bluetooth/hci_event.c conn->dst_type = irk->addr_type; irk 5236 net/bluetooth/hci_event.c struct smp_irk *irk; irk 5296 net/bluetooth/hci_event.c if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) irk 5301 net/bluetooth/hci_event.c irk = hci_get_irk(hdev, bdaddr, bdaddr_type); irk 5302 net/bluetooth/hci_event.c if (irk) { irk 5303 net/bluetooth/hci_event.c bdaddr = &irk->bdaddr; irk 5304 net/bluetooth/hci_event.c bdaddr_type = irk->addr_type; irk 1500 net/bluetooth/hci_request.c err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); irk 1917 net/bluetooth/hci_request.c err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); irk 4962 net/bluetooth/mgmt.c memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); irk 4971 net/bluetooth/mgmt.c memset(hdev->irk, 0, sizeof(hdev->irk)); irk 4989 net/bluetooth/mgmt.c static bool irk_is_valid(struct mgmt_irk_info *irk) irk 4991 net/bluetooth/mgmt.c switch (irk->addr.type) { irk 4997 net/bluetooth/mgmt.c if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) irk 5052 net/bluetooth/mgmt.c struct mgmt_irk_info *irk = &cp->irks[i]; irk 5054 net/bluetooth/mgmt.c hci_add_irk(hdev, &irk->addr.bdaddr, irk 5055 net/bluetooth/mgmt.c le_addr_type(irk->addr.type), irk->val, irk 7166 net/bluetooth/mgmt.c void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk, bool persistent) irk 7174 net/bluetooth/mgmt.c bacpy(&ev.rpa, &irk->rpa); irk 7175 net/bluetooth/mgmt.c bacpy(&ev.irk.addr.bdaddr, &irk->bdaddr); irk 7176 net/bluetooth/mgmt.c ev.irk.addr.type = link_to_bdaddr(LE_LINK, irk->addr_type); irk 7177 net/bluetooth/mgmt.c memcpy(ev.irk.val, irk->val, sizeof(irk->val)); irk 113 net/bluetooth/smp.c u8 irk[16]; irk 475 net/bluetooth/smp.c static int smp_ah(const u8 irk[16], const u8 r[3], u8 res[3]) irk 484 net/bluetooth/smp.c err = smp_e(irk, _res); irk 501 net/bluetooth/smp.c bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], irk 514 net/bluetooth/smp.c BT_DBG("RPA %pMR IRK %*phN", bdaddr, 16, irk); irk 516 net/bluetooth/smp.c err = smp_ah(irk, &bdaddr->b[3], hash); irk 523 net/bluetooth/smp.c int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) irk 539 net/bluetooth/smp.c err = smp_ah(irk, &rpa->b[3], rpa->b); irk 1310 net/bluetooth/smp.c memcpy(idinfo.irk, hdev->irk, sizeof(idinfo.irk)); irk 2522 net/bluetooth/smp.c memcpy(smp->irk, info->irk, 16); irk 2587 net/bluetooth/smp.c smp->id_addr_type, smp->irk, &rpa); irk 3557 net/bluetooth/smp.c const u8 irk[16] = { irk 3565 net/bluetooth/smp.c err = smp_ah(irk, r, res); irk 90 net/bluetooth/smp.h __u8 irk[16]; irk 191 net/bluetooth/smp.h bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], irk 193 net/bluetooth/smp.h int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);