2019-09-04 17:01:23 +00:00
|
|
|
From 52946839b2da6b841c93be0bc598686c5cfb43bd Mon Sep 17 00:00:00 2001
|
2019-07-09 18:32:28 +00:00
|
|
|
From: Marcel Holtmann <marcel@holtmann.org>
|
|
|
|
Date: Wed, 22 May 2019 09:05:40 +0200
|
2019-09-04 17:01:23 +00:00
|
|
|
Subject: [PATCH 497/782] Bluetooth: Check key sizes only when Secure Simple
|
2019-07-09 18:32:28 +00:00
|
|
|
Pairing is enabled
|
|
|
|
|
|
|
|
The encryption is only mandatory to be enforced when both sides are using
|
|
|
|
Secure Simple Pairing and this means the key size check makes only sense
|
|
|
|
in that case.
|
|
|
|
|
|
|
|
On legacy Bluetooth 2.0 and earlier devices like mice the encryption was
|
|
|
|
optional and thus causing an issue if the key size check is not bound to
|
|
|
|
using Secure Simple Pairing.
|
|
|
|
|
|
|
|
Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections")
|
|
|
|
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
|
|
|
|
Cc: stable@vger.kernel.org
|
|
|
|
---
|
|
|
|
net/bluetooth/hci_conn.c | 9 +++++++--
|
|
|
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
--- a/net/bluetooth/hci_conn.c
|
|
|
|
+++ b/net/bluetooth/hci_conn.c
|
|
|
|
@@ -1272,8 +1272,13 @@ int hci_conn_check_link_mode(struct hci_
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
- if (hci_conn_ssp_enabled(conn) &&
|
|
|
|
- !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
|
|
|
+ /* If Secure Simple Pairing is not enabled, then legacy connection
|
|
|
|
+ * setup is used and no encryption or key sizes can be enforced.
|
|
|
|
+ */
|
|
|
|
+ if (!hci_conn_ssp_enabled(conn))
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
|
|
+ if (!test_bit(HCI_CONN_ENCRYPT, &conn->flags))
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
return 1;
|