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

Commit 77560ffa authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Razziell
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 43c54c90
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -145,6 +145,9 @@ struct oob_data {


#define HCI_MAX_SHORT_NAME_LENGTH	10
#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 */
/* Default LE RPA expiry time, 15 minutes */
#define HCI_DEFAULT_RPA_TIMEOUT		(15 * 60)
#define HCI_DEFAULT_RPA_TIMEOUT		(15 * 60)


+8 −0
Original line number Original line Diff line number Diff line
@@ -938,6 +938,14 @@ int hci_conn_check_link_mode(struct hci_conn *conn)
	    !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
	    !test_bit(HCI_CONN_ENCRYPT, &conn->flags))
		return 0;
		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;
	return 1;
}
}