Lines Matching refs:ssid
130 struct wpa_ssid *ssid = NULL;
151 bss = wpa_supplicant_pick_network(wpa_s, &ssid);
194 struct wpa_ssid *ssid,
215 if (ssid->ssid == NULL)
217 bss = wpa_bss_get(wpa_s, cred->mac_addr, ssid->ssid, ssid->ssid_len);
220 ssid->ssid, ssid->ssid_len);
241 if (ie == NULL && (ssid->proto & WPA_PROTO_WPA) &&
242 (ssid->pairwise_cipher & WPA_CIPHER_TKIP)) {
254 iftype = ssid->p2p_group ? WPA_IF_P2P_CLIENT : WPA_IF_STATION;
256 if (ccmp && !(ssid->pairwise_cipher & WPA_CIPHER_CCMP) &&
257 (ssid->pairwise_cipher & WPA_CIPHER_TKIP) &&
263 ssid->pairwise_cipher |= WPA_CIPHER_CCMP;
265 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
268 if (wpa2 && !(ssid->proto & WPA_PROTO_RSN) &&
269 (ssid->proto & WPA_PROTO_WPA) &&
274 ssid->proto |= WPA_PROTO_RSN;
276 ssid->proto = WPA_PROTO_RSN;
284 struct wpa_ssid *ssid, *next;
286 for (ssid = wpa_s->conf->ssid, next = ssid ? ssid->next : NULL; ssid;
287 ssid = next, next = ssid ? ssid->next : NULL) {
292 if (ssid == new_ssid)
295 if (ssid->bssid_set || new_ssid->bssid_set) {
296 if (ssid->bssid_set != new_ssid->bssid_set)
298 if (!ether_addr_equal(ssid->bssid, new_ssid->bssid))
302 /* compare SSID */
303 if (ssid->ssid_len == 0 || ssid->ssid_len != new_ssid->ssid_len)
306 if (ssid->ssid && new_ssid->ssid) {
307 if (os_memcmp(ssid->ssid, new_ssid->ssid,
308 ssid->ssid_len) != 0)
310 } else if (ssid->ssid || new_ssid->ssid)
314 if (ssid->auth_alg != new_ssid->auth_alg ||
315 ssid->key_mgmt != new_ssid->key_mgmt ||
316 (ssid->group_cipher != new_ssid->group_cipher &&
317 !(ssid->group_cipher & new_ssid->group_cipher &
327 if (ssid->wps_run && ssid->wps_run == new_ssid->wps_run &&
328 wpa_key_mgmt_wpa_psk(ssid->key_mgmt)) {
329 if (new_ssid->passphrase && ssid->passphrase &&
330 os_strcmp(new_ssid->passphrase, ssid->passphrase) !=
338 (!ssid->psk_set ||
339 os_memcmp(new_ssid->psk, ssid->psk, 32) != 0)) {
345 if ((new_ssid->passphrase && !ssid->passphrase) ||
346 (!new_ssid->passphrase && ssid->passphrase)) {
354 new_ssid->proto |= ssid->proto;
355 new_ssid->pairwise_cipher |= ssid->pairwise_cipher;
361 if (ssid->proto != new_ssid->proto ||
362 ssid->pairwise_cipher != new_ssid->pairwise_cipher)
367 wpa_printf(MSG_DEBUG, "Remove duplicate network %d", ssid->id);
368 wpas_notify_network_removed(wpa_s, ssid);
369 wpa_config_remove_network(wpa_s->conf, ssid->id);
378 struct wpa_ssid *ssid = wpa_s->current_ssid;
407 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", cred->ssid, cred->ssid_len);
442 if (ssid && (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
446 if (ssid->eap.identity &&
447 ssid->eap.identity_len == WSC_ID_REGISTRAR_LEN &&
448 os_memcmp(ssid->eap.identity, WSC_ID_REGISTRAR,
452 os_free(ssid->eap.identity);
453 ssid->eap.identity = NULL;
454 ssid->eap.identity_len = 0;
455 os_free(ssid->eap.phase1);
456 ssid->eap.phase1 = NULL;
457 os_free(ssid->eap.eap_methods);
458 ssid->eap.eap_methods = NULL;
459 if (!ssid->p2p_group) {
460 ssid->temporary = 0;
461 ssid->bssid_set = 0;
463 ssid->disabled_until.sec = 0;
464 ssid->disabled_until.usec = 0;
465 ssid->auth_failures = 0;
469 ssid = wpa_config_add_network(wpa_s->conf);
470 if (ssid == NULL)
480 ssid->p2p_group = wpa_s->current_ssid->p2p_group;
481 ssid->temporary = wpa_s->current_ssid->temporary;
483 wpas_notify_network_added(wpa_s, ssid);
486 wpa_config_set_network_defaults(ssid);
487 ssid->wps_run = wpa_s->wps_run;
489 os_free(ssid->ssid);
490 ssid->ssid = os_malloc(cred->ssid_len);
491 if (ssid->ssid) {
492 os_memcpy(ssid->ssid, cred->ssid, cred->ssid_len);
493 ssid->ssid_len = cred->ssid_len;
500 ssid->pairwise_cipher = WPA_CIPHER_TKIP | WPA_CIPHER_CCMP;
503 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
506 ssid->pairwise_cipher |= WPA_CIPHER_GCMP;
507 ssid->group_cipher |= WPA_CIPHER_GCMP;
511 ssid->pairwise_cipher |= WPA_CIPHER_GCMP_256;
512 ssid->group_cipher |= WPA_CIPHER_GCMP_256;
516 ssid->pairwise_cipher |= WPA_CIPHER_CCMP_256;
517 ssid->group_cipher |= WPA_CIPHER_CCMP_256;
524 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
525 ssid->key_mgmt = WPA_KEY_MGMT_NONE;
526 ssid->proto = 0;
533 ssid->id, ssid->id);
534 ssid->disabled = 1;
539 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
540 ssid->key_mgmt = WPA_KEY_MGMT_PSK;
541 ssid->proto = WPA_PROTO_WPA | WPA_PROTO_RSN;
544 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
545 ssid
548 if (ssid->p2p_group && is_p2p_6ghz_capable(wpa_s->global->p2p))
552 ssid->auth_alg = 0;
553 ssid->key_mgmt |= WPA_KEY_MGMT_SAE;
554 ssid->ieee80211w = MGMT_FRAME_PROTECTION_OPTIONAL;
556 ssid->proto = WPA_PROTO_RSN;
560 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK) {
562 if (hexstr2bin((const char *) cred->key, ssid->psk,
568 ssid->psk_set = 1;
569 ssid->export_keys = 1;
571 os_free(ssid->passphrase);
572 ssid->passphrase = os_malloc(cred->key_len + 1);
573 if (ssid->passphrase == NULL)
575 os_memcpy(ssid->passphrase, cred->key, cred->key_len);
576 ssid->passphrase[cred->key_len] = '\0';
577 wpa_config_update_psk(ssid);
578 ssid->export_keys = 1;
586 ssid->priority = wpa_s->conf->wps_priority;
588 wpas_wps_security_workaround(wpa_s, ssid, cred);
590 wpas_wps_remove_dup_network(wpa_s, ssid);
600 if (ssid->priority)
688 struct wpa_ssid *ssid;
693 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
694 if (ssid->disabled_for_connect && ssid->disabled) {
695 ssid->disabled_for_connect = 0;
696 ssid->disabled = 0;
697 wpas_notify_network_enabled_changed(wpa_s, ssid);
839 "uuid=%s ssid=%s auth_type=0x%04x encr_type=0x%04x "
841 uuid_str, wpa_ssid_txt(cred->ssid, cred->ssid_len),
943 enum wps_request_type wpas_wps_get_req_type(struct wpa_ssid *ssid)
945 if (eap_is_wps_pbc_enrollee(&ssid->eap) ||
946 eap_is_wps_pin_enrollee(&ssid->eap))
956 struct wpa_ssid *ssid, *remove_ssid = NULL, *prev_current;
970 ssid = wpa_s->conf->ssid;
971 while (ssid) {
972 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
973 if (ssid == wpa_s->current_ssid) {
978 id = ssid->id;
979 remove_ssid = ssid;
982 ssid = ssid->next;
1025 struct wpa_ssid *ssid;
1027 ssid = wpa_config_add_network(wpa_s->conf);
1028 if (ssid == NULL)
1030 wpas_notify_network_added(wpa_s, ssid);
1031 wpa_config_set_network_defaults(ssid);
1032 ssid->temporary = 1;
1033 if (wpa_config_set(ssid, "key_mgmt", "WPS", 0) < 0 ||
1034 wpa_config_set(ssid, "eap", "WSC", 0) < 0 ||
1035 wpa_config_set(ssid, "identity", registrar ?
1038 wpas_notify_network_removed(wpa_s, ssid);
1039 wpa_config_remove_network(wpa_s->conf, ssid->id);
1045 os_memcpy(ssid->go_p2p_dev_addr, dev_addr, ETH_ALEN);
1054 os_memcpy(ssid->bssid, bssid, ETH_ALEN);
1055 ssid->bssid_set = 1;
1058 * Note: With P2P, the SSID may change at the time the WPS
1060 * on the current SSID in the scan results.
1067 os_free(ssid->ssid);
1068 ssid->ssid = os_memdup(bss->ssid, bss->ssid_len);
1069 if (ssid->ssid == NULL)
1071 ssid->ssid_len = bss->ssid_len;
1072 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Picked SSID from "
1074 ssid->ssid, ssid->ssid_len);
1079 wpa_printf(MSG_DEBUG, "WPS: More than one SSID found "
1081 os_free(ssid->ssid);
1082 ssid->ssid = NULL;
1083 ssid->ssid_len = 0;
1088 return ssid;
1095 struct wpa_ssid *ssid;
1104 ssid = wpa_s->conf->ssid;
1105 while (ssid) {
1106 int was_disabled = ssid->disabled;
1107 ssid->disabled_for_connect = 0;
1115 ssid->disabled = ssid != selected;
1116 if (was_disabled != ssid->disabled) {
1117 if (ssid->disabled)
1118 ssid
1120 ssid);
1123 ssid = ssid->next;
1167 struct wpa_ssid *ssid;
1178 ssid = wpas_wps_add_network(wpa_s, 0, NULL, bssid);
1179 if (ssid == NULL)
1181 ssid->temporary = 1;
1182 ssid->p2p_group = p2p_group;
1189 ssid->pbss = 2;
1192 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1193 if (ssid->ssid) {
1194 ssid->ssid_len = wpa_s->go_params->ssid_len;
1195 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1196 ssid->ssid_len);
1199 ssid->pbss = 1;
1204 ssid->enable_edmg = 1;
1207 "SSID", ssid->ssid, ssid->ssid_len);
1216 if (wpa_config_set_quoted(ssid, "phase1", phase1) < 0)
1219 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1221 ssid->multi_ap_backhaul_sta = 1;
1222 ssid->multi_ap_profile = multi_ap_backhaul_sta;
1229 wpas_wps_reassoc(wpa_s, ssid, bssid, 0);
1240 struct wpa_ssid *ssid;
1255 ssid = wpas_wps_add_network(wpa_s, 0, dev_addr, bssid);
1256 if (ssid == NULL) {
1260 ssid->temporary = 1;
1261 ssid->p2p_group = p2p_group;
1268 ssid->pbss = 2;
1270 ssid->ssid = os_malloc(ssid_len);
1271 if (ssid->ssid) {
1272 os_memcpy(ssid->ssid, ssid_val, ssid_len);
1273 ssid->ssid_len = ssid_len;
1286 os_free(ssid->ssid);
1287 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1288 if (ssid->ssid) {
1289 ssid->ssid_len = wpa_s->go_params->ssid_len;
1290 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1291 ssid->ssid_len);
1294 ssid->pbss = 1;
1299 ssid->enable_edmg = 1;
1302 "SSID", ssid->ssid, ssid->ssid_len);
1320 if (wpa_config_set(ssid, "phase1", val, 0) < 0) {
1329 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1333 wpas_wps_reassoc(wpa_s, ssid, bssid, freq);
1405 struct wpa_ssid *ssid;
1420 ssid = wpas_wps_add_network(wpa_s, 1, NULL, bssid);
1421 if (ssid == NULL)
1423 ssid->temporary = 1;
1442 if (wpa_config_set(ssid, "phase1", val, 0) < 0)
1445 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1448 wpas_wps_reassoc(wpa_s, ssid, bssid, 0);
1722 struct wpa_ssid *ssid, struct wpa_bss *bss)
1726 if (!(ssid->key_mgmt & WPA_KEY_MGMT_WPS))
1730 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1750 if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1796 struct wpa_ssid *ssid,
1802 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1805 /* allow wildcard SSID for WPS PBC */
1808 } else if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1813 /* allow wildcard SSID for WPS PIN */
1818 if (!ret && ssid->bssid_set &&
1819 ether_addr_equal(ssid->bssid, bss->bssid)) {
1820 /* allow wildcard SSID due to hardcoded BSSID match */
1854 struct wpa_ssid *ssid,
1861 if (!is_zero_ether_addr(ssid->bssid) &&
1862 !ether_addr_equal(ap->bssid, ssid->bssid)) {
1883 struct wpa_bss *selected, struct wpa_ssid *ssid)
1891 if (!eap_is_wps_pbc_enrollee(&ssid->eap))
1897 if (!is_zero_ether_addr(ssid->bssid))
1900 MAC2STR(ssid->bssid));
1918 if (wpas_wps_is_pbc_overlap(ap, selected, ssid,
1975 struct wpa_ssid *ssid;
1977 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1978 if ((ssid->key_mgmt & WPA_KEY_MGMT_WPS) && !ssid->disabled)
2084 static int wpas_wps_network_to_cred(struct wpa_ssid *ssid,
2088 if (ssid->ssid_len > SSID_MAX_LEN)
2090 os_memcpy(cred->ssid, ssid->ssid, ssid->ssid_len);
2091 cred->ssid_len = ssid->ssid_len;
2092 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK) {
2093 cred->auth_type = (ssid->proto & WPA_PROTO_RSN) ?
2095 if (ssid->pairwise_cipher & WPA_CIPHER_CCMP)
2099 if (ssid->passphrase) {
2100 cred->key_len = os_strlen(ssid->passphrase);
2103 os_memcpy(cred->key, ssid->passphrase, cred->key_len);
2104 } else if (ssid->psk_set) {
2106 os_memcpy(cred->key, ssid->psk, 32);
2123 struct wpa_ssid *ssid;
2133 ssid = wpa_config_get_network(wpa_s->conf, id);
2134 if (ssid == NULL || ssid->ssid == NULL)
2137 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
2165 if ((len & 1) || len > 2 * sizeof(cred.ssid) ||
2166 hexstr2bin(settings->ssid_hex, cred.ssid, len / 2))
2329 struct wpa_ssid *ssid)
2334 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
2360 struct wpa_ssid *ssid;
2366 ssid = wpa_config_get_network(wpa_s->conf, id);
2367 if (ssid == NULL)
2369 return wpas_wps_network_config_token(wpa_s, ndef, ssid);
2400 const u8 *ssid, size_t ssid_len, int freq)
2455 ssid, ssid_len, freq);
2736 if (attr.ssid == NULL) {
2737 wpa_printf(MSG_DEBUG, "WPS: No SSID included in Wi-Fi Handover "
2743 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", attr.ssid, attr.ssid_len);
2797 attr.ssid, attr.ssid_len, freq);