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

/linux-4.1.27/net/bluetooth/
H A Dsmp.h89 __u8 irk[16]; member in struct:smp_cmd_ident_info
188 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16],
190 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa);
H A Dhci_debugfs.c653 16, hdev->irk, &hdev->rpa); identity_show()
824 struct smp_irk *irk; identity_resolving_keys_show() local
827 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { identity_resolving_keys_show()
829 &irk->bdaddr, irk->addr_type, identity_resolving_keys_show()
830 16, irk->val, &irk->rpa); identity_resolving_keys_show()
H A Dhci_core.c2280 struct smp_irk *irk; hci_find_irk_by_rpa() local
2283 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { hci_find_irk_by_rpa()
2284 if (!bacmp(&irk->rpa, rpa)) { hci_find_irk_by_rpa()
2286 return irk; hci_find_irk_by_rpa()
2290 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { hci_find_irk_by_rpa()
2291 if (smp_irk_matches(hdev, irk->val, rpa)) { hci_find_irk_by_rpa()
2292 bacpy(&irk->rpa, rpa); hci_find_irk_by_rpa()
2294 return irk; hci_find_irk_by_rpa()
2305 struct smp_irk *irk; hci_find_irk_by_addr() local
2312 list_for_each_entry_rcu(irk, &hdev->identity_resolving_keys, list) { hci_find_irk_by_addr()
2313 if (addr_type == irk->addr_type && hci_find_irk_by_addr()
2314 bacmp(bdaddr, &irk->bdaddr) == 0) { hci_find_irk_by_addr()
2316 return irk; hci_find_irk_by_addr()
2403 struct smp_irk *irk; hci_add_irk() local
2405 irk = hci_find_irk_by_addr(hdev, bdaddr, addr_type); hci_add_irk()
2406 if (!irk) { hci_add_irk()
2407 irk = kzalloc(sizeof(*irk), GFP_KERNEL); hci_add_irk()
2408 if (!irk) hci_add_irk()
2411 bacpy(&irk->bdaddr, bdaddr); hci_add_irk()
2412 irk->addr_type = addr_type; hci_add_irk()
2414 list_add_rcu(&irk->list, &hdev->identity_resolving_keys); hci_add_irk()
2417 memcpy(irk->val, val, 16); hci_add_irk()
2418 bacpy(&irk->rpa, rpa); hci_add_irk()
2420 return irk; hci_add_irk()
2476 struct smp_irk *irk; hci_bdaddr_is_paired() local
2491 irk = hci_get_irk(hdev, bdaddr, addr_type); hci_bdaddr_is_paired()
2492 if (irk) { hci_bdaddr_is_paired()
2493 bdaddr = &irk->bdaddr; hci_bdaddr_is_paired()
2494 addr_type = irk->addr_type; hci_bdaddr_is_paired()
H A Dsmp.c105 u8 irk[16]; member in struct:smp_chan
463 static int smp_ah(struct crypto_blkcipher *tfm, const u8 irk[16], smp_ah() argument
473 err = smp_e(tfm, irk, _res); smp_ah()
490 bool smp_irk_matches(struct hci_dev *hdev, const u8 irk[16], smp_irk_matches() argument
503 BT_DBG("RPA %pMR IRK %*phN", bdaddr, 16, irk); smp_irk_matches()
505 err = smp_ah(smp->tfm_aes, irk, &bdaddr->b[3], hash); smp_irk_matches()
512 int smp_generate_rpa(struct hci_dev *hdev, const u8 irk[16], bdaddr_t *rpa) smp_generate_rpa() argument
528 err = smp_ah(smp->tfm_aes, irk, &rpa->b[3], rpa->b); smp_generate_rpa()
1295 memcpy(idinfo.irk, hdev->irk, sizeof(idinfo.irk)); smp_distribute_keys()
2437 memcpy(smp->irk, info->irk, 16); smp_cmd_ident_info()
2489 smp->id_addr_type, smp->irk, &rpa); smp_cmd_ident_addr_info()
3327 const u8 irk[16] = { test_ah() local
3335 err = smp_ah(tfm_aes, irk, r, res); test_ah()
H A Dhci_conn.c732 struct smp_irk *irk; hci_connect_le() local
779 irk = hci_find_irk_by_addr(hdev, dst, dst_type); hci_connect_le()
780 if (irk && bacmp(&irk->rpa, BDADDR_ANY)) { hci_connect_le()
781 dst = &irk->rpa; hci_connect_le()
H A Dmgmt.c5367 memcpy(hdev->irk, cp->irk, sizeof(hdev->irk)); set_privacy()
5371 memset(hdev->irk, 0, sizeof(hdev->irk)); set_privacy()
5387 static bool irk_is_valid(struct mgmt_irk_info *irk) irk_is_valid() argument
5389 switch (irk->addr.type) { irk_is_valid()
5395 if ((irk->addr.bdaddr.b[5] & 0xc0) != 0xc0) irk_is_valid()
5449 struct mgmt_irk_info *irk = &cp->irks[i]; load_irks() local
5452 if (irk->addr.type == BDADDR_LE_PUBLIC) load_irks()
5457 hci_add_irk(hdev, &irk->addr.bdaddr, addr_type, irk->val, load_irks()
7613 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk) mgmt_new_irk() argument
7630 if (bacmp(&irk->rpa, BDADDR_ANY)) mgmt_new_irk()
7635 bacpy(&ev.rpa, &irk->rpa); mgmt_new_irk()
7636 bacpy(&ev.irk.addr.bdaddr, &irk->bdaddr); mgmt_new_irk()
7637 ev.irk.addr.type = link_to_bdaddr(LE_LINK, irk->addr_type); mgmt_new_irk()
7638 memcpy(ev.irk.val, irk->val, sizeof(irk->val)); mgmt_new_irk()
H A Dhci_event.c4445 struct smp_irk *irk; hci_le_conn_complete_evt() local
4522 irk = hci_get_irk(hdev, &conn->dst, conn->dst_type); hci_le_conn_complete_evt()
4523 if (irk) { hci_le_conn_complete_evt()
4524 bacpy(&conn->dst, &irk->bdaddr); hci_le_conn_complete_evt()
4525 conn->dst_type = irk->addr_type; hci_le_conn_complete_evt()
4710 struct smp_irk *irk; process_adv_report() local
4737 if (!smp_irk_matches(hdev, hdev->irk, direct_addr)) process_adv_report()
4742 irk = hci_get_irk(hdev, bdaddr, bdaddr_type); process_adv_report()
4743 if (irk) { process_adv_report()
4744 bdaddr = &irk->bdaddr; process_adv_report()
4745 bdaddr_type = irk->addr_type; process_adv_report()
H A Dhci_request.c348 err = smp_generate_rpa(hdev, hdev->irk, &hdev->rpa); hci_update_random_address()
/linux-4.1.27/include/net/bluetooth/
H A Dmgmt.h402 __u8 irk[16]; member in struct:mgmt_cp_set_privacy
715 struct mgmt_irk_info irk; member in struct:mgmt_ev_new_irk
H A Dhci_core.h378 __u8 irk[16]; member in struct:hci_dev
1399 void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk);

Completed in 267 milliseconds