Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching defs:ssid

88 		struct wpa_ssid *ssid = NULL;
108 bss = wpa_supplicant_pick_network(wpa_s, &ssid);
142 struct wpa_ssid *ssid,
162 if (ssid->ssid == NULL)
164 bss = wpa_bss_get(wpa_s, cred->mac_addr, ssid->ssid, ssid->ssid_len);
185 if (ie == NULL && (ssid->proto & WPA_PROTO_WPA) &&
186 (ssid->pairwise_cipher & WPA_CIPHER_TKIP)) {
198 if (ccmp && !(ssid->pairwise_cipher & WPA_CIPHER_CCMP) &&
199 (ssid->pairwise_cipher & WPA_CIPHER_TKIP) &&
204 ssid->pairwise_cipher |= WPA_CIPHER_CCMP;
206 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
209 if (wpa2 && !(ssid->proto & WPA_PROTO_RSN) &&
210 (ssid->proto & WPA_PROTO_WPA) &&
215 ssid->proto |= WPA_PROTO_RSN;
217 ssid->proto = WPA_PROTO_RSN;
225 struct wpa_ssid *ssid, *next;
227 for (ssid = wpa_s->conf->ssid, next = ssid ? ssid->next : NULL; ssid;
228 ssid = next, next = ssid ? ssid->next : NULL) {
233 if (ssid == new_ssid)
236 if (ssid->bssid_set || new_ssid->bssid_set) {
237 if (ssid->bssid_set != new_ssid->bssid_set)
239 if (os_memcmp(ssid->bssid, new_ssid->bssid, ETH_ALEN) !=
244 /* compare SSID */
245 if (ssid->ssid_len == 0 || ssid->ssid_len != new_ssid->ssid_len)
248 if (ssid->ssid && new_ssid->ssid) {
249 if (os_memcmp(ssid->ssid, new_ssid->ssid,
250 ssid->ssid_len) != 0)
252 } else if (ssid->ssid || new_ssid->ssid)
256 if (ssid->auth_alg != new_ssid->auth_alg ||
257 ssid->key_mgmt != new_ssid->key_mgmt ||
258 ssid->proto != new_ssid->proto ||
259 ssid->pairwise_cipher != new_ssid->pairwise_cipher ||
260 ssid->group_cipher != new_ssid->group_cipher)
263 if (ssid->passphrase && new_ssid->passphrase) {
264 if (os_strlen(ssid->passphrase) !=
267 if (os_strcmp(ssid->passphrase, new_ssid->passphrase) !=
270 } else if (ssid->passphrase || new_ssid->passphrase)
273 if ((ssid->psk_set || new_ssid->psk_set) &&
274 os_memcmp(ssid->psk, new_ssid->psk, sizeof(ssid->psk)) != 0)
277 if (ssid->auth_alg == WPA_ALG_WEP) {
278 if (ssid->wep_tx_keyidx != new_ssid->wep_tx_keyidx)
280 if (os_memcmp(ssid->wep_key, new_ssid->wep_key,
281 sizeof(ssid->wep_key)))
283 if (os_memcmp(ssid->wep_key_len, new_ssid->wep_key_len,
284 sizeof(ssid->wep_key_len)))
289 wpa_printf(MSG_DEBUG, "Remove duplicate network %d", ssid->id);
290 wpas_notify_network_removed(wpa_s, ssid);
291 wpa_config_remove_network(wpa_s->conf, ssid->id);
300 struct wpa_ssid *ssid = wpa_s->current_ssid;
329 wpa_hexdump_ascii(MSG_DEBUG, "WPS: SSID", cred->ssid, cred->ssid_len);
365 if (ssid && (ssid->key_mgmt & WPA_KEY_MGMT_WPS)) {
369 if (ssid->eap.identity &&
370 ssid->eap.identity_len == WSC_ID_REGISTRAR_LEN &&
371 os_memcmp(ssid->eap.identity, WSC_ID_REGISTRAR,
375 os_free(ssid->eap.identity);
376 ssid->eap.identity = NULL;
377 ssid->eap.identity_len = 0;
378 os_free(ssid->eap.phase1);
379 ssid->eap.phase1 = NULL;
380 os_free(ssid->eap.eap_methods);
381 ssid->eap.eap_methods = NULL;
382 if (!ssid->p2p_group) {
383 ssid->temporary = 0;
384 ssid->bssid_set = 0;
386 ssid->disabled_until.sec = 0;
387 ssid->disabled_until.usec = 0;
388 ssid->auth_failures = 0;
392 ssid = wpa_config_add_network(wpa_s->conf);
393 if (ssid == NULL)
395 wpas_notify_network_added(wpa_s, ssid);
398 wpa_config_set_network_defaults(ssid);
400 os_free(ssid->ssid);
401 ssid->ssid = os_malloc(cred->ssid_len);
402 if (ssid->ssid) {
403 os_memcpy(ssid->ssid, cred->ssid, cred->ssid_len);
404 ssid->ssid_len = cred->ssid_len;
428 ssid->wep_key[key_idx],
434 ssid->wep_key_len[key_idx] = cred->key_len / 2;
436 os_memcpy(ssid->wep_key[key_idx], cred->key,
438 ssid->wep_key_len[key_idx] = cred->key_len;
440 ssid->wep_tx_keyidx = key_idx;
443 ssid->pairwise_cipher = WPA_CIPHER_TKIP;
446 ssid->pairwise_cipher = WPA_CIPHER_CCMP;
452 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
453 ssid->key_mgmt = WPA_KEY_MGMT_NONE;
454 ssid->proto = 0;
461 ssid->id, ssid->id);
462 ssid->disabled = 1;
467 ssid->auth_alg = WPA_AUTH_ALG_SHARED;
468 ssid->key_mgmt = WPA_KEY_MGMT_NONE;
469 ssid->proto = 0;
472 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
473 ssid->key_mgmt = WPA_KEY_MGMT_PSK;
474 ssid->proto = WPA_PROTO_WPA;
477 ssid->auth_alg = WPA_AUTH_ALG_OPEN;
478 ssid->key_mgmt = WPA_KEY_MGMT_PSK;
479 ssid->proto = WPA_PROTO_RSN;
483 if (ssid->key_mgmt == WPA_KEY_MGMT_PSK) {
485 if (hexstr2bin((const char *) cred->key, ssid->psk,
491 ssid->psk_set = 1;
492 ssid->export_keys = 1;
494 os_free(ssid->passphrase);
495 ssid->passphrase = os_malloc(cred->key_len + 1);
496 if (ssid->passphrase == NULL)
498 os_memcpy(ssid->passphrase, cred->key, cred->key_len);
499 ssid->passphrase[cred->key_len] = '\0';
500 wpa_config_update_psk(ssid);
501 ssid->export_keys = 1;
510 wpas_wps_security_workaround(wpa_s, ssid, cred);
515 wpas_wps_remove_dup_network(wpa_s, ssid);
621 struct wpa_ssid *ssid;
626 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
627 if (ssid->disabled_for_connect && ssid->disabled) {
628 ssid->disabled_for_connect = 0;
629 ssid->disabled = 0;
630 wpas_notify_network_enabled_changed(wpa_s, ssid);
767 "uuid=%s ssid=%s auth_type=0x%04x encr_type=0x%04x "
769 uuid_str, wpa_ssid_txt(cred->ssid, cred->ssid_len),
870 enum wps_request_type wpas_wps_get_req_type(struct wpa_ssid *ssid)
872 if (eap_is_wps_pbc_enrollee(&ssid->eap) ||
873 eap_is_wps_pin_enrollee(&ssid->eap))
883 struct wpa_ssid *ssid, *remove_ssid = NULL, *prev_current;
893 ssid = wpa_s->conf->ssid;
894 while (ssid) {
895 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS) {
896 if (ssid == wpa_s->current_ssid) {
900 id = ssid->id;
901 remove_ssid = ssid;
904 ssid = ssid->next;
932 struct wpa_ssid *ssid;
934 ssid = wpa_config_add_network(wpa_s->conf);
935 if (ssid == NULL)
937 wpas_notify_network_added(wpa_s, ssid);
938 wpa_config_set_network_defaults(ssid);
939 ssid->temporary = 1;
940 if (wpa_config_set(ssid, "key_mgmt", "WPS", 0) < 0 ||
941 wpa_config_set(ssid, "eap", "WSC", 0) < 0 ||
942 wpa_config_set(ssid, "identity", registrar ?
945 wpas_notify_network_removed(wpa_s, ssid);
946 wpa_config_remove_network(wpa_s->conf, ssid->id);
956 os_memcpy(ssid->bssid, bssid, ETH_ALEN);
957 ssid->bssid_set = 1;
960 * Note: With P2P, the SSID may change at the time the WPS
962 * on the current SSID in the scan results.
969 os_free(ssid->ssid);
970 ssid->ssid = os_malloc(bss->ssid_len);
971 if (ssid->ssid == NULL)
973 os_memcpy(ssid->ssid, bss->ssid, bss->ssid_len);
974 ssid->ssid_len = bss->ssid_len;
975 wpa_hexdump_ascii(MSG_DEBUG, "WPS: Picked SSID from "
977 ssid->ssid, ssid->ssid_len);
982 wpa_printf(MSG_DEBUG, "WPS: More than one SSID found "
984 os_free(ssid->ssid);
985 ssid->ssid = NULL;
986 ssid->ssid_len = 0;
991 return ssid;
998 struct wpa_ssid *ssid;
1005 ssid = wpa_s->conf->ssid;
1006 while (ssid) {
1007 int was_disabled = ssid->disabled;
1008 ssid->disabled_for_connect = 0;
1016 ssid->disabled = ssid != selected;
1017 if (was_disabled != ssid->disabled) {
1018 if (ssid->disabled)
1019 ssid->disabled_for_connect = 1;
1021 ssid);
1024 ssid = ssid->next;
1059 struct wpa_ssid *ssid;
1061 ssid = wpas_wps_add_network(wpa_s, 0, bssid);
1062 if (ssid == NULL)
1064 ssid->temporary = 1;
1065 ssid->p2p_group = p2p_group;
1068 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1069 if (ssid->ssid) {
1070 ssid->ssid_len = wpa_s->go_params->ssid_len;
1071 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1072 ssid->ssid_len);
1074 "SSID", ssid->ssid, ssid->ssid_len);
1078 if (wpa_config_set(ssid, "phase1", "\"pbc=1\"", 0) < 0)
1081 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1084 wpas_wps_reassoc(wpa_s, ssid, bssid);
1092 struct wpa_ssid *ssid;
1097 ssid = wpas_wps_add_network(wpa_s, 0, bssid);
1098 if (ssid == NULL)
1100 ssid->temporary = 1;
1101 ssid->p2p_group = p2p_group;
1104 ssid->ssid = os_zalloc(wpa_s->go_params->ssid_len + 1);
1105 if (ssid->ssid) {
1106 ssid->ssid_len = wpa_s->go_params->ssid_len;
1107 os_memcpy(ssid->ssid, wpa_s->go_params->ssid,
1108 ssid->ssid_len);
1110 "SSID", ssid->ssid, ssid->ssid_len);
1122 if (wpa_config_set(ssid, "phase1", val, 0) < 0)
1125 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1129 wpas_wps_reassoc(wpa_s, ssid, bssid);
1167 struct wpa_ssid *ssid;
1175 ssid = wpas_wps_add_network(wpa_s, 1, bssid);
1176 if (ssid == NULL)
1178 ssid->temporary = 1;
1197 if (wpa_config_set(ssid, "phase1", val, 0) < 0)
1200 ssid->eap.fragment_size = wpa_s->wps_fragment_size;
1203 wpas_wps_reassoc(wpa_s, ssid, bssid);
1447 struct wpa_ssid *ssid, struct wpa_bss *bss)
1451 if (!(ssid->key_mgmt & WPA_KEY_MGMT_WPS))
1455 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1475 if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1515 struct wpa_ssid *ssid,
1521 if (eap_is_wps_pbc_enrollee(&ssid->eap)) {
1524 /* allow wildcard SSID for WPS PBC */
1527 } else if (eap_is_wps_pin_enrollee(&ssid->eap)) {
1532 /* allow wildcard SSID for WPS PIN */
1537 if (!ret && ssid->bssid_set &&
1538 os_memcmp(ssid->bssid, bss->bssid, ETH_ALEN) == 0) {
1539 /* allow wildcard SSID due to hardcoded BSSID match */
1572 struct wpa_bss *selected, struct wpa_ssid *ssid)
1579 if (!eap_is_wps_pbc_enrollee(&ssid->eap))
1673 struct wpa_ssid *ssid;
1675 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1676 if ((ssid->key_mgmt & WPA_KEY_MGMT_WPS) && !ssid->disabled)
1783 static int wpas_wps_network_to_cred(struct wpa_ssid *ssid,
1787 if (ssid->ssid_len > 32)
1789 os_memcpy(cred->ssid, ssid->ssid, ssid->ssid_len);
1790 cred->ssid_len = ssid->ssid_len;
1791 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK) {
1792 cred->auth_type = (ssid->proto & WPA_PROTO_RSN) ?
1794 if (ssid->pairwise_cipher & WPA_CIPHER_CCMP)
1798 if (ssid->passphrase) {
1799 cred->key_len = os_strlen(ssid->passphrase);
1802 os_memcpy(cred->key, ssid->passphrase, cred->key_len);
1803 } else if (ssid->psk_set) {
1805 os_memcpy(cred->key, ssid->psk, 32);
1822 struct wpa_ssid *ssid;
1831 ssid = wpa_config_get_network(wpa_s->conf, id);
1832 if (ssid == NULL || ssid->ssid == NULL)
1835 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
1861 if ((len & 1) || len > 2 * sizeof(cred.ssid) ||
1862 hexstr2bin(settings->ssid_hex, cred.ssid, len / 2))
1957 struct wpa_ssid *ssid;
1959 for (ssid = wpa_s->conf->ssid; ssid; ssid = ssid->next) {
1960 if (!ssid->disabled && ssid->key_mgmt == WPA_KEY_MGMT_WPS)
2026 struct wpa_ssid *ssid)
2031 if (wpas_wps_network_to_cred(ssid, &cred) < 0)
2057 struct wpa_ssid *ssid;
2063 ssid = wpa_config_get_network(wpa_s->conf, id);
2064 if (ssid == NULL)
2066 return wpas_wps_network_config_token(wpa_s, ndef, ssid);