mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
Bluetooth: Enable LTK distribution to slave devices
So far we've only been requesting the LTK to be distributed to the master (initiator) of pairing, which is usually enough since it's the master that will establish future connections and initiate encryption. However, in the case that both devices support switching to the opposing role (which seems to be increasingly common) pairing will have to performed again since the "new" master will not have all information. As there is no real harm in it, this patch updates the code to always try distributing the LTK also to the slave device, thereby enabling role switches for future connections. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Acked-by: Vinicius Gomes <vcgomes@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
4045664429
commit
0cf73b9fa5
1 changed files with 2 additions and 2 deletions
|
@ -216,7 +216,7 @@ static void build_pairing_cmd(struct l2cap_conn *conn,
|
||||||
req->io_capability = conn->hcon->io_capability;
|
req->io_capability = conn->hcon->io_capability;
|
||||||
req->oob_flag = SMP_OOB_NOT_PRESENT;
|
req->oob_flag = SMP_OOB_NOT_PRESENT;
|
||||||
req->max_key_size = SMP_MAX_ENC_KEY_SIZE;
|
req->max_key_size = SMP_MAX_ENC_KEY_SIZE;
|
||||||
req->init_key_dist = 0;
|
req->init_key_dist = dist_keys;
|
||||||
req->resp_key_dist = dist_keys;
|
req->resp_key_dist = dist_keys;
|
||||||
req->auth_req = (authreq & AUTH_REQ_MASK);
|
req->auth_req = (authreq & AUTH_REQ_MASK);
|
||||||
return;
|
return;
|
||||||
|
@ -225,7 +225,7 @@ static void build_pairing_cmd(struct l2cap_conn *conn,
|
||||||
rsp->io_capability = conn->hcon->io_capability;
|
rsp->io_capability = conn->hcon->io_capability;
|
||||||
rsp->oob_flag = SMP_OOB_NOT_PRESENT;
|
rsp->oob_flag = SMP_OOB_NOT_PRESENT;
|
||||||
rsp->max_key_size = SMP_MAX_ENC_KEY_SIZE;
|
rsp->max_key_size = SMP_MAX_ENC_KEY_SIZE;
|
||||||
rsp->init_key_dist = 0;
|
rsp->init_key_dist = req->init_key_dist & dist_keys;
|
||||||
rsp->resp_key_dist = req->resp_key_dist & dist_keys;
|
rsp->resp_key_dist = req->resp_key_dist & dist_keys;
|
||||||
rsp->auth_req = (authreq & AUTH_REQ_MASK);
|
rsp->auth_req = (authreq & AUTH_REQ_MASK);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue