00001 /* 00002 * WPA Supplicant / Network configuration structures 00003 * Copyright (c) 2003-2008, Jouni Malinen <j@w1.fi> 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License version 2 as 00007 * published by the Free Software Foundation. 00008 * 00009 * Alternatively, this software may be distributed under the terms of BSD 00010 * license. 00011 * 00012 * See README and COPYING for more details. 00013 */ 00014 00015 #ifndef CONFIG_SSID_H 00016 #define CONFIG_SSID_H 00017 00018 #include "common/defs.h" 00019 #include "eap_peer/eap_config.h" 00020 00021 #define MAX_SSID_LEN 32 00022 00023 00024 #define DEFAULT_EAP_WORKAROUND ((unsigned int) -1) 00025 #define DEFAULT_EAPOL_FLAGS (EAPOL_FLAG_REQUIRE_KEY_UNICAST | \ 00026 EAPOL_FLAG_REQUIRE_KEY_BROADCAST) 00027 #define DEFAULT_PROTO (WPA_PROTO_WPA | WPA_PROTO_RSN) 00028 #define DEFAULT_KEY_MGMT (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_IEEE8021X) 00029 #define DEFAULT_PAIRWISE (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP) 00030 #define DEFAULT_GROUP (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP | \ 00031 WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40) 00032 #define DEFAULT_FRAGMENT_SIZE 1398 00033 00042 struct wpa_ssid { 00049 struct wpa_ssid *next; 00050 00058 struct wpa_ssid *pnext; 00059 00068 int id; 00069 00087 int priority; 00088 00100 u8 *ssid; 00101 00105 size_t ssid_len; 00106 00113 u8 bssid[ETH_ALEN]; 00114 00118 int bssid_set; 00119 00123 u8 psk[32]; 00124 00128 int psk_set; 00129 00137 char *passphrase; 00138 00142 int pairwise_cipher; 00143 00147 int group_cipher; 00148 00154 int key_mgmt; 00155 00159 int proto; 00160 00166 int auth_alg; 00167 00175 int scan_ssid; 00176 00177 #ifdef IEEE8021X_EAPOL 00178 #define EAPOL_FLAG_REQUIRE_KEY_UNICAST BIT(0) 00179 #define EAPOL_FLAG_REQUIRE_KEY_BROADCAST BIT(1) 00180 00183 int eapol_flags; 00184 00188 struct eap_peer_config eap; 00189 #endif /* IEEE8021X_EAPOL */ 00190 00191 #define NUM_WEP_KEYS 4 00192 #define MAX_WEP_KEY_LEN 16 00193 00196 u8 wep_key[NUM_WEP_KEYS][MAX_WEP_KEY_LEN]; 00197 00201 size_t wep_key_len[NUM_WEP_KEYS]; 00202 00206 int wep_tx_keyidx; 00207 00221 int proactive_key_caching; 00222 00231 int mixed_cell; 00232 00233 #ifdef IEEE8021X_EAPOL 00234 00241 int leap; 00242 00250 int non_leap; 00251 00263 unsigned int eap_workaround; 00264 00265 #endif /* IEEE8021X_EAPOL */ 00266 00283 enum wpas_mode { 00284 WPAS_MODE_INFRA = 0, 00285 WPAS_MODE_IBSS = 1, 00286 WPAS_MODE_AP = 2, 00287 } mode; 00288 00296 int disabled; 00297 00307 int peerkey; 00308 00316 char *id_str; 00317 00318 #ifdef CONFIG_IEEE80211W 00319 00325 enum mfp_options ieee80211w; 00326 #endif /* CONFIG_IEEE80211W */ 00327 00338 int frequency; 00339 00346 int wpa_ptk_rekey; 00347 00356 int *scan_freq; 00357 00365 char *bgscan; 00366 00375 int *freq_list; 00376 }; 00377 00378 #endif /* CONFIG_SSID_H */