]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Bluetooth: Set link key generation bit if necessary for LE SC
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 6 Jun 2014 07:39:56 +0000 (10:39 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 3 Dec 2014 15:51:16 +0000 (16:51 +0100)
Depending on whether Secure Connections is enabled or not we may need to add
the link key generation bit to the key distribution. This patch does the
necessary modifications to the build_pairing_cmd() function.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/smp.c

index 0973e37073e2ba4df9e387092151ca5d2f23a740..d993d7d4fcc8a3d8eb7f0ba5d996dca2389efe24 100644 (file)
@@ -333,6 +333,16 @@ static void build_pairing_cmd(struct l2cap_conn *conn,
        if (test_bit(HCI_PRIVACY, &hdev->dev_flags))
                local_dist |= SMP_DIST_ID_KEY;
 
+       if (test_bit(HCI_SC_ENABLED, &hdev->dev_flags)) {
+               if ((authreq & SMP_AUTH_SC) &&
+                   test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
+                       local_dist |= SMP_DIST_LINK_KEY;
+                       remote_dist |= SMP_DIST_LINK_KEY;
+               }
+       } else {
+               authreq &= ~SMP_AUTH_SC;
+       }
+
        if (rsp == NULL) {
                req->io_capability = conn->hcon->io_capability;
                req->oob_flag = SMP_OOB_NOT_PRESENT;