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

Commit b6020ba0 authored by Waldemar Rymarkiewicz's avatar Waldemar Rymarkiewicz Committed by Gustavo Padovan
Browse files

Bluetooth: Add definitions for link key types



Introduce the link key types defs and use them instead of magic numbers.

Signed-off-by: default avatarWaldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
parent 314b2381
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -246,6 +246,15 @@ enum {
#define HCI_AT_GENERAL_BONDING		0x04
#define HCI_AT_GENERAL_BONDING_MITM	0x05

/* Link Key types */
#define HCI_LK_COMBINATION		0x00
#define HCI_LK_LOCAL_UNIT		0x01
#define HCI_LK_REMOTE_UNIT		0x02
#define HCI_LK_DEBUG_COMBINATION	0x03
#define HCI_LK_UNAUTH_COMBINATION	0x04
#define HCI_LK_AUTH_COMBINATION		0x05
#define HCI_LK_CHANGED_COMBINATION	0x06

/* -----  HCI Commands ---- */
#define HCI_OP_NOP			0x0000

+1 −1
Original line number Diff line number Diff line
@@ -1050,7 +1050,7 @@ int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr,
	if (new_key)
		mgmt_new_key(hdev->id, key, old_key_type);

	if (type == 0x06)
	if (type == HCI_LK_CHANGED_COMBINATION)
		key->type = old_key_type;

	return 0;
+4 −3
Original line number Diff line number Diff line
@@ -2053,15 +2053,16 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
	BT_DBG("%s found key type %u for %s", hdev->name, key->type,
							batostr(&ev->bdaddr));

	if (!test_bit(HCI_DEBUG_KEYS, &hdev->flags) && key->type == 0x03) {
	if (!test_bit(HCI_DEBUG_KEYS, &hdev->flags) &&
				key->type == HCI_LK_DEBUG_COMBINATION) {
		BT_DBG("%s ignoring debug key", hdev->name);
		goto not_found;
	}

	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);

	if (key->type == 0x04 && conn && conn->auth_type != 0xff &&
						(conn->auth_type & 0x01)) {
	if (key->type == HCI_LK_UNAUTH_COMBINATION && conn &&
			conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
		BT_DBG("%s ignoring unauthenticated key", hdev->name);
		goto not_found;
	}