mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 10:18:21 -05:00
Get rid of duplicated cipher suite and AKM definitions
WPA_CIPHER_* and CIPHER_* are used for the exact same set of cipher suites with the main difference being that the WPA_CIPHER_* version is suitable to be used as a bitfield. Similarly, WPA_KEY_MGMT_* and KEY_MGMT_* have similar design for AKMs. There is no need to maintain two separate copies of the definitions since the bitfield compatible version can be used for both needs. Get rid of the CIPHER_* and KEY_MGMT_* versions to clean up the implementation by getting rid of unnecessary mapping functions. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
de4ed4a89b
commit
4848a38d85
@ -133,42 +133,6 @@ enum wpa_alg {
|
||||
WPA_ALG_BIP_CMAC_256
|
||||
};
|
||||
|
||||
/**
|
||||
* enum wpa_cipher - Cipher suites
|
||||
*/
|
||||
enum wpa_cipher {
|
||||
CIPHER_NONE,
|
||||
CIPHER_WEP40,
|
||||
CIPHER_TKIP,
|
||||
CIPHER_CCMP,
|
||||
CIPHER_WEP104,
|
||||
CIPHER_GCMP,
|
||||
CIPHER_SMS4,
|
||||
CIPHER_GCMP_256,
|
||||
CIPHER_CCMP_256
|
||||
};
|
||||
|
||||
/**
|
||||
* enum wpa_key_mgmt - Key management suites
|
||||
*/
|
||||
enum wpa_key_mgmt {
|
||||
KEY_MGMT_802_1X,
|
||||
KEY_MGMT_PSK,
|
||||
KEY_MGMT_NONE,
|
||||
KEY_MGMT_802_1X_NO_WPA,
|
||||
KEY_MGMT_WPA_NONE,
|
||||
KEY_MGMT_FT_802_1X,
|
||||
KEY_MGMT_FT_PSK,
|
||||
KEY_MGMT_802_1X_SHA256,
|
||||
KEY_MGMT_PSK_SHA256,
|
||||
KEY_MGMT_WPS,
|
||||
KEY_MGMT_SAE,
|
||||
KEY_MGMT_FT_SAE,
|
||||
KEY_MGMT_WAPI_PSK,
|
||||
KEY_MGMT_WAPI_CERT,
|
||||
KEY_MGMT_CCKM
|
||||
};
|
||||
|
||||
/**
|
||||
* enum wpa_states - wpa_supplicant state
|
||||
*
|
||||
|
@ -1151,30 +1151,6 @@ int wpa_cipher_to_alg(int cipher)
|
||||
}
|
||||
|
||||
|
||||
enum wpa_cipher wpa_cipher_to_suite_driver(int cipher)
|
||||
{
|
||||
switch (cipher) {
|
||||
case WPA_CIPHER_NONE:
|
||||
return CIPHER_NONE;
|
||||
case WPA_CIPHER_WEP40:
|
||||
return CIPHER_WEP40;
|
||||
case WPA_CIPHER_WEP104:
|
||||
return CIPHER_WEP104;
|
||||
case WPA_CIPHER_CCMP:
|
||||
return CIPHER_CCMP;
|
||||
case WPA_CIPHER_GCMP:
|
||||
return CIPHER_GCMP;
|
||||
case WPA_CIPHER_CCMP_256:
|
||||
return CIPHER_CCMP_256;
|
||||
case WPA_CIPHER_GCMP_256:
|
||||
return CIPHER_GCMP_256;
|
||||
case WPA_CIPHER_TKIP:
|
||||
default:
|
||||
return CIPHER_TKIP;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int wpa_cipher_valid_pairwise(int cipher)
|
||||
{
|
||||
return cipher == WPA_CIPHER_CCMP_256 ||
|
||||
|
@ -403,7 +403,6 @@ int wpa_ft_parse_ies(const u8 *ies, size_t ies_len, struct wpa_ft_ies *parse);
|
||||
int wpa_cipher_key_len(int cipher);
|
||||
int wpa_cipher_rsc_len(int cipher);
|
||||
int wpa_cipher_to_alg(int cipher);
|
||||
enum wpa_cipher wpa_cipher_to_suite_driver(int cipher);
|
||||
int wpa_cipher_valid_pairwise(int cipher);
|
||||
u32 wpa_cipher_to_suite(int proto, int cipher);
|
||||
int rsn_cipher_put_suites(u8 *pos, int ciphers);
|
||||
|
@ -442,25 +442,25 @@ struct wpa_driver_associate_params {
|
||||
unsigned int wpa_proto;
|
||||
|
||||
/**
|
||||
* pairwise_suite - Selected pairwise cipher suite
|
||||
* pairwise_suite - Selected pairwise cipher suite (WPA_CIPHER_*)
|
||||
*
|
||||
* This is usually ignored if @wpa_ie is used.
|
||||
*/
|
||||
enum wpa_cipher pairwise_suite;
|
||||
unsigned int pairwise_suite;
|
||||
|
||||
/**
|
||||
* group_suite - Selected group cipher suite
|
||||
* group_suite - Selected group cipher suite (WPA_CIPHER_*)
|
||||
*
|
||||
* This is usually ignored if @wpa_ie is used.
|
||||
*/
|
||||
enum wpa_cipher group_suite;
|
||||
unsigned int group_suite;
|
||||
|
||||
/**
|
||||
* key_mgmt_suite - Selected key management suite
|
||||
* key_mgmt_suite - Selected key management suite (WPA_KEY_MGMT_*)
|
||||
*
|
||||
* This is usually ignored if @wpa_ie is used.
|
||||
*/
|
||||
enum wpa_key_mgmt key_mgmt_suite;
|
||||
unsigned int key_mgmt_suite;
|
||||
|
||||
/**
|
||||
* auth_alg - Allowed authentication algorithms
|
||||
|
@ -1110,9 +1110,9 @@ wpa_driver_bsd_associate(void *priv, struct wpa_driver_associate_params *params)
|
||||
if (wpa_driver_bsd_set_wpa_ie(drv, params->wpa_ie, params->wpa_ie_len) < 0)
|
||||
return -1;
|
||||
|
||||
privacy = !(params->pairwise_suite == CIPHER_NONE &&
|
||||
params->group_suite == CIPHER_NONE &&
|
||||
params->key_mgmt_suite == KEY_MGMT_NONE &&
|
||||
privacy = !(params->pairwise_suite == WPA_CIPHER_NONE &&
|
||||
params->group_suite == WPA_CIPHER_NONE &&
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_NONE &&
|
||||
params->wpa_ie_len == 0);
|
||||
wpa_printf(MSG_DEBUG, "%s: set PRIVACY %u", __func__, privacy);
|
||||
|
||||
|
@ -1074,8 +1074,8 @@ wpa_driver_ndis_associate(void *priv,
|
||||
/* Try to continue anyway */
|
||||
}
|
||||
|
||||
if (params->key_mgmt_suite == KEY_MGMT_NONE ||
|
||||
params->key_mgmt_suite == KEY_MGMT_802_1X_NO_WPA) {
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_NONE ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
|
||||
/* Re-set WEP keys if static WEP configuration is used. */
|
||||
int i;
|
||||
for (i = 0; i < 4; i++) {
|
||||
@ -1102,12 +1102,12 @@ wpa_driver_ndis_associate(void *priv,
|
||||
priv_mode = Ndis802_11PrivFilterAcceptAll;
|
||||
} else if (params->wpa_ie[0] == WLAN_EID_RSN) {
|
||||
priv_mode = Ndis802_11PrivFilter8021xWEP;
|
||||
if (params->key_mgmt_suite == KEY_MGMT_PSK)
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_PSK)
|
||||
auth_mode = Ndis802_11AuthModeWPA2PSK;
|
||||
else
|
||||
auth_mode = Ndis802_11AuthModeWPA2;
|
||||
#ifdef CONFIG_WPS
|
||||
} else if (params->key_mgmt_suite == KEY_MGMT_WPS) {
|
||||
} else if (params->key_mgmt_suite == WPA_KEY_MGMT_WPS) {
|
||||
auth_mode = Ndis802_11AuthModeOpen;
|
||||
priv_mode = Ndis802_11PrivFilterAcceptAll;
|
||||
if (params->wps == WPS_MODE_PRIVACY) {
|
||||
@ -1129,35 +1129,35 @@ wpa_driver_ndis_associate(void *priv,
|
||||
#endif /* CONFIG_WPS */
|
||||
} else {
|
||||
priv_mode = Ndis802_11PrivFilter8021xWEP;
|
||||
if (params->key_mgmt_suite == KEY_MGMT_WPA_NONE)
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_WPA_NONE)
|
||||
auth_mode = Ndis802_11AuthModeWPANone;
|
||||
else if (params->key_mgmt_suite == KEY_MGMT_PSK)
|
||||
else if (params->key_mgmt_suite == WPA_KEY_MGMT_PSK)
|
||||
auth_mode = Ndis802_11AuthModeWPAPSK;
|
||||
else
|
||||
auth_mode = Ndis802_11AuthModeWPA;
|
||||
}
|
||||
|
||||
switch (params->pairwise_suite) {
|
||||
case CIPHER_CCMP:
|
||||
case WPA_CIPHER_CCMP:
|
||||
encr = Ndis802_11Encryption3Enabled;
|
||||
break;
|
||||
case CIPHER_TKIP:
|
||||
case WPA_CIPHER_TKIP:
|
||||
encr = Ndis802_11Encryption2Enabled;
|
||||
break;
|
||||
case CIPHER_WEP40:
|
||||
case CIPHER_WEP104:
|
||||
case WPA_CIPHER_WEP40:
|
||||
case WPA_CIPHER_WEP104:
|
||||
encr = Ndis802_11Encryption1Enabled;
|
||||
break;
|
||||
case CIPHER_NONE:
|
||||
case WPA_CIPHER_NONE:
|
||||
#ifdef CONFIG_WPS
|
||||
if (params->wps == WPS_MODE_PRIVACY) {
|
||||
encr = Ndis802_11Encryption1Enabled;
|
||||
break;
|
||||
}
|
||||
#endif /* CONFIG_WPS */
|
||||
if (params->group_suite == CIPHER_CCMP)
|
||||
if (params->group_suite == WPA_CIPHER_CCMP)
|
||||
encr = Ndis802_11Encryption3Enabled;
|
||||
else if (params->group_suite == CIPHER_TKIP)
|
||||
else if (params->group_suite == WPA_CIPHER_TKIP)
|
||||
encr = Ndis802_11Encryption2Enabled;
|
||||
else
|
||||
encr = Ndis802_11EncryptionDisabled;
|
||||
|
@ -5270,33 +5270,6 @@ static int wpa_cipher_to_cipher_suites(unsigned int ciphers, u32 suites[],
|
||||
}
|
||||
|
||||
|
||||
static u32 cipher_to_cipher_suite(enum wpa_cipher cipher)
|
||||
{
|
||||
switch (cipher) {
|
||||
case CIPHER_SMS4:
|
||||
return WLAN_CIPHER_SUITE_SMS4;
|
||||
case CIPHER_WEP40:
|
||||
return WLAN_CIPHER_SUITE_WEP40;
|
||||
case CIPHER_WEP104:
|
||||
return WLAN_CIPHER_SUITE_WEP104;
|
||||
case CIPHER_CCMP:
|
||||
return WLAN_CIPHER_SUITE_CCMP;
|
||||
case CIPHER_GCMP:
|
||||
return WLAN_CIPHER_SUITE_GCMP;
|
||||
case CIPHER_CCMP_256:
|
||||
return WLAN_CIPHER_SUITE_CCMP_256;
|
||||
case CIPHER_GCMP_256:
|
||||
return WLAN_CIPHER_SUITE_GCMP_256;
|
||||
case CIPHER_TKIP:
|
||||
return WLAN_CIPHER_SUITE_TKIP;
|
||||
case CIPHER_NONE:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int wpa_driver_nl80211_set_key(const char *ifname, struct i802_bss *bss,
|
||||
enum wpa_alg alg, const u8 *addr,
|
||||
int key_idx, int set_tx,
|
||||
@ -8053,10 +8026,10 @@ retry:
|
||||
NLA_PUT(msg, NL80211_ATTR_MAC, ETH_ALEN, params->bssid);
|
||||
}
|
||||
|
||||
if (params->key_mgmt_suite == KEY_MGMT_802_1X ||
|
||||
params->key_mgmt_suite == KEY_MGMT_PSK ||
|
||||
params->key_mgmt_suite == KEY_MGMT_802_1X_SHA256 ||
|
||||
params->key_mgmt_suite == KEY_MGMT_PSK_SHA256) {
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SHA256 ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_PSK_SHA256) {
|
||||
wpa_printf(MSG_DEBUG, " * control port");
|
||||
NLA_PUT_FLAG(msg, NL80211_ATTR_CONTROL_PORT);
|
||||
}
|
||||
@ -8183,37 +8156,37 @@ skip_auth_type:
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_WPA_VERSIONS, ver);
|
||||
}
|
||||
|
||||
if (params->pairwise_suite != CIPHER_NONE) {
|
||||
if (params->pairwise_suite != WPA_CIPHER_NONE) {
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE,
|
||||
cipher_to_cipher_suite(params->pairwise_suite));
|
||||
wpa_cipher_to_cipher_suite(params->pairwise_suite));
|
||||
}
|
||||
|
||||
if (params->group_suite != CIPHER_NONE) {
|
||||
if (params->group_suite != WPA_CIPHER_NONE) {
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP,
|
||||
cipher_to_cipher_suite(params->group_suite));
|
||||
wpa_cipher_to_cipher_suite(params->group_suite));
|
||||
}
|
||||
|
||||
if (params->key_mgmt_suite == KEY_MGMT_802_1X ||
|
||||
params->key_mgmt_suite == KEY_MGMT_PSK ||
|
||||
params->key_mgmt_suite == KEY_MGMT_FT_802_1X ||
|
||||
params->key_mgmt_suite == KEY_MGMT_FT_PSK ||
|
||||
params->key_mgmt_suite == KEY_MGMT_CCKM) {
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_FT_IEEE8021X ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_FT_PSK ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_CCKM) {
|
||||
int mgmt = WLAN_AKM_SUITE_PSK;
|
||||
|
||||
switch (params->key_mgmt_suite) {
|
||||
case KEY_MGMT_CCKM:
|
||||
case WPA_KEY_MGMT_CCKM:
|
||||
mgmt = WLAN_AKM_SUITE_CCKM;
|
||||
break;
|
||||
case KEY_MGMT_802_1X:
|
||||
case WPA_KEY_MGMT_IEEE8021X:
|
||||
mgmt = WLAN_AKM_SUITE_8021X;
|
||||
break;
|
||||
case KEY_MGMT_FT_802_1X:
|
||||
case WPA_KEY_MGMT_FT_IEEE8021X:
|
||||
mgmt = WLAN_AKM_SUITE_FT_8021X;
|
||||
break;
|
||||
case KEY_MGMT_FT_PSK:
|
||||
case WPA_KEY_MGMT_FT_PSK:
|
||||
mgmt = WLAN_AKM_SUITE_FT_PSK;
|
||||
break;
|
||||
case KEY_MGMT_PSK:
|
||||
case WPA_KEY_MGMT_PSK:
|
||||
default:
|
||||
mgmt = WLAN_AKM_SUITE_PSK;
|
||||
break;
|
||||
@ -8362,14 +8335,14 @@ static int wpa_driver_nl80211_associate(
|
||||
NLA_PUT(msg, NL80211_ATTR_IE, params->wpa_ie_len,
|
||||
params->wpa_ie);
|
||||
|
||||
if (params->pairwise_suite != CIPHER_NONE) {
|
||||
u32 cipher = cipher_to_cipher_suite(params->pairwise_suite);
|
||||
if (params->pairwise_suite != WPA_CIPHER_NONE) {
|
||||
u32 cipher = wpa_cipher_to_cipher_suite(params->pairwise_suite);
|
||||
wpa_printf(MSG_DEBUG, " * pairwise=0x%x", cipher);
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITES_PAIRWISE, cipher);
|
||||
}
|
||||
|
||||
if (params->group_suite != CIPHER_NONE) {
|
||||
u32 cipher = cipher_to_cipher_suite(params->group_suite);
|
||||
if (params->group_suite != WPA_CIPHER_NONE) {
|
||||
u32 cipher = wpa_cipher_to_cipher_suite(params->group_suite);
|
||||
wpa_printf(MSG_DEBUG, " * group=0x%x", cipher);
|
||||
NLA_PUT_U32(msg, NL80211_ATTR_CIPHER_SUITE_GROUP, cipher);
|
||||
}
|
||||
|
@ -1938,15 +1938,15 @@ static int wpa_driver_wext_set_gen_ie(void *priv, const u8 *ie,
|
||||
int wpa_driver_wext_cipher2wext(int cipher)
|
||||
{
|
||||
switch (cipher) {
|
||||
case CIPHER_NONE:
|
||||
case WPA_CIPHER_NONE:
|
||||
return IW_AUTH_CIPHER_NONE;
|
||||
case CIPHER_WEP40:
|
||||
case WPA_CIPHER_WEP40:
|
||||
return IW_AUTH_CIPHER_WEP40;
|
||||
case CIPHER_TKIP:
|
||||
case WPA_CIPHER_TKIP:
|
||||
return IW_AUTH_CIPHER_TKIP;
|
||||
case CIPHER_CCMP:
|
||||
case WPA_CIPHER_CCMP:
|
||||
return IW_AUTH_CIPHER_CCMP;
|
||||
case CIPHER_WEP104:
|
||||
case WPA_CIPHER_WEP104:
|
||||
return IW_AUTH_CIPHER_WEP104;
|
||||
default:
|
||||
return 0;
|
||||
@ -1957,10 +1957,10 @@ int wpa_driver_wext_cipher2wext(int cipher)
|
||||
int wpa_driver_wext_keymgmt2wext(int keymgmt)
|
||||
{
|
||||
switch (keymgmt) {
|
||||
case KEY_MGMT_802_1X:
|
||||
case KEY_MGMT_802_1X_NO_WPA:
|
||||
case WPA_KEY_MGMT_IEEE8021X:
|
||||
case WPA_KEY_MGMT_IEEE8021X_NO_WPA:
|
||||
return IW_AUTH_KEY_MGMT_802_1X;
|
||||
case KEY_MGMT_PSK:
|
||||
case WPA_KEY_MGMT_PSK:
|
||||
return IW_AUTH_KEY_MGMT_PSK;
|
||||
default:
|
||||
return 0;
|
||||
@ -2077,9 +2077,9 @@ int wpa_driver_wext_associate(void *priv,
|
||||
if (wpa_driver_wext_set_auth_param(drv,
|
||||
IW_AUTH_KEY_MGMT, value) < 0)
|
||||
ret = -1;
|
||||
value = params->key_mgmt_suite != KEY_MGMT_NONE ||
|
||||
params->pairwise_suite != CIPHER_NONE ||
|
||||
params->group_suite != CIPHER_NONE ||
|
||||
value = params->key_mgmt_suite != WPA_KEY_MGMT_NONE ||
|
||||
params->pairwise_suite != WPA_CIPHER_NONE ||
|
||||
params->group_suite != WPA_CIPHER_NONE ||
|
||||
params->wpa_ie_len;
|
||||
if (wpa_driver_wext_set_auth_param(drv,
|
||||
IW_AUTH_PRIVACY_INVOKED, value) < 0)
|
||||
@ -2088,8 +2088,8 @@ int wpa_driver_wext_associate(void *priv,
|
||||
/* Allow unencrypted EAPOL messages even if pairwise keys are set when
|
||||
* not using WPA. IEEE 802.1X specifies that these frames are not
|
||||
* encrypted, but WPA encrypts them when pairwise keys are in use. */
|
||||
if (params->key_mgmt_suite == KEY_MGMT_802_1X ||
|
||||
params->key_mgmt_suite == KEY_MGMT_PSK)
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_PSK)
|
||||
allow_unencrypted_eapol = 0;
|
||||
else
|
||||
allow_unencrypted_eapol = 1;
|
||||
|
@ -513,7 +513,7 @@ int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
|
||||
wpa_s->key_mgmt = WPA_KEY_MGMT_PSK;
|
||||
else
|
||||
wpa_s->key_mgmt = WPA_KEY_MGMT_NONE;
|
||||
params.key_mgmt_suite = key_mgmt2driver(wpa_s->key_mgmt);
|
||||
params.key_mgmt_suite = wpa_s->key_mgmt;
|
||||
|
||||
wpa_s->pairwise_cipher = wpa_pick_pairwise_cipher(ssid->pairwise_cipher,
|
||||
1);
|
||||
@ -522,8 +522,7 @@ int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
|
||||
"cipher.");
|
||||
return -1;
|
||||
}
|
||||
params.pairwise_suite =
|
||||
wpa_cipher_to_suite_driver(wpa_s->pairwise_cipher);
|
||||
params.pairwise_suite = wpa_s->pairwise_cipher;
|
||||
params.group_suite = params.pairwise_suite;
|
||||
|
||||
#ifdef CONFIG_P2P
|
||||
|
@ -651,9 +651,8 @@ void sme_associate(struct wpa_supplicant *wpa_s, enum wpas_mode mode,
|
||||
params.wpa_ie = wpa_s->sme.assoc_req_ie_len ?
|
||||
wpa_s->sme.assoc_req_ie : NULL;
|
||||
params.wpa_ie_len = wpa_s->sme.assoc_req_ie_len;
|
||||
params.pairwise_suite =
|
||||
wpa_cipher_to_suite_driver(wpa_s->pairwise_cipher);
|
||||
params.group_suite = wpa_cipher_to_suite_driver(wpa_s->group_cipher);
|
||||
params.pairwise_suite = wpa_s->pairwise_cipher;
|
||||
params.group_suite = wpa_s->group_cipher;
|
||||
#ifdef CONFIG_HT_OVERRIDES
|
||||
os_memset(&htcaps, 0, sizeof(htcaps));
|
||||
os_memset(&htcaps_mask, 0, sizeof(htcaps_mask));
|
||||
|
@ -865,34 +865,6 @@ static void wpa_supplicant_reconfig(int sig, void *signal_ctx)
|
||||
}
|
||||
|
||||
|
||||
enum wpa_key_mgmt key_mgmt2driver(int key_mgmt)
|
||||
{
|
||||
switch (key_mgmt) {
|
||||
case WPA_KEY_MGMT_NONE:
|
||||
return KEY_MGMT_NONE;
|
||||
case WPA_KEY_MGMT_IEEE8021X_NO_WPA:
|
||||
return KEY_MGMT_802_1X_NO_WPA;
|
||||
case WPA_KEY_MGMT_IEEE8021X:
|
||||
return KEY_MGMT_802_1X;
|
||||
case WPA_KEY_MGMT_WPA_NONE:
|
||||
return KEY_MGMT_WPA_NONE;
|
||||
case WPA_KEY_MGMT_FT_IEEE8021X:
|
||||
return KEY_MGMT_FT_802_1X;
|
||||
case WPA_KEY_MGMT_FT_PSK:
|
||||
return KEY_MGMT_FT_PSK;
|
||||
case WPA_KEY_MGMT_IEEE8021X_SHA256:
|
||||
return KEY_MGMT_802_1X_SHA256;
|
||||
case WPA_KEY_MGMT_PSK_SHA256:
|
||||
return KEY_MGMT_PSK_SHA256;
|
||||
case WPA_KEY_MGMT_WPS:
|
||||
return KEY_MGMT_WPS;
|
||||
case WPA_KEY_MGMT_PSK:
|
||||
default:
|
||||
return KEY_MGMT_PSK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static int wpa_supplicant_suites_from_ai(struct wpa_supplicant *wpa_s,
|
||||
struct wpa_ssid *ssid,
|
||||
struct wpa_ie_data *ie)
|
||||
@ -1290,7 +1262,7 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||
size_t wpa_ie_len;
|
||||
int use_crypt, ret, i, bssid_changed;
|
||||
int algs = WPA_AUTH_ALG_OPEN;
|
||||
enum wpa_cipher cipher_pairwise, cipher_group;
|
||||
unsigned int cipher_pairwise, cipher_group;
|
||||
struct wpa_driver_associate_params params;
|
||||
int wep_keys_set = 0;
|
||||
int assoc_failed = 0;
|
||||
@ -1531,8 +1503,8 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||
|
||||
wpa_clear_keys(wpa_s, bss ? bss->bssid : NULL);
|
||||
use_crypt = 1;
|
||||
cipher_pairwise = wpa_cipher_to_suite_driver(wpa_s->pairwise_cipher);
|
||||
cipher_group = wpa_cipher_to_suite_driver(wpa_s->group_cipher);
|
||||
cipher_pairwise = wpa_s->pairwise_cipher;
|
||||
cipher_group = wpa_s->group_cipher;
|
||||
if (wpa_s->key_mgmt == WPA_KEY_MGMT_NONE ||
|
||||
wpa_s->key_mgmt == WPA_KEY_MGMT_IEEE8021X_NO_WPA) {
|
||||
if (wpa_s->key_mgmt == WPA_KEY_MGMT_NONE)
|
||||
@ -1556,7 +1528,7 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||
/* Assume that dynamic WEP-104 keys will be used and
|
||||
* set cipher suites in order for drivers to expect
|
||||
* encryption. */
|
||||
cipher_pairwise = cipher_group = CIPHER_WEP104;
|
||||
cipher_pairwise = cipher_group = WPA_CIPHER_WEP104;
|
||||
}
|
||||
}
|
||||
#endif /* IEEE8021X_EAPOL */
|
||||
@ -1597,7 +1569,7 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||
params.wpa_ie_len = wpa_ie_len;
|
||||
params.pairwise_suite = cipher_pairwise;
|
||||
params.group_suite = cipher_group;
|
||||
params.key_mgmt_suite = key_mgmt2driver(wpa_s->key_mgmt);
|
||||
params.key_mgmt_suite = wpa_s->key_mgmt;
|
||||
params.wpa_proto = wpa_s->wpa_proto;
|
||||
params.auth_alg = algs;
|
||||
params.mode = ssid->mode;
|
||||
@ -1610,8 +1582,8 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||
params.wep_tx_keyidx = ssid->wep_tx_keyidx;
|
||||
|
||||
if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE) &&
|
||||
(params.key_mgmt_suite == KEY_MGMT_PSK ||
|
||||
params.key_mgmt_suite == KEY_MGMT_FT_PSK)) {
|
||||
(params.key_mgmt_suite == WPA_KEY_MGMT_PSK ||
|
||||
params.key_mgmt_suite == WPA_KEY_MGMT_FT_PSK)) {
|
||||
params.passphrase = ssid->passphrase;
|
||||
if (ssid->psk_set)
|
||||
params.psk = ssid->psk;
|
||||
|
@ -827,7 +827,6 @@ int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s,
|
||||
void wpa_supplicant_terminate_proc(struct wpa_global *global);
|
||||
void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
|
||||
const u8 *buf, size_t len);
|
||||
enum wpa_key_mgmt key_mgmt2driver(int key_mgmt);
|
||||
void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
|
||||
void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s);
|
||||
void wpas_connection_failed(struct wpa_supplicant *wpa_s, const u8 *bssid);
|
||||
|
Loading…
Reference in New Issue
Block a user