Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching refs:ssid

34 	int (*parser)(const struct parse_data *data, struct wpa_ssid *ssid,
40 char * (*writer)(const struct parse_data *data, struct wpa_ssid *ssid);
57 struct wpa_ssid *ssid,
104 dst = (char **) (((u8 *) ssid) + (long) data->param1);
105 dst_len = (size_t *) (((u8 *) ssid) + (long) data->param2);
158 struct wpa_ssid *ssid)
163 src = (char **) (((u8 *) ssid) + (long) data->param1);
168 len = *((size_t *) (((u8 *) ssid) + (long) data->param2));
178 struct wpa_ssid *ssid,
183 dst = (int *) (((u8 *) ssid) + (long) data->param1);
209 struct wpa_ssid *ssid)
214 src = (int *) (((u8 *) ssid) + (long) data->param1);
231 struct wpa_ssid *ssid, int line,
236 ssid->bssid_set = 0;
240 if (hwaddr_aton(value, ssid->bssid)) {
245 ssid->bssid_set = 1;
246 wpa_hexdump(MSG_MSGDUMP, "BSSID", ssid->bssid, ETH_ALEN);
253 struct wpa_ssid *ssid)
258 if (!ssid->bssid_set)
264 res = os_snprintf(value, 20, MACSTR, MAC2STR(ssid->bssid));
276 struct wpa_ssid *ssid, int line,
281 os_free(ssid->passphrase);
282 ssid->passphrase = NULL;
283 ssid->psk_set = 0;
284 os_free(ssid->ext_psk);
285 ssid->ext_psk = os_strdup(value + 4);
286 if (ssid->ext_psk == NULL)
289 ssid->ext_psk);
313 if (ssid->passphrase && os_strlen(ssid->passphrase) == len &&
314 os_memcmp(ssid->passphrase, value, len) == 0)
316 ssid->psk_set = 0;
317 os_free(ssid->passphrase);
318 ssid->passphrase = os_malloc(len + 1);
319 if (ssid->passphrase == NULL)
321 os_memcpy(ssid->passphrase, value, len);
322 ssid->passphrase[len] = '\0';
331 if (hexstr2bin(value, ssid->psk, PMK_LEN) ||
338 os_free(ssid->passphrase);
339 ssid->passphrase = NULL;
341 ssid->psk_set = 1;
342 wpa_hexdump_key(MSG_MSGDUMP, "PSK", ssid->psk, PMK_LEN);
349 struct wpa_ssid *ssid)
352 if (ssid->ext_psk) {
353 size_t len = 4 + os_strlen(ssid->ext_psk) + 1;
357 os_snprintf(buf, len, "ext:%s", ssid->ext_psk);
362 if (ssid->passphrase)
364 (const u8 *) ssid->passphrase,
365 os_strlen(ssid->passphrase));
367 if (ssid->psk_set)
368 return wpa_config_write_string_hex(ssid->psk, PMK_LEN);
376 struct wpa_ssid *ssid, int line,
421 ssid->proto = val;
428 struct wpa_ssid *ssid)
438 if (ssid->proto & WPA_PROTO_WPA) {
446 if (ssid->proto & WPA_PROTO_RSN) {
460 struct wpa_ssid *ssid, int line,
526 ssid->key_mgmt = val;
533 struct wpa_ssid *ssid)
543 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK) {
553 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X) {
563 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
573 if (ssid->key_mgmt & WPA_KEY_MGMT_NONE) {
583 if (ssid->key_mgmt & WPA_KEY_MGMT_WPA_NONE) {
594 if (ssid->key_mgmt & WPA_KEY_MGMT_FT_PSK)
598 if (ssid->key_mgmt & WPA_KEY_MGMT_FT_IEEE8021X)
604 if (ssid->key_mgmt & WPA_KEY_MGMT_PSK_SHA256)
608 if (ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_SHA256)
614 if (ssid->key_mgmt & WPA_KEY_MGMT_WPS)
755 struct wpa_ssid *ssid, int line,
770 ssid->pairwise_cipher = val;
777 struct wpa_ssid *ssid)
779 return wpa_config_write_cipher(ssid->pairwise_cipher);
785 struct wpa_ssid *ssid, int line,
800 ssid->group_cipher = val;
807 struct wpa_ssid *ssid)
809 return wpa_config_write_cipher(ssid->group_cipher);
815 struct wpa_ssid *ssid, int line,
861 ssid->auth_alg = val;
868 struct wpa_ssid *ssid)
878 if (ssid->auth_alg & WPA_AUTH_ALG_OPEN) {
888 if (ssid->auth_alg & WPA_AUTH_ALG_SHARED) {
898 if (ssid->auth_alg & WPA_AUTH_ALG_LEAP) {
914 struct wpa_ssid *ssid, int line,
957 struct wpa_ssid *ssid, int line,
962 freqs = wpa_config_parse_freqs(data, ssid, line, value);
965 os_free(ssid->scan_freq);
966 ssid->scan_freq = freqs;
973 struct wpa_ssid *ssid, int line,
978 freqs = wpa_config_parse_freqs(data, ssid, line, value);
981 os_free(ssid->freq_list);
982 ssid->freq_list = freqs;
1023 struct wpa_ssid *ssid)
1025 return wpa_config_write_freqs(data, ssid->scan_freq);
1030 struct wpa_ssid *ssid)
1032 return wpa_config_write_freqs(data, ssid->freq_list);
1039 struct wpa_ssid *ssid, int line,
1083 ssid->leap++;
1085 ssid->non_leap++;
1105 os_free(ssid->eap.eap_methods);
1106 ssid->eap.eap_methods = methods;
1112 struct wpa_ssid *ssid)
1116 const struct eap_method_type *eap_methods = ssid->eap.eap_methods;
1147 struct wpa_ssid *ssid, int line,
1154 os_free(ssid->eap.password);
1155 ssid->eap.password = NULL;
1156 ssid->eap.password_len = 0;
1165 os_free(ssid->eap.password);
1166 ssid->eap.password = (u8 *) name;
1167 ssid->eap.password_len = os_strlen(name);
1168 ssid->eap.flags &= ~EAP_CONFIG_FLAGS_PASSWORD_NTHASH;
1169 ssid->eap.flags |= EAP_CONFIG_FLAGS_EXT_PASSWORD;
1187 os_free(ssid->eap.password);
1188 ssid->eap.password = (u8 *) tmp;
1189 ssid->eap.password_len = res_len;
1190 ssid->eap.flags &= ~EAP_CONFIG_FLAGS_PASSWORD_NTHASH;
1191 ssid->eap.flags &= ~EAP_CONFIG_FLAGS_EXT_PASSWORD;
1216 os_free(ssid->eap.password);
1217 ssid->eap.password = hash;
1218 ssid->eap.password_len = 16;
1219 ssid->eap.flags |= EAP_CONFIG_FLAGS_PASSWORD_NTHASH;
1220 ssid->eap.flags &= ~EAP_CONFIG_FLAGS_EXT_PASSWORD;
1227 struct wpa_ssid *ssid)
1231 if (ssid->eap.password == NULL)
1235 if (ssid->eap.flags & EAP_CONFIG_FLAGS_EXT_PASSWORD) {
1236 buf = os_zalloc(4 + ssid->eap.password_len + 1);
1240 os_memcpy(buf + 4, ssid->eap.password, ssid->eap.password_len);
1245 if (!(ssid->eap.flags & EAP_CONFIG_FLAGS_PASSWORD_NTHASH)) {
1247 ssid->eap.password, ssid->eap.password_len);
1255 wpa_snprintf_hex(buf + 5, 32 + 1, ssid->eap.password, 16);
1295 struct wpa_ssid *ssid, int line,
1298 return wpa_config_parse_wep_key(ssid->wep_key[0],
1299 &ssid->wep_key_len[0], line,
1305 struct wpa_ssid *ssid, int line,
1308 return wpa_config_parse_wep_key(ssid->wep_key[1],
1309 &ssid->wep_key_len[1], line,
1315 struct wpa_ssid *ssid, int line,
1318 return wpa_config_parse_wep_key(ssid->wep_key[2],
1319 &ssid->wep_key_len[2], line,
1325 struct wpa_ssid *ssid, int line,
1328 return wpa_config_parse_wep_key(ssid->wep_key[3],
1329 &ssid->wep_key_len[3], line,
1335 static char * wpa_config_write_wep_key(struct wpa_ssid *ssid, int idx)
1337 if (ssid->wep_key_len[idx] == 0)
1339 return wpa_config_write_string(ssid->wep_key[idx],
1340 ssid->wep_key_len[idx]);
1345 struct wpa_ssid *ssid)
1347 return wpa_config_write_wep_key(ssid, 0);
1352 struct wpa_ssid *ssid)
1354 return wpa_config_write_wep_key(ssid, 1);
1359 struct wpa_ssid *ssid)
1361 return wpa_config_write_wep_key(ssid, 2);
1366 struct wpa_ssid *ssid)
1368 return wpa_config_write_wep_key(ssid, 3);
1376 struct wpa_ssid *ssid, int line,
1421 os_free(ssid->p2p_client_list);
1422 ssid->p2p_client_list = buf;
1423 ssid->num_p2p_clients = count;
1431 struct wpa_ssid *ssid)
1437 if (ssid->p2p_client_list == NULL || ssid->num_p2p_clients == 0)
1440 value = os_malloc(20 * ssid->num_p2p_clients);
1444 end = value + 20 * ssid->num_p2p_clients;
1446 for (i = ssid->num_p2p_clients; i > 0; i--) {
1448 MAC2STR(ssid->p2p_client_list +
1554 { STR_RANGE(ssid, 0, MAX_SSID_LEN) },
1665 * @ssid: Pointer to the network configuration to be added to the list
1674 struct wpa_ssid *ssid)
1685 if (prev->priority == ssid->priority) {
1688 prev->pnext = ssid;
1700 if (nlist[prio]->priority < ssid->priority) {
1708 nlist[prio] = ssid;
1727 struct wpa_ssid *ssid;
1734 ssid = config->ssid;
1735 while (ssid) {
1736 ssid->pnext = NULL;
1737 if (wpa_config_add_prio_network(config, ssid) < 0)
1739 ssid = ssid->next;
1791 * wpa_config_free_ssid - Free network/ssid configuration data
1792 * @ssid: Configuration data for the network
1797 void wpa_config_free_ssid(struct wpa_ssid *ssid)
1799 os_free(ssid->ssid);
1800 os_free(ssid->passphrase);
1801 os_free(ssid->ext_psk);
1803 eap_peer_config_free(&ssid->eap);
1805 os_free(ssid->id_str);
1806 os_free(ssid->scan_freq);
1807 os_free(ssid->freq_list);
1808 os_free(ssid->bgscan);
1809 os_free(ssid->p2p_client_list);
1811 os_free(ssid->ht_mcs);
1813 os_free(ssid);
1848 struct wpa_ssid *ssid, *prev = NULL;
1851 ssid = config->ssid;
1852 while (ssid) {
1853 prev = ssid;
1854 ssid = ssid->next;
1916 struct wpa_ssid *ssid, *next;
1918 ssid = config->ssid;
1919 while (ssid) {
1920 next = ssid->next;
1921 func(arg, ssid);
1922 ssid = next;
1935 struct wpa_ssid *ssid;
1937 ssid = config->ssid;
1938 while (ssid) {
1939 if (id == ssid->id)
1941 ssid = ssid->next;
1944 return ssid;
1956 struct wpa_ssid *ssid, *last = NULL;
1959 ssid = config->ssid;
1960 while (ssid) {
1961 if (ssid->id > id)
1962 id = ssid->id;
1963 last = ssid;
1964 ssid = ssid->next;
1968 ssid = os_zalloc(sizeof(*ssid));
1969 if (ssid == NULL)
1971 ssid->id = id;
1973 last->next = ssid;
1975 config->ssid = ssid;
1979 return ssid;
1991 struct wpa_ssid *ssid, *prev = NULL;
1993 ssid = config->ssid;
1994 while (ssid) {
1995 if (id == ssid->id)
1997 prev = ssid;
1998 ssid = ssid->next;
2001 if (ssid == NULL)
2005 prev->next = ssid->next;
2007 config->ssid = ssid->next;
2010 wpa_config_free_ssid(ssid);
2017 * @ssid: Pointer to network configuration data
2019 void wpa_config_set_network_defaults(struct wpa_ssid *ssid)
2021 ssid->proto = DEFAULT_PROTO;
2022 ssid->pairwise_cipher = DEFAULT_PAIRWISE;
2023 ssid->group_cipher = DEFAULT_GROUP;
2024 ssid->key_mgmt = DEFAULT_KEY_MGMT;
2025 ssid->bg_scan_period = DEFAULT_BG_SCAN_PERIOD;
2027 ssid->eapol_flags = DEFAULT_EAPOL_FLAGS;
2028 ssid->eap_workaround = DEFAULT_EAP_WORKAROUND;
2029 ssid->eap.fragment_size = DEFAULT_FRAGMENT_SIZE;
2032 ssid->disable_ht = DEFAULT_DISABLE_HT;
2033 ssid->disable_ht40 = DEFAULT_DISABLE_HT40;
2034 ssid->disable_max_amsdu = DEFAULT_DISABLE_MAX_AMSDU;
2035 ssid->ampdu_factor = DEFAULT_AMPDU_FACTOR;
2036 ssid->ampdu_density = DEFAULT_AMPDU_DENSITY;
2043 * @ssid: Pointer to network configuration data
2044 * @var: Variable name, e.g., "ssid"
2054 int wpa_config_set(struct wpa_ssid *ssid, const char *var, const char *value,
2060 if (ssid == NULL || var == NULL || value == NULL)
2068 if (field->parser(field, ssid, line, value)) {
2089 int wpa_config_set_quoted(struct wpa_ssid *ssid, const char *var,
2104 ret = wpa_config_set(ssid, var, buf, 0);
2112 * @ssid: Pointer to network configuration data
2122 char ** wpa_config_get_all(struct wpa_ssid *ssid, int get_keys)
2130 get_keys = get_keys && ssid->export_keys;
2141 value = field->writer(field, ssid);
2175 * @ssid: Pointer to network configuration data
2176 * @var: Variable name, e.g., "ssid"
2185 char * wpa_config_get(struct wpa_ssid *ssid, const char *var)
2189 if (ssid == NULL || var == NULL)
2195 return field->writer(field, ssid);
2204 * @ssid: Pointer to network configuration data
2205 * @var: Variable name, e.g., "ssid"
2218 char * wpa_config_get_no_key(struct wpa_ssid *ssid, const char *var)
2222 if (ssid == NULL || var == NULL)
2228 char *res = field->writer(field, ssid);
2251 * wpa_config_update_psk - Update WPA PSK based on passphrase and SSID
2252 * @ssid: Pointer to network configuration data
2254 * This function must be called to update WPA PSK when either SSID or the
2257 void wpa_config_update_psk(struct wpa_ssid *ssid)
2260 pbkdf2_sha1(ssid->passphrase, ssid->ssid, ssid->ssid_len, 4096,
2261 ssid->psk, PMK_LEN);
2263 ssid->psk, PMK_LEN);
2264 ssid->psk_set = 1;
2620 struct wpa_ssid *ssid;
2623 ssid = config->pssid[prio];
2625 ssid->priority);
2626 while (ssid) {
2627 wpa_printf(MSG_DEBUG, " id=%d ssid='%s'",
2628 ssid->id,
2629 wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
2630 ssid = ssid->pnext;