mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 18:28:23 -05:00
WPS: Remove static-WEP-only workaround
WEP provisioning was removed from WPS v2, so this workaround functionality has not been applicable. Remove it completely. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
886ee6775f
commit
bca44f4e4e
@ -1260,8 +1260,6 @@ int hostapd_init_wps(struct hostapd_data *hapd,
|
|||||||
cfg.extra_cred_len = conf->extra_cred_len;
|
cfg.extra_cred_len = conf->extra_cred_len;
|
||||||
cfg.disable_auto_conf = (hapd->conf->wps_cred_processing == 1) &&
|
cfg.disable_auto_conf = (hapd->conf->wps_cred_processing == 1) &&
|
||||||
conf->skip_cred_build;
|
conf->skip_cred_build;
|
||||||
if (conf->ssid.security_policy == SECURITY_STATIC_WEP)
|
|
||||||
cfg.static_wep_only = 1;
|
|
||||||
cfg.dualband = interface_count(hapd->iface) > 1;
|
cfg.dualband = interface_count(hapd->iface) > 1;
|
||||||
if ((wps->dev.rf_bands & (WPS_RF_50GHZ | WPS_RF_24GHZ)) ==
|
if ((wps->dev.rf_bands & (WPS_RF_50GHZ | WPS_RF_24GHZ)) ==
|
||||||
(WPS_RF_50GHZ | WPS_RF_24GHZ))
|
(WPS_RF_50GHZ | WPS_RF_24GHZ))
|
||||||
|
@ -394,11 +394,6 @@ struct wps_registrar_config {
|
|||||||
*/
|
*/
|
||||||
int disable_auto_conf;
|
int disable_auto_conf;
|
||||||
|
|
||||||
/**
|
|
||||||
* static_wep_only - Whether the BSS supports only static WEP
|
|
||||||
*/
|
|
||||||
int static_wep_only;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dualband - Whether this is a concurrent dualband AP
|
* dualband - Whether this is a concurrent dualband AP
|
||||||
*/
|
*/
|
||||||
|
@ -173,7 +173,6 @@ struct wps_registrar {
|
|||||||
int sel_reg_union;
|
int sel_reg_union;
|
||||||
int sel_reg_dev_password_id_override;
|
int sel_reg_dev_password_id_override;
|
||||||
int sel_reg_config_methods_override;
|
int sel_reg_config_methods_override;
|
||||||
int static_wep_only;
|
|
||||||
int dualband;
|
int dualband;
|
||||||
int force_per_enrollee_psk;
|
int force_per_enrollee_psk;
|
||||||
|
|
||||||
@ -697,7 +696,6 @@ wps_registrar_init(struct wps_context *wps,
|
|||||||
reg->disable_auto_conf = cfg->disable_auto_conf;
|
reg->disable_auto_conf = cfg->disable_auto_conf;
|
||||||
reg->sel_reg_dev_password_id_override = -1;
|
reg->sel_reg_dev_password_id_override = -1;
|
||||||
reg->sel_reg_config_methods_override = -1;
|
reg->sel_reg_config_methods_override = -1;
|
||||||
reg->static_wep_only = cfg->static_wep_only;
|
|
||||||
reg->dualband = cfg->dualband;
|
reg->dualband = cfg->dualband;
|
||||||
reg->force_per_enrollee_psk = cfg->force_per_enrollee_psk;
|
reg->force_per_enrollee_psk = cfg->force_per_enrollee_psk;
|
||||||
|
|
||||||
@ -1390,28 +1388,6 @@ static int wps_set_ie(struct wps_registrar *reg)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reg->static_wep_only) {
|
|
||||||
/*
|
|
||||||
* Windows XP and Vista clients can get confused about
|
|
||||||
* EAP-Identity/Request when they probe the network with
|
|
||||||
* EAPOL-Start. In such a case, they may assume the network is
|
|
||||||
* using IEEE 802.1X and prompt user for a certificate while
|
|
||||||
* the correct (non-WPS) behavior would be to ask for the
|
|
||||||
* static WEP key. As a workaround, use Microsoft Provisioning
|
|
||||||
* IE to advertise that legacy 802.1X is not supported.
|
|
||||||
*/
|
|
||||||
const u8 ms_wps[7] = {
|
|
||||||
WLAN_EID_VENDOR_SPECIFIC, 5,
|
|
||||||
/* Microsoft Provisioning IE (00:50:f2:5) */
|
|
||||||
0x00, 0x50, 0xf2, 5,
|
|
||||||
0x00 /* no legacy 802.1X or MS WPS */
|
|
||||||
};
|
|
||||||
wpa_printf(MSG_DEBUG, "WPS: Add Microsoft Provisioning IE "
|
|
||||||
"into Beacon/Probe Response frames");
|
|
||||||
wpabuf_put_data(beacon, ms_wps, sizeof(ms_wps));
|
|
||||||
wpabuf_put_data(probe, ms_wps, sizeof(ms_wps));
|
|
||||||
}
|
|
||||||
|
|
||||||
return wps_cb_set_ie(reg, beacon, probe);
|
return wps_cb_set_ie(reg, beacon, probe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user