Bluetooth: Fix SMP user passkey notification mgmt event
When performing SMP pairing with MITM protection one side needs to enter the passkey while the other side displays to the user what needs to be entered. Nowhere in the SMP specification does it say that the displaying side needs to any kind of confirmation of the passkey, even though a code comment in smp.c implies this. This patch removes the misleading comment and converts the code to use the passkey notification mgmt event instead of the passkey confirmation mgmt event. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
5ed884d765
commit
01ad34d267
|
@ -407,13 +407,14 @@ static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth,
|
|||
method = REQ_PASSKEY;
|
||||
}
|
||||
|
||||
/* Generate random passkey. Not valid until confirmed. */
|
||||
/* Generate random passkey. */
|
||||
if (method == CFM_PASSKEY) {
|
||||
memset(smp->tk, 0, sizeof(smp->tk));
|
||||
get_random_bytes(&passkey, sizeof(passkey));
|
||||
passkey %= 1000000;
|
||||
put_unaligned_le32(passkey, smp->tk);
|
||||
BT_DBG("PassKey: %d", passkey);
|
||||
set_bit(SMP_FLAG_TK_VALID, &smp->smp_flags);
|
||||
}
|
||||
|
||||
hci_dev_lock(hcon->hdev);
|
||||
|
@ -422,7 +423,7 @@ static int tk_request(struct l2cap_conn *conn, u8 remote_oob, u8 auth,
|
|||
ret = mgmt_user_passkey_request(hcon->hdev, &hcon->dst,
|
||||
hcon->type, hcon->dst_type);
|
||||
else
|
||||
ret = mgmt_user_confirm_request(hcon->hdev, &hcon->dst,
|
||||
ret = mgmt_user_passkey_notify(hcon->hdev, &hcon->dst,
|
||||
hcon->type, hcon->dst_type,
|
||||
cpu_to_le32(passkey), 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue