DPP2: Add Protocol Version attribute to network introduction messages
This can be used to determine whether to try to negotiate PFS (only available with version 2 or higher). Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
7ec86f6599
commit
42acf1292d
2 changed files with 26 additions and 4 deletions
|
@ -1206,9 +1206,13 @@ static void hostapd_dpp_send_peer_disc_resp(struct hostapd_data *hapd,
|
|||
enum dpp_status_error status)
|
||||
{
|
||||
struct wpabuf *msg;
|
||||
size_t len;
|
||||
|
||||
msg = dpp_alloc_msg(DPP_PA_PEER_DISCOVERY_RESP,
|
||||
5 + 5 + 4 + os_strlen(hapd->conf->dpp_connector));
|
||||
len = 5 + 5 + 4 + os_strlen(hapd->conf->dpp_connector);
|
||||
#ifdef CONFIG_DPP2
|
||||
len += 5;
|
||||
#endif /* CONFIG_DPP2 */
|
||||
msg = dpp_alloc_msg(DPP_PA_PEER_DISCOVERY_RESP, len);
|
||||
if (!msg)
|
||||
return;
|
||||
|
||||
|
@ -1281,6 +1285,13 @@ skip_status:
|
|||
skip_connector:
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
|
||||
#ifdef CONFIG_DPP2
|
||||
/* Protocol Version */
|
||||
wpabuf_put_le16(msg, DPP_ATTR_PROTOCOL_VERSION);
|
||||
wpabuf_put_le16(msg, 1);
|
||||
wpabuf_put_u8(msg, 2);
|
||||
#endif /* CONFIG_DPP2 */
|
||||
|
||||
wpa_printf(MSG_DEBUG, "DPP: Send Peer Discovery Response to " MACSTR
|
||||
" status=%d", MAC2STR(src), status);
|
||||
wpa_msg(hapd->msg_ctx, MSG_INFO, DPP_EVENT_TX "dst=" MACSTR
|
||||
|
|
|
@ -2474,6 +2474,7 @@ int wpas_dpp_check_connect(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
|
|||
unsigned int wait_time;
|
||||
const u8 *rsn;
|
||||
struct wpa_ie_data ied;
|
||||
size_t len;
|
||||
|
||||
if (!(ssid->key_mgmt & WPA_KEY_MGMT_DPP) || !bss)
|
||||
return 0; /* Not using DPP AKM - continue */
|
||||
|
@ -2507,8 +2508,11 @@ int wpas_dpp_check_connect(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
|
|||
"DPP: Starting network introduction protocol to derive PMKSA for "
|
||||
MACSTR, MAC2STR(bss->bssid));
|
||||
|
||||
msg = dpp_alloc_msg(DPP_PA_PEER_DISCOVERY_REQ,
|
||||
5 + 4 + os_strlen(ssid->dpp_connector));
|
||||
len = 5 + 4 + os_strlen(ssid->dpp_connector);
|
||||
#ifdef CONFIG_DPP2
|
||||
len += 5;
|
||||
#endif /* CONFIG_DPP2 */
|
||||
msg = dpp_alloc_msg(DPP_PA_PEER_DISCOVERY_REQ, len);
|
||||
if (!msg)
|
||||
return -1;
|
||||
|
||||
|
@ -2563,6 +2567,13 @@ skip_trans_id:
|
|||
skip_connector:
|
||||
#endif /* CONFIG_TESTING_OPTIONS */
|
||||
|
||||
#ifdef CONFIG_DPP2
|
||||
/* Protocol Version */
|
||||
wpabuf_put_le16(msg, DPP_ATTR_PROTOCOL_VERSION);
|
||||
wpabuf_put_le16(msg, 1);
|
||||
wpabuf_put_u8(msg, 2);
|
||||
#endif /* CONFIG_DPP2 */
|
||||
|
||||
/* TODO: Timeout on AP response */
|
||||
wait_time = wpa_s->max_remain_on_chan;
|
||||
if (wait_time > 2000)
|
||||
|
|
Loading…
Reference in a new issue