summaryrefslogtreecommitdiffstats
path: root/bta
diff options
context:
space:
mode:
authorRavi Nagarajan <nravi@broadcom.com>2012-05-02 17:21:37 +0530
committerMatthew Xie <mattx@google.com>2012-07-14 11:19:19 -0700
commitdefb69c3b383ad0f9b5d6329be625fafc2e3c931 (patch)
tree1d13985bb9ca12b943aa70474a9a42243e6040a4 /bta
parentcff2b2b29bd9083f0b92e628b225a72a7ef52332 (diff)
downloadexternal_bluetooth_bluedroid-defb69c3b383ad0f9b5d6329be625fafc2e3c931.zip
external_bluetooth_bluedroid-defb69c3b383ad0f9b5d6329be625fafc2e3c931.tar.gz
external_bluetooth_bluedroid-defb69c3b383ad0f9b5d6329be625fafc2e3c931.tar.bz2
Resolve JustWorks related pairing issues
1. Per the spec, if both sides are using "No Bonding" for auth requirements, then the key could be considered a session key. Updated the pairing logic to handle this 2. If incoming JustWorks pairing is initiated, prompt the user for consent if the peer's io capabilities reflects DisplayOnly or NoInputNoOutput Change-Id: If592c96203e7a4b25af3d87056d534131b606e58
Diffstat (limited to 'bta')
-rw-r--r--bta/dm/bta_dm_act.c2
-rw-r--r--bta/include/bta_api.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/bta/dm/bta_dm_act.c b/bta/dm/bta_dm_act.c
index 347a3f7..5d80891 100644
--- a/bta/dm/bta_dm_act.c
+++ b/bta/dm/bta_dm_act.c
@@ -2827,6 +2827,8 @@ static UINT8 bta_dm_sp_cback (tBTM_SP_EVT event, tBTM_SP_EVT_DATA *p_data)
bta_dm_cb.just_works = sec_event.cfm_req.just_works = p_data->cfm_req.just_works;
sec_event.cfm_req.loc_auth_req = p_data->cfm_req.loc_auth_req;
sec_event.cfm_req.rmt_auth_req = p_data->cfm_req.rmt_auth_req;
+ sec_event.cfm_req.loc_io_caps = p_data->cfm_req.loc_io_caps;
+ sec_event.cfm_req.rmt_io_caps = p_data->cfm_req.rmt_io_caps;
/* continue to next case */
#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE)
/* Passkey entry mode, mobile device with output capability is very
diff --git a/bta/include/bta_api.h b/bta/include/bta_api.h
index ebc4f14..b8a4f50 100644
--- a/bta/include/bta_api.h
+++ b/bta/include/bta_api.h
@@ -624,6 +624,8 @@ typedef struct
BOOLEAN just_works; /* TRUE, if "Just Works" association model */
tBTA_AUTH_REQ loc_auth_req; /* Authentication required for local device */
tBTA_AUTH_REQ rmt_auth_req; /* Authentication required for peer device */
+ tBTA_IO_CAP loc_io_caps; /* IO Capabilities of local device */
+ tBTA_AUTH_REQ rmt_io_caps; /* IO Capabilities of remote device */
} tBTA_DM_SP_CFM_REQ;
enum