Revert "Bluetooth: SMP: Workaround LE SC bug in iOS"

This reverts commit 15c1fed5b6.

This workaround is no longer needed as it was verified that pairing
succeed without it. Also I'm no longer sure if initial pairing issue
was due to missing bit in key distirbution field or if it was due to
iOS already had device with this address paired (ie removing device
bonding from settings application fix the problem).

Change-Id: I6d69b9afb04afc83139d57d2dffe1b62d40afe5b
Signed-off-by: Szymon Janc <ext.szymon.janc@tieto.com>
This commit is contained in:
Szymon Janc 2016-08-03 12:49:58 +02:00 committed by Inaky Perez-Gonzalez
commit b944c0bd65

View file

@ -70,12 +70,8 @@
#define SEND_KEYS (BT_SMP_DIST_ENC_KEY | SIGN_DIST) #define SEND_KEYS (BT_SMP_DIST_ENC_KEY | SIGN_DIST)
#endif #endif
/* #define RECV_KEYS_SC (RECV_KEYS & ~(BT_SMP_DIST_ENC_KEY | BT_SMP_DIST_LINK_KEY))
* Don't include BT_SMP_DIST_ENC_KEY in this mask. See comment in #define SEND_KEYS_SC (SEND_KEYS & ~(BT_SMP_DIST_ENC_KEY | BT_SMP_DIST_LINK_KEY))
* bt_smp_encrypt_change for details.
*/
#define RECV_KEYS_SC (RECV_KEYS & ~(BT_SMP_DIST_LINK_KEY))
#define SEND_KEYS_SC (SEND_KEYS & ~(BT_SMP_DIST_LINK_KEY))
#define BT_SMP_AUTH_MASK 0x07 #define BT_SMP_AUTH_MASK 0x07
#define BT_SMP_AUTH_MASK_SC 0x0f #define BT_SMP_AUTH_MASK_SC 0x0f
@ -2661,18 +2657,6 @@ static void bt_smp_encrypt_change(struct bt_l2cap_chan *chan)
return; return;
} }
/*
* Clear EncKey bit for LE SC. This is legacy key and should not be
* distributed when LE SC is used. We don't clean it initially to
* workaround bug in iOS BT stack where it sends Pairing Failed PDU
* if any (?) keys were distributed but EncKey was not set in key
* distribution.
*/
if (atomic_test_bit(smp->flags, SMP_FLAG_SC)) {
smp->local_dist &= ~BT_SMP_DIST_ENC_KEY;
smp->remote_dist &= ~BT_SMP_DIST_ENC_KEY;
}
if (smp->remote_dist & BT_SMP_DIST_ENC_KEY) { if (smp->remote_dist & BT_SMP_DIST_ENC_KEY) {
atomic_set_bit(&smp->allowed_cmds, BT_SMP_CMD_ENCRYPT_INFO); atomic_set_bit(&smp->allowed_cmds, BT_SMP_CMD_ENCRYPT_INFO);
} else if (smp->remote_dist & BT_SMP_DIST_ID_KEY) { } else if (smp->remote_dist & BT_SMP_DIST_ID_KEY) {