Lines Matching refs:ssid

111 int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
116 if (ssid->wep_key_len[i] == 0)
121 i, i == ssid->wep_tx_keyidx, NULL, 0,
122 ssid->wep_key[i], ssid->wep_key_len[i]);
130 struct wpa_ssid *ssid)
141 if (ssid->mode != WPAS_MODE_IBSS) {
143 "IBSS/ad-hoc) for WPA-None", ssid->mode);
147 if (!ssid->psk_set) {
155 os_memcpy(key, ssid->psk, 16);
160 os_memcpy(key, ssid->psk, 16);
166 os_memcpy(key, ssid->psk, 16 + 8);
167 os_memcpy(key + 16 + 8, ssid->psk + 16, 8);
257 struct wpa_ssid *ssid = wpa_s->current_ssid;
260 if (ssid->mode == WPAS_MODE_IBSS &&
287 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_UNICAST) {
290 if (ssid->eapol_flags & EAPOL_FLAG_REQUIRE_KEY_BROADCAST) {
299 eapol_conf.workaround = ssid->eap_workaround;
323 eapol_sm_notify_config(wpa_s->eapol, &ssid->eap, &eapol_conf);
325 ieee802_1x_alloc_kay_sm(wpa_s, ssid);
333 * @ssid: Configuration data for the network
340 struct wpa_ssid *ssid)
344 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS)
346 else if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA)
358 if (ssid->wep_key_len[i] > 5) {
362 } else if (ssid->wep_key_len[i] > 0) {
421 struct wpa_ssid *ssid;
422 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
423 wpas_notify_network_removed(wpa_s, ssid);
759 struct wpa_ssid *ssid = wpa_s->current_ssid;
764 ssid ? ssid->id : -1,
765 ssid && ssid->id_str ? ssid->id_str : "");
767 wpas_clear_temp_disabled(wpa_s, ssid, 1);
969 struct wpa_ssid *ssid,
983 if (!(ie->group_cipher & ssid->group_cipher)) {
986 ie->group_cipher, ssid->group_cipher);
989 if (!(ie->pairwise_cipher & ssid->pairwise_cipher)) {
992 ie->pairwise_cipher, ssid->pairwise_cipher);
995 if (!(ie->key_mgmt & ssid->key_mgmt)) {
998 ie->key_mgmt, ssid->key_mgmt);
1004 wpas_get_ssid_pmf(wpa_s, ssid) == MGMT_FRAME_PROTECTION_REQUIRED) {
1020 * @ssid: Configuration data for the selected network
1031 struct wpa_bss *bss, struct wpa_ssid *ssid,
1045 if (bss_rsn && (ssid->proto & WPA_PROTO_RSN) &&
1047 (ie.group_cipher & ssid->group_cipher) &&
1048 (ie.pairwise_cipher & ssid->pairwise_cipher) &&
1049 (ie.key_mgmt & ssid->key_mgmt)) {
1052 } else if (bss_wpa && (ssid->proto & WPA_PROTO_WPA) &&
1054 (ie.group_cipher & ssid->group_cipher) &&
1055 (ie.pairwise_cipher & ssid->pairwise_cipher) &&
1056 (ie.key_mgmt & ssid->key_mgmt)) {
1060 } else if (bss_osen && (ssid->proto & WPA_PROTO_OSEN)) {
1072 "WPA: ssid proto=0x%x pairwise_cipher=0x%x group_cipher=0x%x key_mgmt=0x%x",
1073 ssid->proto, ssid->pairwise_cipher, ssid->group_cipher,
1074 ssid->key_mgmt);
1075 wpa_dbg(wpa_s, MSG_DEBUG, "WPA: BSS " MACSTR " ssid='%s'%s%s%s",
1077 wpa_ssid_txt(bss->ssid, bss->ssid_len),
1107 if (ssid->proto & WPA_PROTO_OSEN)
1109 else if (ssid->proto & WPA_PROTO_RSN)
1113 if (wpa_supplicant_suites_from_ai(wpa_s, ssid, &ie) < 0) {
1115 ie.group_cipher = ssid->group_cipher;
1116 ie.pairwise_cipher = ssid->pairwise_cipher;
1117 ie.key_mgmt = ssid->key_mgmt;
1120 ssid->ieee80211w != NO_MGMT_FRAME_PROTECTION ?
1133 if (ssid->ieee80211w) {
1142 !!(ssid->proto & (WPA_PROTO_RSN | WPA_PROTO_OSEN)));
1152 sel = ie.group_cipher & ssid->group_cipher;
1162 sel = ie.pairwise_cipher & ssid->pairwise_cipher;
1172 sel = ie.key_mgmt & ssid->key_mgmt;
1243 if (wpas_get_ssid_pmf(wpa_s, ssid) == NO_MGMT_FRAME_PROTECTION ||
1269 wpas_get_ssid_pmf(wpa_s, ssid));
1277 if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt)) {
1280 if (ssid->psk_set) {
1281 wpa_sm_set_pmk(wpa_s->wpa, ssid->psk, PMK_LEN, NULL);
1285 if (bss && ssid->bssid_set && ssid->ssid_len == 0 &&
1286 ssid->passphrase) {
1288 pbkdf2_sha1(ssid->passphrase, bss->ssid, bss->ssid_len,
1298 if (ssid->ext_psk) {
1300 ssid->ext_psk);
1324 pbkdf2_sha1(pw_str, bss->ssid, bss->ssid_len,
1465 struct wpa_ssid *ssid;
1467 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1468 if (ssid == test_ssid)
1578 * @ssid: Configuration data for the selected network
1583 struct wpa_bss *bss, struct wpa_ssid *ssid)
1588 if (ssid->mac_addr == -1)
1591 rand_style = ssid->mac_addr;
1596 if (wpa_s->last_ssid == ssid) {
1605 wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
1620 wpa_s->last_ssid = ssid;
1627 if (ssid->mode == WPAS_MODE_AP || ssid->mode == WPAS_MODE_P2P_GO ||
1628 ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION) {
1635 if (wpa_supplicant_create_ap(wpa_s, ssid) < 0) {
1637 if (ssid->mode == WPAS_MODE_P2P_GROUP_FORMATION)
1649 if (ssid->mode == WPAS_MODE_MESH) {
1657 ssid->frequency = bss->freq;
1658 if (wpa_supplicant_join_mesh(wpa_s, ssid) < 0) {
1664 "ssid=\"%s\" id=%d",
1665 wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
1666 ssid->id);
1681 ssid->mode == IEEE80211_MODE_INFRA) {
1682 sme_authenticate(wpa_s, bss, ssid);
1701 cwork->ssid = ssid;
1718 const struct wpa_ssid *ssid,
1732 freq->freq = ssid->frequency;
1737 if (ssid->mode != WPAS_MODE_IBSS)
1741 if (ssid->fixed_freq)
1747 if (ssid->ssid_len == bss->ssid_len &&
1748 os_memcmp(ssid->ssid, bss->ssid, bss->ssid_len) == 0) {
1759 if (ssid->mode == WPAS_MODE_IBSS &&
1881 if (ssid->mode != WPAS_MODE_IBSS)
1935 struct wpa_ssid *ssid = cwork->ssid;
1969 if (cwork->bss_removed || !wpas_valid_bss_ssid(wpa_s, bss, ssid)) {
1985 wpa_ssid_txt(bss->ssid, bss->ssid_len), bss->freq);
2002 } else if ((ssid->ssid == NULL || ssid->ssid_len == 0) &&
2004 (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
2015 wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
2026 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
2027 if (ssid->leap) {
2028 if (ssid->non_leap == 0)
2036 if (ssid->auth_alg) {
2037 algs = ssid->auth_alg;
2044 wpa_key_mgmt_wpa(ssid->key_mgmt)) {
2046 try_opportunistic = (ssid->proactive_key_caching < 0 ?
2048 ssid->proactive_key_caching) &&
2049 (ssid->proto & WPA_PROTO_RSN);
2051 ssid, try_opportunistic) == 0)
2054 if (wpa_supplicant_set_suites(wpa_s, bss, ssid,
2061 } else if ((ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) && bss &&
2062 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt)) {
2068 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2071 } else if (wpa_key_mgmt_wpa_any(ssid->key_mgmt)) {
2073 if (wpa_supplicant_set_suites(wpa_s, NULL, ssid,
2082 } else if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
2084 wps_ie = wps_build_assoc_req_ie(wpas_wps_get_req_type(ssid));
2091 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2099 wpa_supplicant_set_non_wpa_policy(wpa_s, ssid);
2112 ssid->p2p_group);
2136 if (is_hs20_network(wpa_s, ssid, bss)) {
2140 int pps_mo_id = hs20_get_pps_mo_id(wpa_s, ssid);
2199 if (wpa_set_wep_keys(wpa_s, ssid)) {
2209 if ((ssid->eapol_flags &
2225 wpa_supplicant_set_wpa_none_key(wpa_s, ssid);
2230 params.ssid = bss->ssid;
2232 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set) {
2237 ssid->bssid_set);
2244 params.ssid = ssid->ssid;
2245 params.ssid_len = ssid->ssid_len;
2248 if (ssid->mode == WPAS_MODE_IBSS && ssid->bssid_set &&
2250 params.bssid = ssid->bssid;
2255 if ((ssid->mode == WPAS_MODE_IBSS || ssid->mode == WPAS_MODE_MESH) &&
2256 ssid->frequency > 0 && params.freq.freq == 0)
2257 ibss_mesh_setup_freq(wpa_s, ssid, &params.freq);
2259 if (ssid->mode == WPAS_MODE_IBSS) {
2260 params.fixed_freq = ssid->fixed_freq;
2261 if (ssid->beacon_int)
2262 params.beacon_int = ssid->beacon_int;
2274 params.mode = ssid->mode;
2275 params.bg_scan_period = ssid->bg_scan_period;
2277 if (ssid->wep_key_len[i])
2278 params.wep_key[i] = ssid->wep_key[i];
2279 params.wep_key_len[i] = ssid->wep_key_len[i];
2281 params.wep_tx_keyidx = ssid->wep_tx_keyidx;
2286 params.passphrase = ssid->passphrase;
2287 if (ssid->psk_set)
2288 params.psk = ssid->psk;
2297 ssid->proactive_key_caching < 0 ?
2298 wpa_s->conf->okc : ssid->proactive_key_caching;
2305 ssid->psk_set)
2306 params.psk = ssid->psk;
2312 params.mgmt_frame_protection = wpas_get_ssid_pmf(wpa_s, ssid);
2327 params.p2p = ssid->p2p_group;
2339 wpa_supplicant_apply_ht_overrides(wpa_s, ssid, &params);
2346 wpa_supplicant_apply_vht_overrides(wpa_s, ssid, &params);
2363 wpa_s, params.freq.freq, ssid) < 0) {
2394 wpa_supplicant_set_wpa_none_key(wpa_s, ssid);
2400 } else if (ssid->mode == WPAS_MODE_IBSS &&
2415 timeout = ssid->mode == WPAS_MODE_IBSS ? 10 : 5;
2418 timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10;
2426 wpa_set_wep_keys(wpa_s, ssid);
2429 if (wpa_s->current_ssid && wpa_s->current_ssid != ssid) {
2437 wpa_s->current_ssid = ssid;
2438 if (!wpas_driver_bss_selection(wpa_s) || ssid->bssid_set)
2527 struct wpa_ssid *ssid)
2529 if (!ssid || !ssid->disabled || ssid->disabled == 2)
2532 ssid->disabled = 0;
2533 wpas_clear_temp_disabled(wpa_s, ssid, 1);
2534 wpas_notify_network_enabled_changed(wpa_s, ssid);
2548 * @ssid: wpa_ssid structure for a configured network or %NULL
2553 struct wpa_ssid *ssid)
2555 if (ssid == NULL) {
2556 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
2557 wpa_supplicant_enable_one_network(wpa_s, ssid);
2559 wpa_supplicant_enable_one_network(wpa_s, ssid);
2577 * @ssid: wpa_ssid structure for a configured network or %NULL
2582 struct wpa_ssid *ssid)
2587 if (ssid == NULL) {
2591 for (other_ssid = wpa_s->conf->ssid; other_ssid;
2607 } else if (ssid->disabled != 2) {
2608 if (ssid == wpa_s->current_ssid)
2612 was_disabled = ssid->disabled;
2614 ssid->disabled = 1;
2616 if (was_disabled != ssid->disabled) {
2617 wpas_notify_network_enabled_changed(wpa_s, ssid);
2632 * @ssid: wpa_ssid structure for a configured network or %NULL for any network
2635 struct wpa_ssid *ssid)
2641 if (ssid && ssid != wpa_s->current_ssid && wpa_s->current_ssid) {
2649 if (ssid)
2650 wpas_clear_temp_disabled(wpa_s, ssid, 1);
2656 for (other_ssid = wpa_s->conf->ssid; other_ssid;
2662 other_ssid->disabled = ssid ? (ssid->id != other_ssid->id) : 0;
2670 if (ssid && ssid == wpa_s->current_ssid && wpa_s->current_ssid) {
2677 if (ssid) {
2678 wpa_s->current_ssid = ssid;
2681 (ssid->mode == WPAS_MODE_MESH) ? ssid : NULL;
2700 if (ssid)
2701 wpas_notify_network_selected(wpa_s, ssid);
2912 u8 ssid[SSID_MAX_LEN];
2918 res = wpa_drv_get_ssid(wpa_s, ssid);
2935 entry = wpa_s->conf->ssid;
2939 os_memcmp(ssid, entry->ssid, ssid_len) == 0) || wired) &&
2946 (entry->ssid == NULL || entry->ssid_len == 0) &&
3530 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
3536 if (!ssid)
3539 params->disable_ht = ssid->disable_ht;
3545 wpa_set_htcap_mcs(wpa_s, htcaps, htcaps_mask, ssid->ht_mcs);
3547 ssid->disable_max_amsdu);
3548 wpa_set_ampdu_factor(wpa_s, htcaps, htcaps_mask, ssid->ampdu_factor);
3549 wpa_set_ampdu_density(wpa_s, htcaps, htcaps_mask, ssid->ampdu_density);
3550 wpa_set_disable_ht40(wpa_s, htcaps, htcaps_mask, ssid->disable_ht40);
3551 wpa_set_disable_sgi(wpa_s, htcaps, htcaps_mask, ssid->disable_sgi);
3552 wpa_set_disable_ldpc(wpa_s, htcaps, htcaps_mask, ssid->disable_ldpc);
3554 if (ssid->ht40_intolerant) {
3566 struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
3572 if (!ssid)
3575 params->disable_vht = ssid->disable_vht;
3583 vhtcaps->vht_capabilities_info = ssid->vht_capa;
3584 vhtcaps_mask->vht_capabilities_info = ssid->vht_capa_mask;
3588 if (ssid->vht_capa_mask & VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MAX) {
3591 max_ampdu = (ssid->vht_capa &
3604 if (ssid->vht_tx_mcs_nss_ ##i >= 0) { \
3608 ssid->vht_tx_mcs_nss_ ##i << 2 * (i - 1); \
3610 if (ssid->vht_rx_mcs_nss_ ##i >= 0) { \
3614 ssid->vht_rx_mcs_nss_ ##i << 2 * (i - 1); \
4400 struct wpa_ssid *ssid;
4440 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next)
4441 wpas_notify_network_added(wpa_s, ssid);
4863 os_memcmp(bss->ssid, cbss->ssid, bss->ssid_len) == 0 &&
4992 struct wpa_ssid *ssid,
4997 struct eap_peer_config *eap = &ssid->eap;
5009 if (ssid == wpa_s->current_ssid)
5017 if (ssid == wpa_s->current_ssid)
5025 if (ssid == wpa_s->current_ssid)
5032 if (ssid == wpa_s->current_ssid)
5047 if (ssid == wpa_s->current_ssid)
5055 if (wpa_config_set(ssid, "psk", value, 0) < 0)
5057 ssid->mem_only_psk = 1;
5058 if (ssid->passphrase)
5059 wpa_config_update_psk(ssid);
5077 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
5085 if (ssid == NULL)
5088 if (ssid->disabled)
5097 size_t len = ssid->wep_key_len[i];
5109 if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set &&
5110 (!ssid->passphrase || ssid->ssid_len != 0) && !ssid->ext_psk &&
5111 !ssid->mem_only_psk)
5118 int wpas_get_ssid_pmf(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
5121 if (ssid == NULL || ssid->ieee80211w == MGMT_FRAME_PROTECTION_DEFAULT) {
5135 return ssid->ieee80211w;
5154 struct wpa_ssid *ssid = wpa_s->current_ssid;
5158 if (ssid == NULL) {
5164 if (ssid->key_mgmt == WPA_KEY_MGMT_WPS)
5167 ssid->auth_failures++;
5170 if (ssid->p2p_group &&
5180 if (ssid->auth_failures > 50)
5182 else if (ssid->auth_failures > 10)
5184 else if (ssid->auth_failures > 5)
5186 else if (ssid->auth_failures > 3)
5188 else if (ssid->auth_failures > 2)
5190 else if (ssid->auth_failures > 1)
5195 if (ssid->auth_failures > 1 &&
5196 wpa_key_mgmt_wpa_ieee8021x(ssid->key_mgmt))
5197 dur += os_random() % (ssid->auth_failures * 10);
5200 if (now.sec + dur <= ssid->disabled_until.sec)
5203 ssid->disabled_until.sec = now.sec + dur;
5206 "id=%d ssid=\"%s\" auth_failures=%u duration=%d reason=%s",
5207 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len),
5208 ssid->auth_failures, dur, reason);
5213 struct wpa_ssid *ssid, int clear_failures)
5215 if (ssid == NULL)
5218 if (ssid->disabled_until.sec) {
5220 "id=%d ssid=\"%s\"",
5221 ssid->id, wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
5223 ssid->disabled_until.sec = 0;
5224 ssid->disabled_until.usec = 0;
5226 ssid->auth_failures = 0;
5247 int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid,
5252 if (wpa_s->disallow_aps_ssid == NULL || ssid == NULL)
5258 os_memcmp(ssid, s->ssid, ssid_len) == 0)
5474 * @ssid: if not null, this is sent in the request. Otherwise, no SSID IE
5489 const struct wpa_ssid *ssid,
5530 buf = wpabuf_alloc(3 + (ssid ? 2 + ssid->ssid_len : 0));
5538 (ssid ? wpa_ssid_txt(ssid->ssid, ssid->ssid_len) : ""),
5544 if (ssid) {
5546 wpabuf_put_u8(buf, ssid->ssid_len);
5547 wpabuf_put_data(buf, ssid->ssid, ssid->ssid_len);