Lines Matching refs:sme
65 if (!index_within_array(groups, wpa_s->sme.sae_group_index)) in sme_set_sae_group()
69 int group = groups[wpa_s->sme.sae_group_index]; in sme_set_sae_group()
72 if (sae_set_group(&wpa_s->sme.sae, group) == 0) { in sme_set_sae_group()
74 wpa_s->sme.sae.group); in sme_set_sae_group()
77 wpa_s->sme.sae_group_index++; in sme_set_sae_group()
104 &wpa_s->sme.sae) < 0) { in sme_auth_build_sae_commit()
109 len = wpa_s->sme.sae_token ? wpabuf_len(wpa_s->sme.sae_token) : 0; in sme_auth_build_sae_commit()
116 sae_write_commit(&wpa_s->sme.sae, buf, wpa_s->sme.sae_token); in sme_auth_build_sae_commit()
132 sae_write_confirm(&wpa_s->sme.sae, buf); in sme_auth_build_sae_confirm()
173 if (sizeof(wpa_s->sme.assoc_req_ie) < in sme_auth_handle_rrm()
174 wpa_s->sme.assoc_req_ie_len + rrm_ie_len + 2) { in sme_auth_handle_rrm()
181 pos = wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len; in sme_auth_handle_rrm()
197 wpa_s->sme.assoc_req_ie_len += rrm_ie_len + 2; in sme_auth_handle_rrm()
240 if (wpa_s->sme.ssid_len != params.ssid_len || in sme_send_authentication()
241 os_memcmp(wpa_s->sme.ssid, params.ssid, params.ssid_len) != 0) in sme_send_authentication()
242 wpa_s->sme.prev_bssid_set = 0; in sme_send_authentication()
244 wpa_s->sme.freq = params.freq; in sme_send_authentication()
245 os_memcpy(wpa_s->sme.ssid, params.ssid, params.ssid_len); in sme_send_authentication()
246 wpa_s->sme.ssid_len = params.ssid_len; in sme_send_authentication()
267 wpa_s->sme.sae_pmksa_caching = 0; in sme_send_authentication()
312 wpa_s->sme.assoc_req_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_send_authentication()
314 wpa_s->sme.assoc_req_ie, in sme_send_authentication()
315 &wpa_s->sme.assoc_req_ie_len)) { in sme_send_authentication()
329 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
331 wpa_s->sme.assoc_req_ie_len = sizeof(wpa_s->sme.assoc_req_ie); in sme_send_authentication()
333 wpa_s->sme.assoc_req_ie, in sme_send_authentication()
334 &wpa_s->sme.assoc_req_ie_len)) { in sme_send_authentication()
346 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
347 wpa_s->sme.assoc_req_ie_len = wpabuf_len(wps_ie); in sme_send_authentication()
348 os_memcpy(wpa_s->sme.assoc_req_ie, wpabuf_head(wps_ie), in sme_send_authentication()
349 wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
351 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
357 wpa_s->sme.assoc_req_ie_len = 0; in sme_send_authentication()
371 if (wpa_s->sme.assoc_req_ie_len + 5 < in sme_send_authentication()
372 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
374 u8 *pos = wpa_s->sme.assoc_req_ie + in sme_send_authentication()
375 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
382 wpa_s->sme.assoc_req_ie_len += 5; in sme_send_authentication()
385 if (wpa_s->sme.ft_used && in sme_send_authentication()
386 os_memcmp(md, wpa_s->sme.mobility_domain, 2) == 0 && in sme_send_authentication()
391 params.ie = wpa_s->sme.ft_ies; in sme_send_authentication()
392 params.ie_len = wpa_s->sme.ft_ies_len; in sme_send_authentication()
398 wpa_s->sme.mfp = wpas_get_ssid_pmf(wpa_s, ssid); in sme_send_authentication()
399 if (wpa_s->sme.mfp != NO_MGMT_FRAME_PROTECTION) { in sme_send_authentication()
407 wpa_s->sme.mfp = MGMT_FRAME_PROTECTION_REQUIRED; in sme_send_authentication()
417 pos = wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
418 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
419 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
423 wpa_s->sme.assoc_req_ie_len += res; in sme_send_authentication()
431 if (wpa_s->sme.assoc_req_ie_len + fst_ies_len <= in sme_send_authentication()
432 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_send_authentication()
433 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
434 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
437 wpa_s->sme.assoc_req_ie_len += fst_ies_len; in sme_send_authentication()
444 wpa_s->sme.assoc_req_ie_len += wpas_supp_op_class_ie( in sme_send_authentication()
446 wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
447 sizeof(wpa_s->sme.assoc_req_ie) - wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
457 u8 *pos = wpa_s->sme.assoc_req_ie; in sme_send_authentication()
458 if (wpa_s->sme.assoc_req_ie_len > 0 && pos[0] == WLAN_EID_RSN) in sme_send_authentication()
461 wpa_s->sme.assoc_req_ie_len - in sme_send_authentication()
462 (pos - wpa_s->sme.assoc_req_ie)); in sme_send_authentication()
463 wpa_s->sme.assoc_req_ie_len += ext_capab_len; in sme_send_authentication()
477 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
478 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
480 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
481 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
483 wpa_s->sme.assoc_req_ie_len += wpabuf_len(hs20); in sme_send_authentication()
494 len = sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
495 wpa_s->sme.assoc_req_ie_len; in sme_send_authentication()
497 os_memcpy(wpa_s->sme.assoc_req_ie + in sme_send_authentication()
498 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
500 wpa_s->sme.assoc_req_ie_len += wpabuf_len(buf); in sme_send_authentication()
508 len = wpas_mbo_ie(wpa_s, wpa_s->sme.assoc_req_ie + in sme_send_authentication()
509 wpa_s->sme.assoc_req_ie_len, in sme_send_authentication()
510 sizeof(wpa_s->sme.assoc_req_ie) - in sme_send_authentication()
511 wpa_s->sme.assoc_req_ie_len); in sme_send_authentication()
513 wpa_s->sme.assoc_req_ie_len += len; in sme_send_authentication()
524 wpa_s->sme.sae_pmksa_caching = 1; in sme_send_authentication()
539 wpa_s->sme.sae.state = start ? SAE_COMMITTED : SAE_CONFIRMED; in sme_send_authentication()
563 wpa_s->sme.auth_alg = WPA_AUTH_ALG_FILS; in sme_send_authentication()
619 wpa_s->sme.auth_alg = params.auth_alg; in sme_send_authentication()
703 cwork->sme = 1; in sme_authenticate()
706 wpa_s->sme.sae.state = SAE_NOTHING; in sme_authenticate()
707 wpa_s->sme.sae.send_confirm = 0; in sme_authenticate()
708 wpa_s->sme.sae_group_index = 0; in sme_authenticate()
729 wpa_s->sme.sae.state == SAE_COMMITTED && in sme_sae_auth()
747 if (sae_group_allowed(&wpa_s->sme.sae, groups, group) != in sme_sae_auth()
754 wpabuf_free(wpa_s->sme.sae_token); in sme_sae_auth()
755 wpa_s->sme.sae_token = wpabuf_alloc_copy(data + sizeof(le16), in sme_sae_auth()
764 wpa_s->sme.sae.state == SAE_COMMITTED && in sme_sae_auth()
767 wpa_s->sme.sae_group_index++; in sme_sae_auth()
788 if (wpa_s->sme.sae.state != SAE_COMMITTED) in sme_sae_auth()
792 res = sae_parse_commit(&wpa_s->sme.sae, data, len, NULL, NULL, in sme_sae_auth()
802 if (sae_process_commit(&wpa_s->sme.sae) < 0) { in sme_sae_auth()
808 wpabuf_free(wpa_s->sme.sae_token); in sme_sae_auth()
809 wpa_s->sme.sae_token = NULL; in sme_sae_auth()
815 if (wpa_s->sme.sae.state != SAE_CONFIRMED) in sme_sae_auth()
817 if (sae_check_confirm(&wpa_s->sme.sae, data, len) < 0) in sme_sae_auth()
819 wpa_s->sme.sae.state = SAE_ACCEPTED; in sme_sae_auth()
820 sae_clear_temp_data(&wpa_s->sme.sae); in sme_sae_auth()
877 wpa_sm_set_pmk(wpa_s->wpa, wpa_s->sme.sae.pmk, PMK_LEN, in sme_event_auth()
878 wpa_s->sme.sae.pmkid, wpa_s->pending_bssid); in sme_event_auth()
903 wpa_s->sme.auth_alg == data->auth.auth_type || in sme_event_auth()
1039 if (wpa_s->sme.assoc_req_ie_len + wpabuf_len(buf) > in sme_associate()
1040 sizeof(wpa_s->sme.assoc_req_ie)) { in sme_associate()
1046 os_memcpy(wpa_s->sme.assoc_req_ie + wpa_s->sme.assoc_req_ie_len, in sme_associate()
1048 wpa_s->sme.assoc_req_ie_len += wpabuf_len(buf); in sme_associate()
1059 params.ssid = wpa_s->sme.ssid; in sme_associate()
1060 params.ssid_len = wpa_s->sme.ssid_len; in sme_associate()
1061 params.freq.freq = wpa_s->sme.freq; in sme_associate()
1064 params.wpa_ie = wpa_s->sme.assoc_req_ie_len ? in sme_associate()
1065 wpa_s->sme.assoc_req_ie : NULL; in sme_associate()
1066 params.wpa_ie_len = wpa_s->sme.assoc_req_ie_len; in sme_associate()
1086 if (auth_type == WLAN_AUTH_FT && wpa_s->sme.ft_ies) { in sme_associate()
1087 params.wpa_ie = wpa_s->sme.ft_ies; in sme_associate()
1088 params.wpa_ie_len = wpa_s->sme.ft_ies_len; in sme_associate()
1092 params.mgmt_frame_protection = wpa_s->sme.mfp; in sme_associate()
1094 if (wpa_s->sme.prev_bssid_set) in sme_associate()
1095 params.prev_bssid = wpa_s->sme.prev_bssid; in sme_associate()
1151 os_free(wpa_s->sme.ft_ies); in sme_update_ft_ies()
1152 wpa_s->sme.ft_ies = NULL; in sme_update_ft_ies()
1153 wpa_s->sme.ft_ies_len = 0; in sme_update_ft_ies()
1154 wpa_s->sme.ft_used = 0; in sme_update_ft_ies()
1158 os_memcpy(wpa_s->sme.mobility_domain, md, MOBILITY_DOMAIN_ID_LEN); in sme_update_ft_ies()
1160 os_free(wpa_s->sme.ft_ies); in sme_update_ft_ies()
1161 wpa_s->sme.ft_ies = os_malloc(ies_len); in sme_update_ft_ies()
1162 if (wpa_s->sme.ft_ies == NULL) in sme_update_ft_ies()
1164 os_memcpy(wpa_s->sme.ft_ies, ies, ies_len); in sme_update_ft_ies()
1165 wpa_s->sme.ft_ies_len = ies_len; in sme_update_ft_ies()
1181 wpa_s->sme.prev_bssid_set = 0; in sme_deauth()
1202 if (wpa_s->sme.sae_pmksa_caching && wpa_s->current_ssid && in sme_event_assoc_reject()
1255 if (wpa_s->sme.prev_bssid_set) { in sme_event_disassoc()
1264 wpa_drv_deauthenticate(wpa_s, wpa_s->sme.prev_bssid, in sme_event_disassoc()
1324 wpa_s->sme.prev_bssid_set = 0; in sme_clear_on_disassoc()
1326 wpabuf_free(wpa_s->sme.sae_token); in sme_clear_on_disassoc()
1327 wpa_s->sme.sae_token = NULL; in sme_clear_on_disassoc()
1328 sae_clear_data(&wpa_s->sme.sae); in sme_clear_on_disassoc()
1331 if (wpa_s->sme.ft_ies) in sme_clear_on_disassoc()
1339 os_free(wpa_s->sme.ft_ies); in sme_deinit()
1340 wpa_s->sme.ft_ies = NULL; in sme_deinit()
1341 wpa_s->sme.ft_ies_len = 0; in sme_deinit()
1411 if (!wpa_s->sme.sched_obss_scan) in sme_proc_obss_scan()
1414 wpa_s->sme.sched_obss_scan = 0; in sme_proc_obss_scan()
1488 if (wpa_s->sme.ht_sec_chan == HT_SEC_CHAN_UNKNOWN && in wpa_obss_scan_freqs_list()
1498 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_ABOVE; in wpa_obss_scan_freqs_list()
1500 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_BELOW; in wpa_obss_scan_freqs_list()
1506 switch (wpa_s->sme.ht_sec_chan) { in wpa_obss_scan_freqs_list()
1560 wpa_s->sme.sched_obss_scan = 1; in sme_obss_scan_timeout()
1563 eloop_register_timeout(wpa_s->sme.obss_scan_int, 0, in sme_obss_scan_timeout()
1577 wpa_s->sme.sched_obss_scan = 0; in sme_sched_obss_scan()
1578 wpa_s->sme.ht_sec_chan = HT_SEC_CHAN_UNKNOWN; in sme_sched_obss_scan()
1620 wpa_s->sme.obss_scan_int = WPA_GET_LE16(ie + 6); in sme_sched_obss_scan()
1621 if (wpa_s->sme.obss_scan_int < 10) { in sme_sched_obss_scan()
1624 wpa_s->sme.obss_scan_int); in sme_sched_obss_scan()
1625 wpa_s->sme.obss_scan_int = 10; in sme_sched_obss_scan()
1628 wpa_s->sme.obss_scan_int); in sme_sched_obss_scan()
1629 eloop_register_timeout(wpa_s->sme.obss_scan_int, 0, in sme_sched_obss_scan()
1644 os_reltime_sub(&now, &wpa_s->sme.sa_query_start, &passed); in sme_check_sa_query_timeout()
1683 if (wpa_s->sme.sa_query_count > 0 && in sme_sa_query_timer()
1687 nbuf = os_realloc_array(wpa_s->sme.sa_query_trans_id, in sme_sa_query_timer()
1688 wpa_s->sme.sa_query_count + 1, in sme_sa_query_timer()
1694 if (wpa_s->sme.sa_query_count == 0) { in sme_sa_query_timer()
1696 os_get_reltime(&wpa_s->sme.sa_query_start); in sme_sa_query_timer()
1698 trans_id = nbuf + wpa_s->sme.sa_query_count * WLAN_SA_QUERY_TR_ID_LEN; in sme_sa_query_timer()
1699 wpa_s->sme.sa_query_trans_id = nbuf; in sme_sa_query_timer()
1700 wpa_s->sme.sa_query_count++; in sme_sa_query_timer()
1714 wpa_s->sme.sa_query_count); in sme_sa_query_timer()
1729 os_free(wpa_s->sme.sa_query_trans_id); in sme_stop_sa_query()
1730 wpa_s->sme.sa_query_trans_id = NULL; in sme_stop_sa_query()
1731 wpa_s->sme.sa_query_count = 0; in sme_stop_sa_query()
1751 if (wpa_s->sme.sa_query_count > 0) in sme_event_unprot_disconnect()
1755 if (wpa_s->sme.last_unprot_disconnect.sec && in sme_event_unprot_disconnect()
1756 !os_reltime_expired(&now, &wpa_s->sme.last_unprot_disconnect, 10)) in sme_event_unprot_disconnect()
1758 wpa_s->sme.last_unprot_disconnect = now; in sme_event_unprot_disconnect()
1771 if (wpa_s->sme.sa_query_trans_id == NULL || in sme_sa_query_rx()
1781 for (i = 0; i < wpa_s->sme.sa_query_count; i++) { in sme_sa_query_rx()
1782 if (os_memcmp(wpa_s->sme.sa_query_trans_id + in sme_sa_query_rx()
1788 if (i >= wpa_s->sme.sa_query_count) { in sme_sa_query_rx()