mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
Bluetooth: Use the stored LTK for restabilishing security
Now that it's possible that the exchanged key is present in the link key list, we may be able to estabilish security with an already existing key, without need to perform any SMP procedure. Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
This commit is contained in:
committed by
Jaikumar Ganesh
parent
f1b45c55fa
commit
5d873cafa5
@@ -480,6 +480,17 @@ int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level)
|
||||
|
||||
if (hcon->link_mode & HCI_LM_MASTER) {
|
||||
struct smp_cmd_pairing cp;
|
||||
struct link_key *key;
|
||||
|
||||
key = hci_find_link_key_type(hcon->hdev, conn->dst,
|
||||
HCI_LK_SMP_LTK);
|
||||
if (key) {
|
||||
struct key_master_id *master = (void *) key->data;
|
||||
|
||||
hci_le_start_enc(hcon, master->ediv, master->rand,
|
||||
key->val);
|
||||
goto done;
|
||||
}
|
||||
|
||||
build_pairing_cmd(conn, &cp, NULL, authreq);
|
||||
conn->preq[0] = SMP_CMD_PAIRING_REQ;
|
||||
@@ -495,6 +506,7 @@ int smp_conn_security(struct l2cap_conn *conn, __u8 sec_level)
|
||||
smp_send_cmd(conn, SMP_CMD_SECURITY_REQ, sizeof(cp), &cp);
|
||||
}
|
||||
|
||||
done:
|
||||
hcon->pending_sec_level = sec_level;
|
||||
set_bit(HCI_CONN_ENCRYPT_PEND, &hcon->pend);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user