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);