Lines Matching full:ssid
118 struct wpa_ssid *ssid = NULL;
139 bss = wpa_supplicant_pick_network(wpa_s, &ssid);
183 struct wpa_ssid *ssid,
203 if (ssid->ssid == NULL)
205 bss = wpa_bss_get(wpa_s, cred->mac_addr, ssid->ssid, ssid->ssid_len);
226 if (ie == NULL && (ssid->proto & WPA_PROTO_WPA) &&
227 (ssid->pairwise_cipher & WPA_CIPHER_TKIP)) {
239 if (ccmp && !(ssid->pairwise_cipher & WPA_CIPHER_CCMP) &&
240 (ssid->pairwise_cipher & WPA_CIPHER_TKIP) &&
245 ssid->pairwise_cipher |= WPA_CIPHER_CCMP;
247 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
250 if (wpa2 && !(ssid->proto & WPA_PROTO_RSN) &&
251 (ssid->proto & WPA_PROTO_WPA) &&
256 ssid->proto |= WPA_PROTO_RSN;
258 ssid->proto = WPA_PROTO_RSN;
266 struct wpa_ssid *ssid, *next;
268 for (ssid = wpa_s->conf->ssid, next = ssid ? ssid->next : NULL; ssid;
269 ssid = next, next = ssid ? ssid->next : NULL) {
274 if (ssid == new_ssid)
277 if (ssid->bssid_set || new_ssid->bssid_set) {
278 if (ssid->bssid_set != new_ssid->bssid_set)
280 if (os_memcmp(ssid->bssid, new_ssid->bssid, ETH_ALEN) !=
285 /* compare SSID */
286 if (ssid->ssid_len == 0 || ssid->ssid_len != new_ssid->ssid_len)
289 if (ssid->ssid && new_ssid->ssid) {
290 if (os_memcmp(ssid->ssid, new_ssid->ssid,
291 ssid->ssid_len) != 0)
293 } else if (ssid->ssid || new_ssid->ssid)
297 if (ssid->auth_alg != new_ssid->auth_alg ||
298 ssid->key_mgmt != new_ssid->key_mgmt ||
299 (ssid->group_cipher != new_ssid->group_cipher &&
300 !(ssid->group_cipher & new_ssid->group_cipher &
310 if (ssid->wps_run && ssid->wps_run == new_ssid->wps_run &&
311 wpa_key_mgmt_wpa_psk(ssid->key_mgmt)) {
312 if (new_ssid->passphrase && ssid->passphrase &&
313 os_strcmp(new_ssid->passphrase, ssid->passphrase) !=
321 (!ssid->psk_set ||
322 os_memcmp(new_ssid->psk, ssid->psk, 32) != 0)) {
328 if ((new_ssid->passphrase && !ssid->passphrase) ||
329 (!new_ssid->passphrase && ssid->passphrase)) {
337 new_ssid->proto |= ssid->proto;
338 new_ssid->pairwise_cipher |= ssid->pairwise_cipher;
344 if (ssid->proto != new_ssid->proto ||
345 ssid->pairwise_cipher != new_ssid->pairwise_cipher)
350 wpa_printf(MSG_DEBUG, "Remove duplicate network %d", ssid->id);
351 wpas_notify_network_removed(wpa_s, ssid);
352 if (wpa_s->current_ssid == ssid)
354 wpa_config_remove_network(wpa_s->conf, ssid->id);
363 struct wpa_ssid *ssid = wpa_s->current_ssid;
391 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", cred->ssid, cred->ssid_len);
426 if (ssid && (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
430 if (ssid->eap.identity &&
431 ssid->eap.identity_len == WSC_ID_REGISTRAR_LEN &&
432 os_memcmp(ssid->eap.identity, WSC_ID_REGISTRAR,
436 os_free(ssid->eap.identity);
437 ssid->eap.identity = NULL;
438 ssid->eap.identity_len = 0;
439 os_free(ssid->eap.phase1);
440 ssid->eap.phase1 = NULL;
441 os_free(ssid->eap.eap_methods);
442 ssid->eap.eap_methods = NULL;
443 if (!ssid->p2p_group) {
444 ssid->temporary = 0;
445 ssid->bssid_set = 0;
447 ssid->disabled_until.sec = 0;
448 ssid->disabled_until.usec = 0;
449 ssid->auth_failures = 0;
453 ssid = wpa_config_add_network(wpa_s->conf);
454 if (ssid == NULL)
464 ssid->p2p_group = wpa_s->current_ssid->p2p_group;
465 ssid->temporary = wpa_s->current_ssid->temporary;
467 wpas_notify_network_added(wpa_s, ssid);
470 wpa_config_set_network_defaults(ssid);
471 ssid->wps_run = wpa_s->wps_run;
473 os_free(ssid->ssid);
474 ssid->ssid = os_malloc(cred->ssid_len);
475 if (ssid->ssid) {
476 os_memcpy(ssid->ssid, cred->ssid, cred->ssid_len);
477 ssid->ssid_len = cred->ssid_len;
484 ssid->pairwise_cipher = WPA_CIPHER_TKIP;
487 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
490 ssid->pairwise_cipher |= WPA_CIPHER_GCMP;
491 ssid->group_cipher |= WPA_CIPHER_GCMP;
498 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
499 ssid->key_mgmt = WPA_KEY_MGMT_NONE;
500 ssid->proto = 0;
507 ssid->id, ssid->id);
508 ssid->disabled = 1;
513 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
514 ssid->key_mgmt = WPA_KEY_MGMT_PSK;
515 ssid->proto = WPA_PROTO_WPA;
518 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
519 ssid->key_mgmt = WPA_KEY_MGMT_PSK;
520 ssid->proto = WPA_PROTO_RSN;
524 if (ssid->key_mgmt == WPA_KEY_MGMT_PSK) {
526 if (hexstr2bin((const char *) cred->key, ssid->psk,
532 ssid->psk_set = 1;
533 ssid->export_keys = 1;
535 os_free(ssid->passphrase);
536 ssid->passphrase = os_malloc(cred->key_len + 1);
537 if (ssid->passphrase == NULL)
539 os_memcpy(ssid->passphrase, cred->key, cred->key_len);
540 ssid->passphrase[cred->key_len] = '\0';
541 wpa_config_update_psk(ssid);
542 ssid->export_keys = 1;
550 ssid->priority = wpa_s->conf->wps_priority;
552 ssid, cred);
554 wpas_wps_remove_dup_network(wpa_s, ssid);
564 if (ssid->priority)
652 struct wpa_ssid *ssid;
657 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
658 if (ssid->disabled_for_connect && ssid->disabled) {
659 ssid->disabled_for_connect = 0;
660 ssid->disabled = 0;
661 wpas_notify_network_enabled_changed(wpa_s, ssid);
796 "uuid=%s ssid=%s auth_type=0x%04x encr_type=0x%04x "
798 uuid_str, wpa_ssid_txt(cred->ssid, cred->ssid_len),
900 enum wps_request_type wpas_wps_get_req_type(struct wpa_ssid *ssid)
902 if (eap_is_wps_pbc_enrollee(&ssid->eap) ||
903 eap_is_wps_pin_enrollee(&ssid->eap))
913 struct wpa_ssid *ssid, *remove_ssid = NULL, *prev_current;
927 ssid = wpa_s->conf->ssid;
928 while (ssid) {
929 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
930 if (ssid == wpa_s->current_ssid) {
935 id = ssid->id;
936 remove_ssid = ssid;
939 ssid = ssid->next;
968 struct wpa_ssid *ssid;
970 ssid = wpa_config_add_network(wpa_s->conf);
971 if (ssid == NULL)
973 wpas_notify_network_added(wpa_s, ssid);
974 wpa_config_set_network_defaults(ssid);
975 ssid->temporary = 1;
976 if (wpa_config_set(ssid, "key_mgmt", "WPS", 0) < 0 ||
977 wpa_config_set(ssid, "eap", "WSC", 0) < 0 ||
978 wpa_config_set(ssid, "identity", registrar ?
981 wpas_notify_network_removed(wpa_s, ssid);
982 wpa_config_remove_network(wpa_s->conf, ssid->id);
988 os_memcpy(ssid->go_p2p_dev_addr, dev_addr, ETH_ALEN);
997 os_memcpy(ssid->bssid, bssid, ETH_ALEN);
998 ssid->bssid_set = 1;
1001 * Note: With P2P, the SSID may change at the time the WPS
1003 * on the current SSID in the scan results.
1010 os_free(ssid->ssid);
1011 ssid->ssid = os_malloc(bss->ssid_len);
1012 if (ssid->ssid == NULL)
1014 os_memcpy(ssid->ssid, bss->ssid, bss->ssid_len);
1015 ssid->ssid_len = bss->ssid_len;
1016 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Picked SSID from "
1018 ssid->ssid, ssid->ssid_len);
1023 wpa_printf(MSG_DEBUG, "WPS: More than one SSID found "
1025 os_free(ssid->ssid);
1026 ssid->ssid = NULL;
1027 ssid->ssid_len = 0;
1032 return ssid;
1039 struct wpa_ssid *ssid;
1048 ssid = wpa_s->conf->ssid;
1049 while (ssid) {
1050 int was_disabled = ssid->disabled;
1051 ssid->disabled_for_connect = 0;
1059 ssid->disabled = ssid != selected;
1060 if (was_disabled != ssid->disabled) {
1061 if (ssid->disabled)
1062 ssid->disabled_for_connect = 1;
1064 ssid);
1067 ssid = ssid->next;
1111 struct wpa_ssid *ssid;
1121 ssid = wpas_wps_add_network(wpa_s, 0, NULL, bssid);
1122 if (ssid == NULL)
1124 ssid->temporary = 1;
1125 ssid->p2p_group = p2p_group;
1128 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1129 if (ssid->ssid) {
1130 ssid->ssid_len = wpa_s->go_params->ssid_len;
1131 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1132 ssid->ssid_len);
1134 "SSID", ssid->ssid, ssid->ssid_len);
1138 if (wpa_config_set(ssid, "phase1", "\"pbc=1\"", 0) < 0)
1141 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1144 wpas_wps_reassoc(wpa_s, ssid, bssid, 0);
1155 struct wpa_ssid *ssid;
1170 ssid = wpas_wps_add_network(wpa_s, 0, dev_addr, bssid);
1171 if (ssid == NULL) {
1175 ssid->temporary = 1;
1176 ssid->p2p_group = p2p_group;
1178 ssid->ssid = os_malloc(ssid_len);
1179 if (ssid->ssid) {
1180 os_memcpy(ssid->ssid, ssid_val, ssid_len);
1181 ssid->ssid_len = ssid_len;
1194 os_free(ssid->ssid);
1195 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1196 if (ssid->ssid) {
1197 ssid->ssid_len = wpa_s->go_params->ssid_len;
1198 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1199 ssid->ssid_len);
1201 "SSID", ssid->ssid, ssid->ssid_len);
1216 if (wpa_config_set(ssid, "phase1", val, 0) < 0) {
1221 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1225 wpas_wps_reassoc(wpa_s, ssid, bssid, freq);
1278 struct wpa_ssid *ssid;
1293 ssid = wpas_wps_add_network(wpa_s, 1, NULL, bssid);
1294 if (ssid == NULL)
1296 ssid->temporary = 1;
1315 if (wpa_config_set(ssid, "phase1", val, 0) < 0)
1318 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1321 wpas_wps_reassoc(wpa_s, ssid, bssid, 0);
1587 struct wpa_ssid *ssid, struct wpa_bss *bss)
1591 if (!(ssid->key_mgmt & WPA_KEY_MGMT_WPS))
1595 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1615 if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1661 struct wpa_ssid *ssid,
1667 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1670 /* allow wildcard SSID for WPS PBC */
1673 } else if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1678 /* allow wildcard SSID for WPS PIN */
1683 if (!ret && ssid->bssid_set &&
1684 os_memcmp(ssid->bssid, bss->bssid, ETH_ALEN) == 0) {
1685 /* allow wildcard SSID due to hardcoded BSSID match */
1718 struct wpa_bss *selected, struct wpa_ssid *ssid)
1725 ssid->eap))
1811 struct wpa_ssid *ssid;
1813 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1814 if ((ssid->key_mgmt & WPA_KEY_MGMT_WPS) && !ssid->disabled)
1920 static int wpas_wps_network_to_cred(struct wpa_ssid *ssid,
1924 if (ssid->ssid_len > SSID_MAX_LEN)
1926 os_memcpy(cred->ssid, ssid->ssid, ssid->ssid_len);
1927 cred->ssid_len = ssid->ssid_len;
1928 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK) {
1929 cred->auth_type = (ssid->proto & WPA_PROTO_RSN) ?
1931 if (ssid->pairwise_cipher & WPA_CIPHER_CCMP)
1935 if (ssid->passphrase) {
1936 cred->key_len = os_strlen(ssid->passphrase);
1939 os_memcpy(cred->key, ssid->passphrase, cred->key_len);
1940 } else if (ssid->psk_set) {
1942 os_memcpy(cred->key, ssid->psk, 32);
1959 struct wpa_ssid *ssid;
1969 ssid = wpa_config_get_network(wpa_s->conf, id);
1970 if (ssid == NULL || ssid->ssid == NULL)
1973 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
2001 if ((len & 1) || len > 2 * sizeof(cred.ssid) ||
2002 hexstr2bin(settings->ssid_hex, cred.ssid, len / 2))
2155 struct wpa_ssid *ssid)
2160 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
2186 struct wpa_ssid *ssid;
2192 ssid = wpa_config_get_network(wpa_s->conf, id);
2193 if (ssid == NULL)
2195 return wpas_wps_network_config_token(wpa_s, ndef, ssid);
2226 const u8 *ssid, size_t ssid_len, int freq)
2281 ssid, ssid_len, freq);
2562 if (attr.ssid == NULL) {
2563 wpa_printf(MSG_DEBUG, "WPS: No SSID included in Wi-Fi Handover "
2569 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", attr.ssid, attr.ssid_len);
2623 attr.ssid, attr.ssid_len, freq);