Bluetooth: Set correct LTK type and authentication for SC
After generating the LTK we should set the correct type (normal SC or debug) and authentication information for it. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
6c0dcc5014
Коммит
d378a2d776
|
@ -2060,6 +2060,7 @@ static int smp_cmd_dhkey_check(struct l2cap_conn *conn, struct sk_buff *skb)
|
|||
struct smp_chan *smp = chan->data;
|
||||
u8 a[7], b[7], *local_addr, *remote_addr;
|
||||
u8 io_cap[3], r[16], e[16];
|
||||
u8 key_type, auth;
|
||||
int err;
|
||||
|
||||
BT_DBG("conn %p", conn);
|
||||
|
@ -2092,8 +2093,18 @@ static int smp_cmd_dhkey_check(struct l2cap_conn *conn, struct sk_buff *skb)
|
|||
if (memcmp(check->e, e, 16))
|
||||
return SMP_DHKEY_CHECK_FAILED;
|
||||
|
||||
if (test_bit(SMP_FLAG_DEBUG_KEY, &smp->flags))
|
||||
key_type = SMP_LTK_P256_DEBUG;
|
||||
else
|
||||
key_type = SMP_LTK_P256;
|
||||
|
||||
if (hcon->pending_sec_level == BT_SECURITY_FIPS)
|
||||
auth = 1;
|
||||
else
|
||||
auth = 0;
|
||||
|
||||
smp->ltk = hci_add_ltk(hcon->hdev, &hcon->dst, hcon->dst_type,
|
||||
SMP_LTK_P256, 0, smp->tk, smp->enc_key_size,
|
||||
key_type, auth, smp->tk, smp->enc_key_size,
|
||||
0, 0);
|
||||
|
||||
if (hcon->out) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче