Commit 2ceba539 authored by Johan Hedberg's avatar Johan Hedberg Committed by Marcel Holtmann

Bluetooth: Remove HCI prefix from SMP LTK defines

The LTK type has really nothing to do with HCI so it makes more sense to
have these in smp.h than hci.h. This patch moves the defines to smp.h
and removes the HCI_ prefix in the same go.
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 7d5843b7
...@@ -347,10 +347,6 @@ enum { ...@@ -347,10 +347,6 @@ enum {
#define HCI_LK_CHANGED_COMBINATION 0x06 #define HCI_LK_CHANGED_COMBINATION 0x06
#define HCI_LK_UNAUTH_COMBINATION_P256 0x07 #define HCI_LK_UNAUTH_COMBINATION_P256 0x07
#define HCI_LK_AUTH_COMBINATION_P256 0x08 #define HCI_LK_AUTH_COMBINATION_P256 0x08
/* The spec doesn't define types for SMP keys, the _MASTER suffix is implied */
#define HCI_SMP_STK 0x80
#define HCI_SMP_LTK 0x82
#define HCI_SMP_LTK_SLAVE 0x83
/* Long Term Key types */ /* Long Term Key types */
#define HCI_LTK_UNAUTH 0x00 #define HCI_LTK_UNAUTH 0x00
......
...@@ -2974,7 +2974,7 @@ static bool hci_persistent_key(struct hci_dev *hdev, struct hci_conn *conn, ...@@ -2974,7 +2974,7 @@ static bool hci_persistent_key(struct hci_dev *hdev, struct hci_conn *conn,
static bool ltk_type_master(u8 type) static bool ltk_type_master(u8 type)
{ {
if (type == HCI_SMP_STK || type == HCI_SMP_LTK) if (type == SMP_STK || type == SMP_LTK)
return true; return true;
return false; return false;
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "a2mp.h" #include "a2mp.h"
#include "amp.h" #include "amp.h"
#include "smp.h"
/* Handle HCI Event packets */ /* Handle HCI Event packets */
...@@ -4241,7 +4242,7 @@ static void hci_le_ltk_request_evt(struct hci_dev *hdev, struct sk_buff *skb) ...@@ -4241,7 +4242,7 @@ static void hci_le_ltk_request_evt(struct hci_dev *hdev, struct sk_buff *skb)
* distribute the keys. Later, security can be re-established * distribute the keys. Later, security can be re-established
* using a distributed LTK. * using a distributed LTK.
*/ */
if (ltk->type == HCI_SMP_STK) { if (ltk->type == SMP_STK) {
list_del(&ltk->list); list_del(&ltk->list);
kfree(ltk); kfree(ltk);
} }
......
...@@ -4550,9 +4550,9 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev, ...@@ -4550,9 +4550,9 @@ static int load_long_term_keys(struct sock *sk, struct hci_dev *hdev,
addr_type = ADDR_LE_DEV_RANDOM; addr_type = ADDR_LE_DEV_RANDOM;
if (key->master) if (key->master)
type = HCI_SMP_LTK; type = SMP_LTK;
else else
type = HCI_SMP_LTK_SLAVE; type = SMP_LTK_SLAVE;
switch (key->type) { switch (key->type) {
case MGMT_LTK_UNAUTHENTICATED: case MGMT_LTK_UNAUTHENTICATED:
...@@ -5279,7 +5279,7 @@ void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent) ...@@ -5279,7 +5279,7 @@ void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent)
ev.key.ediv = key->ediv; ev.key.ediv = key->ediv;
ev.key.rand = key->rand; ev.key.rand = key->rand;
if (key->type == HCI_SMP_LTK) if (key->type == SMP_LTK)
ev.key.master = 1; ev.key.master = 1;
memcpy(ev.key.val, key->val, sizeof(key->val)); memcpy(ev.key.val, key->val, sizeof(key->val));
......
...@@ -573,8 +573,7 @@ static u8 smp_random(struct smp_chan *smp) ...@@ -573,8 +573,7 @@ static u8 smp_random(struct smp_chan *smp)
* STK never needs to be stored). * STK never needs to be stored).
*/ */
hci_add_ltk(hcon->hdev, &hcon->dst, hcon->dst_type, hci_add_ltk(hcon->hdev, &hcon->dst, hcon->dst_type,
HCI_SMP_STK, auth, stk, smp->enc_key_size, SMP_STK, auth, stk, smp->enc_key_size, ediv, rand);
ediv, rand);
} }
return 0; return 0;
...@@ -1027,7 +1026,7 @@ static int smp_cmd_master_ident(struct l2cap_conn *conn, struct sk_buff *skb) ...@@ -1027,7 +1026,7 @@ static int smp_cmd_master_ident(struct l2cap_conn *conn, struct sk_buff *skb)
hci_dev_lock(hdev); hci_dev_lock(hdev);
authenticated = (hcon->sec_level == BT_SECURITY_HIGH); authenticated = (hcon->sec_level == BT_SECURITY_HIGH);
ltk = hci_add_ltk(hdev, &hcon->dst, hcon->dst_type, HCI_SMP_LTK, ltk = hci_add_ltk(hdev, &hcon->dst, hcon->dst_type, SMP_LTK,
authenticated, smp->tk, smp->enc_key_size, authenticated, smp->tk, smp->enc_key_size,
rp->ediv, rp->rand); rp->ediv, rp->rand);
smp->ltk = ltk; smp->ltk = ltk;
...@@ -1343,7 +1342,7 @@ int smp_distribute_keys(struct l2cap_conn *conn) ...@@ -1343,7 +1342,7 @@ int smp_distribute_keys(struct l2cap_conn *conn)
authenticated = hcon->sec_level == BT_SECURITY_HIGH; authenticated = hcon->sec_level == BT_SECURITY_HIGH;
ltk = hci_add_ltk(hdev, &hcon->dst, hcon->dst_type, ltk = hci_add_ltk(hdev, &hcon->dst, hcon->dst_type,
HCI_SMP_LTK_SLAVE, authenticated, enc.ltk, SMP_LTK_SLAVE, authenticated, enc.ltk,
smp->enc_key_size, ediv, rand); smp->enc_key_size, ediv, rand);
smp->slave_ltk = ltk; smp->slave_ltk = ltk;
......
...@@ -116,6 +116,13 @@ struct smp_cmd_security_req { ...@@ -116,6 +116,13 @@ struct smp_cmd_security_req {
#define SMP_MIN_ENC_KEY_SIZE 7 #define SMP_MIN_ENC_KEY_SIZE 7
#define SMP_MAX_ENC_KEY_SIZE 16 #define SMP_MAX_ENC_KEY_SIZE 16
/* LTK types used in internal storage (struct smp_ltk) */
enum {
SMP_STK,
SMP_LTK,
SMP_LTK_SLAVE,
};
/* SMP Commands */ /* SMP Commands */
bool smp_sufficient_security(struct hci_conn *hcon, u8 sec_level); bool smp_sufficient_security(struct hci_conn *hcon, u8 sec_level);
int smp_conn_security(struct hci_conn *hcon, __u8 sec_level); int smp_conn_security(struct hci_conn *hcon, __u8 sec_level);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment