Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38f092c4 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Greg Kroah-Hartman
Browse files

Bluetooth: Align minimum encryption key size for LE and BR/EDR connections



commit d5bb334a8e171b262e48f378bd2096c0ea458265 upstream.

The minimum encryption key size for LE connections is 56 bits and to
align LE with BR/EDR, enforce 56 bits of minimum encryption key size for
BR/EDR connections as well.

Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c6d1f9b4
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -182,6 +182,9 @@ struct adv_info {

#define HCI_MAX_SHORT_NAME_LENGTH	10

/* Min encryption key size to match with SMP */
#define HCI_MIN_ENC_KEY_SIZE		7

/* Default LE RPA expiry time, 15 minutes */
#define HCI_DEFAULT_RPA_TIMEOUT		(15 * 60)

+8 −0
Original line number Diff line number Diff line
@@ -1276,6 +1276,14 @@ int hci_conn_check_link_mode(struct hci_conn *conn)
	    !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
		return 0;

	/* The minimum encryption key size needs to be enforced by the
	 * host stack before establishing any L2CAP connections. The
	 * specification in theory allows a minimum of 1, but to align
	 * BR/EDR and LE transports, a minimum of 7 is chosen.
	 */
	if (conn->enc_key_size < HCI_MIN_ENC_KEY_SIZE)
		return 0;

	return 1;
}