smp.c (524237cb4b566ae73ec24c56852489b85e426241) smp.c (863efaf224d24705c0ffdc59f2a0ec68f2d85b4f)
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License version 2 as
7 published by the Free Software Foundation;
8

--- 251 unchanged lines hidden (view full) ---

260 authreq |= SMP_AUTH_BONDING;
261 } else {
262 authreq &= ~SMP_AUTH_BONDING;
263 }
264
265 if (test_bit(HCI_RPA_RESOLVING, &hdev->dev_flags))
266 remote_dist |= SMP_DIST_ID_KEY;
267
1/*
2 BlueZ - Bluetooth protocol stack for Linux
3 Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License version 2 as
7 published by the Free Software Foundation;
8

--- 251 unchanged lines hidden (view full) ---

260 authreq |= SMP_AUTH_BONDING;
261 } else {
262 authreq &= ~SMP_AUTH_BONDING;
263 }
264
265 if (test_bit(HCI_RPA_RESOLVING, &hdev->dev_flags))
266 remote_dist |= SMP_DIST_ID_KEY;
267
268 if (test_bit(HCI_PRIVACY, &hdev->dev_flags))
269 local_dist |= SMP_DIST_ID_KEY;
270
268 if (rsp == NULL) {
269 req->io_capability = conn->hcon->io_capability;
270 req->oob_flag = SMP_OOB_NOT_PRESENT;
271 req->max_key_size = SMP_MAX_ENC_KEY_SIZE;
272 req->init_key_dist = local_dist;
273 req->resp_key_dist = remote_dist;
274 req->auth_req = (authreq & AUTH_REQ_MASK);
275

--- 908 unchanged lines hidden (view full) ---

1184
1185 *keydist &= ~SMP_DIST_ENC_KEY;
1186 }
1187
1188 if (*keydist & SMP_DIST_ID_KEY) {
1189 struct smp_cmd_ident_addr_info addrinfo;
1190 struct smp_cmd_ident_info idinfo;
1191
271 if (rsp == NULL) {
272 req->io_capability = conn->hcon->io_capability;
273 req->oob_flag = SMP_OOB_NOT_PRESENT;
274 req->max_key_size = SMP_MAX_ENC_KEY_SIZE;
275 req->init_key_dist = local_dist;
276 req->resp_key_dist = remote_dist;
277 req->auth_req = (authreq & AUTH_REQ_MASK);
278

--- 908 unchanged lines hidden (view full) ---

1187
1188 *keydist &= ~SMP_DIST_ENC_KEY;
1189 }
1190
1191 if (*keydist & SMP_DIST_ID_KEY) {
1192 struct smp_cmd_ident_addr_info addrinfo;
1193 struct smp_cmd_ident_info idinfo;
1194
1192 /* Send a dummy key */
1193 get_random_bytes(idinfo.irk, sizeof(idinfo.irk));
1195 memcpy(idinfo.irk, hdev->irk, sizeof(idinfo.irk));
1194
1195 smp_send_cmd(conn, SMP_CMD_IDENT_INFO, sizeof(idinfo), &idinfo);
1196
1197 /* Just public address */
1198 memset(&addrinfo, 0, sizeof(addrinfo));
1199 bacpy(&addrinfo.bdaddr, &hcon->src);
1200
1201 smp_send_cmd(conn, SMP_CMD_IDENT_ADDR_INFO, sizeof(addrinfo),

--- 26 unchanged lines hidden ---
1196
1197 smp_send_cmd(conn, SMP_CMD_IDENT_INFO, sizeof(idinfo), &idinfo);
1198
1199 /* Just public address */
1200 memset(&addrinfo, 0, sizeof(addrinfo));
1201 bacpy(&addrinfo.bdaddr, &hcon->src);
1202
1203 smp_send_cmd(conn, SMP_CMD_IDENT_ADDR_INFO, sizeof(addrinfo),

--- 26 unchanged lines hidden ---