libeap.git
15 years agoWPS: Added wpa_supplicant ctrl_iface commands to start WPS processing
Jouni Malinen [Sat, 29 Nov 2008 18:59:45 +0000 (20:59 +0200)]
WPS: Added wpa_supplicant ctrl_iface commands to start WPS processing

New control interface commands WPS_PBC, WPS_PIN, and WPS_REG can be used
to start WPS processing. These add and select the WPS network block into
the configuration temporarily, i.e., there is no need to add the WPS
network block manually anymore.

15 years agoFixed wpa_config_parse_string() not to modify const string.
Jouni Malinen [Sat, 29 Nov 2008 18:50:00 +0000 (20:50 +0200)]
Fixed wpa_config_parse_string() not to modify const string.

This allows wpa_config_set() to be used with const strings as the value.

15 years agoWPS: Added helper functions for generating and validating PINs
Jouni Malinen [Sat, 29 Nov 2008 12:02:09 +0000 (14:02 +0200)]
WPS: Added helper functions for generating and validating PINs

15 years agoWPS: Set Request Type properly into WPS IE in ProbeReq/AssocReq
Jouni Malinen [Sat, 29 Nov 2008 11:38:03 +0000 (13:38 +0200)]
WPS: Set Request Type properly into WPS IE in ProbeReq/AssocReq

15 years agoWPS: Moved WPS IE building for ProbeReq/AssocReq into wps.c
Jouni Malinen [Sat, 29 Nov 2008 11:21:28 +0000 (13:21 +0200)]
WPS: Moved WPS IE building for ProbeReq/AssocReq into wps.c

These functions fit in better with the category of functions included in
wps.c. wps_common.c is now used for generic helper functions (currently,
only crypto code).

15 years agoWPS: Split wps_common.c into parts
Jouni Malinen [Sat, 29 Nov 2008 11:16:26 +0000 (13:16 +0200)]
WPS: Split wps_common.c into parts

To make it easier to find various functions, attribute functions were
split into wps_attr_{build,parse,process}.c.

15 years agoWPS: Moved RF Bands processing into wps_dev_attr.c
Jouni Malinen [Sat, 29 Nov 2008 10:59:43 +0000 (12:59 +0200)]
WPS: Moved RF Bands processing into wps_dev_attr.c

This allows the RF Bands attribute to be configured and stored.

15 years agoWPS: Moved ProbeReq/AssocReq WPS IE building into wps_common.c
Jouni Malinen [Sat, 29 Nov 2008 10:44:02 +0000 (12:44 +0200)]
WPS: Moved ProbeReq/AssocReq WPS IE building into wps_common.c

This code and the related attributes are not specific to Enrollee
functionality, so wps_common.c is the correct location for them.

15 years agoWPS: Pass device data into wps_enrollee_build_probe_req_ie()
Jouni Malinen [Sat, 29 Nov 2008 10:19:30 +0000 (12:19 +0200)]
WPS: Pass device data into wps_enrollee_build_probe_req_ie()

Use configured device data instead of hardcoded values to generate WPS
IE for Probe Request.

15 years agoWPS: Parse Request Type from WPS IE in (Re)AssocReq and derive mgmt keys
Jouni Malinen [Sat, 29 Nov 2008 10:11:56 +0000 (12:11 +0200)]
WPS: Parse Request Type from WPS IE in (Re)AssocReq and derive mgmt keys

WPS IE is now passed from hostapd association processing into EAP-WSC
and WPS processing. Request Type attribute is parsed from this
information and if the request is for a WLAN Manager Registrar,
additional management keys are derived (to be used with UPnP).

15 years agoWPS: Added comments for main data structures
Jouni Malinen [Fri, 28 Nov 2008 18:50:08 +0000 (20:50 +0200)]
WPS: Added comments for main data structures

15 years agoWPS: Moved mac_addr and uuid configuration into wps_context
Jouni Malinen [Fri, 28 Nov 2008 18:44:47 +0000 (20:44 +0200)]
WPS: Moved mac_addr and uuid configuration into wps_context

There is no need to complicate EAPOL and EAP interfaces with WPS
specific parameters now that wps_context is passed through.

15 years agoWPS: Moved wps_context initialization into wps_supplicant.c
Jouni Malinen [Fri, 28 Nov 2008 18:32:13 +0000 (20:32 +0200)]
WPS: Moved wps_context initialization into wps_supplicant.c

The wps_context data is now managed at wpa_supplicant, not EAP-WSC. This
makes wpa_supplicant design for WPS match with hostapd one and also
makes it easier configure whatever parameters and callbacks are needed
for WPS.

15 years agoWPS: Merged two cred_cb variables into the same one
Jouni Malinen [Fri, 28 Nov 2008 18:02:32 +0000 (20:02 +0200)]
WPS: Merged two cred_cb variables into the same one

Previously, wpa_supplicant as Enrollee case was handled using a
different callback function pointer. However, now that the wps_context
structure is allocated for all cases, the same variable can be used in
all cases.

15 years agoWPS: Move WPS glue code from wpas_glue.c to wps_supplicant.c
Jouni Malinen [Fri, 28 Nov 2008 17:46:22 +0000 (19:46 +0200)]
WPS: Move WPS glue code from wpas_glue.c to wps_supplicant.c

This cleans up the internal interface between different modules and is
the first step in getting wpa_supplicant design closer to hostapd as far
as WPS is concerned.

15 years agoWPS: Moved device attributes into wps_context::dev for Enrollee case
Jouni Malinen [Fri, 28 Nov 2008 17:29:22 +0000 (19:29 +0200)]
WPS: Moved device attributes into wps_context::dev for Enrollee case

Previously, hardcoded values were used in wps_enrollee.c. These are now
moved into shared data in struct wps_context. In case of
AP/Authenticator, these are initialized in wps_hostapd.c. In case of
client/supplicant, these are now initialized in EAP-WSC peer method,
but will probably end up being moved into higher layer for better
configuration.
 EAP-WSC peer method for

15 years ago0.5.11 release
Jouni Malinen [Fri, 28 Nov 2008 16:32:55 +0000 (18:32 +0200)]
0.5.11 release

15 years agoWPS: Update supplicant configuration when acting as an external Registrar
Jouni Malinen [Thu, 27 Nov 2008 19:23:43 +0000 (21:23 +0200)]
WPS: Update supplicant configuration when acting as an external Registrar

This allows the network to be used after the Registrar configuration
step. The local WPS network is replaced with a new network block
similarly to the case of acting as an Enrollee.

15 years agoWPS: Moved Credential building to use struct wps_credential
Jouni Malinen [Thu, 27 Nov 2008 19:14:39 +0000 (21:14 +0200)]
WPS: Moved Credential building to use struct wps_credential

This makes it easier to store old AP settings into wps->cred (and allow
them to modified and taken into use in the future). Separation between
Credential and AP Settings building is also cleaner in this design.

15 years agoWPS: Process old AP Settings in M7 when registering as external Registrar
Jouni Malinen [Thu, 27 Nov 2008 18:32:39 +0000 (20:32 +0200)]
WPS: Process old AP Settings in M7 when registering as external Registrar

The old (i.e., currently used) AP Settings are processed. For now, they
are copied as-is into M8 as new AP Settings to avoid changing
configuration. This should be changed to allow external programs (e.g.,
GUI) to fetch the old AP settings over ctrl_iface and then allow
settings to be changed before sending M8 with the new settings.

15 years agoWPS: Moved Credential and AP Settings processing in common code
Jouni Malinen [Thu, 27 Nov 2008 18:15:48 +0000 (20:15 +0200)]
WPS: Moved Credential and AP Settings processing in common code

The core processing of attributes into struct wps_credential is now in
wps_common.c (was in wps_enrollee.c), so that the same code can be
shared with Registrar.

15 years agoFixed a typo in a debug message
Jouni Malinen [Thu, 27 Nov 2008 17:38:52 +0000 (19:38 +0200)]
Fixed a typo in a debug message

15 years agoWPS: Added parsing of Request Type and Response Type attributes
Jouni Malinen [Wed, 26 Nov 2008 19:00:27 +0000 (21:00 +0200)]
WPS: Added parsing of Request Type and Response Type attributes

15 years agoWPS: Moved UUID configuration from phase1 into global config area
Jouni Malinen [Wed, 26 Nov 2008 18:47:24 +0000 (20:47 +0200)]
WPS: Moved UUID configuration from phase1 into global config area

15 years agoChanged NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET to use U32
Jouni Malinen [Wed, 26 Nov 2008 14:16:28 +0000 (16:16 +0200)]
Changed NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET to use U32

15 years agoPEAPv0: Added support for IPMK/CMK derivation in session resumption case
Jouni Malinen [Wed, 26 Nov 2008 11:27:40 +0000 (13:27 +0200)]
PEAPv0: Added support for IPMK/CMK derivation in session resumption case

15 years agonl80211: Fixed a merge issue in an earlier commit for set_freq
Jouni Malinen [Wed, 26 Nov 2008 08:52:45 +0000 (10:52 +0200)]
nl80211: Fixed a merge issue in an earlier commit for set_freq

15 years agonl80211: Clear HT flags from the channel when exiting
Jouni Malinen [Wed, 26 Nov 2008 08:51:01 +0000 (10:51 +0200)]
nl80211: Clear HT flags from the channel when exiting

15 years agoAdded option to distinguish non-HT and HT20 in set_freq
Jouni Malinen [Wed, 26 Nov 2008 08:44:04 +0000 (10:44 +0200)]
Added option to distinguish non-HT and HT20 in set_freq

15 years agonl80211: Add support for setting channel frequency and HT20 vs. HT40
Jouni Malinen [Tue, 25 Nov 2008 18:59:39 +0000 (20:59 +0200)]
nl80211: Add support for setting channel frequency and HT20 vs. HT40

This depends on a patch to Linux nl80211/mac80211 that has not yet been
merged into wireless-testing. If that change is not present, the old
mechanism (WEXT) will be used instead.

15 years agoChange HT parameter configuration to use a single driver ops function
Jouni Malinen [Tue, 25 Nov 2008 12:57:34 +0000 (14:57 +0200)]
Change HT parameter configuration to use a single driver ops function

It is better to pass both HT Capabilities and HT Operation IEs in the
same function call since it may be easier for the driver wrappers to
handle the changes without having to wait for the other IE in the
wrapper code.

15 years agoValidate HT40 channel pair validity based on IEEE 802.11n Annex J
Jouni Malinen [Tue, 25 Nov 2008 10:51:03 +0000 (12:51 +0200)]
Validate HT40 channel pair validity based on IEEE 802.11n Annex J

15 years agodriver_nl80211: Added set_country() handler
Jouni Malinen [Tue, 25 Nov 2008 10:10:35 +0000 (12:10 +0200)]
driver_nl80211: Added set_country() handler

If country_code is set in hostapd.conf, hostapd will now update nl80211
regulatory data by setting the alpha2 string for CRDA. In other words,
"iw reg set <alpha2>" is not needed anymore when using hostapd.

15 years agoAdded support for generating Country IE based on nl80211 regulatory info
Jouni Malinen [Tue, 25 Nov 2008 09:56:28 +0000 (11:56 +0200)]
Added support for generating Country IE based on nl80211 regulatory info

15 years agoGet maximum TX power for each allowed channel from mac80211
Jouni Malinen [Tue, 25 Nov 2008 09:11:50 +0000 (11:11 +0200)]
Get maximum TX power for each allowed channel from mac80211

15 years agoAdd some notes on which channels can be used with HT40- and HT40+
Jouni Malinen [Mon, 24 Nov 2008 17:28:37 +0000 (19:28 +0200)]
Add some notes on which channels can be used with HT40- and HT40+

This is not a complete list, but at least it can provide some help for
whoever is trying to configure hostapd for 802.11n HT40 operation.

15 years agoAdd set STA Channel Width field to 1 when allowing HT40
Jouni Malinen [Mon, 24 Nov 2008 14:44:17 +0000 (16:44 +0200)]
Add set STA Channel Width field to 1 when allowing HT40

15 years agoAdded support for configuring secondary channel offset for HT40
Jouni Malinen [Mon, 24 Nov 2008 14:33:45 +0000 (16:33 +0200)]
Added support for configuring secondary channel offset for HT40

15 years agoRename [40HT] to [HT40] in ht_capab
Jouni Malinen [Mon, 24 Nov 2008 14:11:19 +0000 (16:11 +0200)]
Rename [40HT] to [HT40] in ht_capab

15 years agoFixed HT Capabilities Info byte order processing for big endian CPUs
Jouni Malinen [Mon, 24 Nov 2008 14:06:18 +0000 (16:06 +0200)]
Fixed HT Capabilities Info byte order processing for big endian CPUs

15 years agoAdded IEEE 802.11n HT capability configuration (ht_capab)
Jouni Malinen [Mon, 24 Nov 2008 13:44:25 +0000 (15:44 +0200)]
Added IEEE 802.11n HT capability configuration (ht_capab)

15 years agoUpdated HT Capabilities Info field names to match with 802.11n/D7.0
Jouni Malinen [Mon, 24 Nov 2008 13:08:02 +0000 (15:08 +0200)]
Updated HT Capabilities Info field names to match with 802.11n/D7.0

15 years agoUpdated OpenSSL 0.9.8i patch to use new session ticket override API
Jouni Malinen [Sun, 23 Nov 2008 19:18:26 +0000 (21:18 +0200)]
Updated OpenSSL 0.9.8i patch to use new session ticket override API

The patch for 0.9.9 was merged into the upstream OpenSSL 0.9.9 tree and
is not needed for EAP-FAST support with that OpenSSL version. The patch
for 0.9.8i is now using the same API that was included in 0.9.9.

15 years agoUse SSL_F_SSL_SET_SESSION_TICKET_EXT instead of OPENSSL_VERSION_NUMBER
Jouni Malinen [Sun, 23 Nov 2008 19:14:43 +0000 (21:14 +0200)]
Use SSL_F_SSL_SET_SESSION_TICKET_EXT instead of OPENSSL_VERSION_NUMBER
to figure out whether to use the new session ticket override API with
OpenSSL.

15 years agoReject GPSK-3 if ID_Server in it does not match with the value in GPSK-1
Jouni Malinen [Sun, 23 Nov 2008 18:06:13 +0000 (20:06 +0200)]
Reject GPSK-3 if ID_Server in it does not match with the value in GPSK-1

15 years agoAdd a .gitignore for the new wps directory.
Jouni Malinen [Sun, 23 Nov 2008 17:40:37 +0000 (19:40 +0200)]
Add a .gitignore for the new wps directory.

15 years agoAdded preliminary Wi-Fi Protected Setup (WPS) implementation
Jouni Malinen [Sun, 23 Nov 2008 17:34:26 +0000 (19:34 +0200)]
Added preliminary Wi-Fi Protected Setup (WPS) implementation

This adds WPS support for both hostapd and wpa_supplicant. Both programs
can be configured to act as WPS Enrollee and Registrar. Both PBC and PIN
methods are supported.

Currently, hostapd has more complete configuration option for WPS
parameters and wpa_supplicant configuration style will likely change in
the future. External Registrars are not yet supported in hostapd or
wpa_supplicant. While wpa_supplicant has initial support for acting as
an Registrar to configure an AP, this is still using number of hardcoded
parameters which will need to be made configurable for proper operation.

15 years agoPreparations for 0.6.6 release hostap_0_6_6
Jouni Malinen [Sun, 23 Nov 2008 15:02:06 +0000 (17:02 +0200)]
Preparations for 0.6.6 release

15 years agoPreparations for 0.6.6 release
Jouni Malinen [Sun, 23 Nov 2008 15:00:52 +0000 (17:00 +0200)]
Preparations for 0.6.6 release

15 years agoSimplified RADIUS accounting id usage
Jouni Malinen [Sun, 23 Nov 2008 09:12:17 +0000 (11:12 +0200)]
Simplified RADIUS accounting id usage

Changed accounting_sta_start() to call accounting_sta_get_id()
internally in accounting.c so that external callers do not need to do
anything to allocate unique accounting id. When starting a new session,
a unique identifier is needed anyway, so no need to keep these
operations separate.

15 years agoUse SM_ENTER_GLOBAL to clean up EAPOL state machine debug messages
Jouni Malinen [Sun, 23 Nov 2008 09:01:28 +0000 (11:01 +0200)]
Use SM_ENTER_GLOBAL to clean up EAPOL state machine debug messages

This removes unnecessary messages about entering REAUTH_TIMER INITIALIZE
state every second when a STA is in unauthenticated state.

15 years agoAllocate new Acct-Session-Id on EAPOL-Logoff
Jouni Malinen [Sun, 23 Nov 2008 08:47:36 +0000 (10:47 +0200)]
Allocate new Acct-Session-Id on EAPOL-Logoff

Stop accounting session on EAPOL-Logoff and use new Acct-Session-Id if
STA authenticates again within same association after this.

15 years agoFixed listen interval configuration for nl80211 drivers
Jouni Malinen [Sat, 22 Nov 2008 19:20:27 +0000 (21:20 +0200)]
Fixed listen interval configuration for nl80211 drivers

Need to update the struct sta_info value, too, and not only the local
variable used in handle_assoc()..

15 years agoAdd more verbose debug output for GSM-Milenage use (RAND,SRES,Kc)
Jouni Malinen [Sat, 22 Nov 2008 12:06:58 +0000 (14:06 +0200)]
Add more verbose debug output for GSM-Milenage use (RAND,SRES,Kc)

15 years agoRemove experimental non-AP STA code from hostapd
Jouni Malinen [Fri, 21 Nov 2008 18:48:58 +0000 (20:48 +0200)]
Remove experimental non-AP STA code from hostapd

This was used to allow hostapd to associate as a non-AP STA to another
AP one the same channel while still acting as an AP with the Host AP
driver. This was very experimental and did not work with all firmware
versions. Nowadays, much better way of doing this is to use mac80211
virtual non-AP STA interface. As such, this experimental code can be
removed from hostapd to reduce the code size and make MLME code easier
to understand since it is now only handling AP functionality.

15 years agoRemove overly complex hostapd setup sequence with n+1 callbacks
Jouni Malinen [Fri, 21 Nov 2008 18:39:33 +0000 (20:39 +0200)]
Remove overly complex hostapd setup sequence with n+1 callbacks

This code was originally added as a mechanism to handle long waits
during channel selection and/or radar detection. It is not currently
really used and makes the setup sequence nearly impossible to
understand. Let's get rid of the unwanted complexity. This needs to be
redesigned if it is ever needed again.

15 years agoRemoved forgotten register_drivers() prototype
Jouni Malinen [Fri, 21 Nov 2008 17:51:06 +0000 (19:51 +0200)]
Removed forgotten register_drivers() prototype

Driver registration style was changed long time ago and this is not used
anymore.

15 years agoRemoved partial IEEE 802.11h implementation
Jouni Malinen [Fri, 21 Nov 2008 17:45:20 +0000 (19:45 +0200)]
Removed partial IEEE 802.11h implementation

This code was not finished and did not work with the current mac80211
design. In order to avoid confusing users, it is better to remove this
completely for now and look at new implementation to work with mac80211.

15 years agoRemoved now unused reconfig variables.
Jouni Malinen [Fri, 21 Nov 2008 17:31:54 +0000 (19:31 +0200)]
Removed now unused reconfig variables.

15 years agoreconfig.c file was not used at all, so remove it.
Jouni Malinen [Fri, 21 Nov 2008 17:28:45 +0000 (19:28 +0200)]
reconfig.c file was not used at all, so remove it.

This implementation of reconfiguration is way too complex. Something
simpler should be implemented to allow dynamic configuration changes.

15 years agoAdded an attribution based on the original SSLeay license for OpenSSL.
Jouni Malinen [Fri, 21 Nov 2008 13:54:35 +0000 (15:54 +0200)]
Added an attribution based on the original SSLeay license for OpenSSL.

15 years agoFixed hostapd build without l2_packet (e.g., RADIUS server only).
Jouni Malinen [Fri, 21 Nov 2008 13:44:00 +0000 (15:44 +0200)]
Fixed hostapd build without l2_packet (e.g., RADIUS server only).

15 years agoFixed canceling of PMKSA caching with driver generated RSN IE
Jouni Malinen [Fri, 21 Nov 2008 13:31:25 +0000 (15:31 +0200)]
Fixed canceling of PMKSA caching with driver generated RSN IE

It looks like some Windows NDIS drivers (e.g., Intel) do not clear the
PMKID list even when wpa_supplicant explicitly sets the list to be
empty. In such a case, the driver ends up trying to use PMKSA caching
with the AP and wpa_supplicant may not have the PMK that would be needed
to complete 4-way handshake.

RSN processing already had some code for aborting PMKSA caching by
sending EAPOL-Start. However, this was not triggered in this particular
case where the driver generates the RSN IE. With this change, this case
is included, too, and the failed PMKSA caching attempt is cleanly
canceled and wpa_supplicant can fall back to full EAP authentication.

15 years agoRemove the unwanted Windows console from the Windows binary version of wpa_gui
Jouni Malinen [Fri, 21 Nov 2008 12:26:11 +0000 (14:26 +0200)]
Remove the unwanted Windows console from the Windows binary version of wpa_gui

15 years agoSilence printf() calls in wpa_gui to avoid stdout output from a GUI program
Jouni Malinen [Fri, 21 Nov 2008 12:05:37 +0000 (14:05 +0200)]
Silence printf() calls in wpa_gui to avoid stdout output from a GUI program

15 years agowpa_gui: Add a PNG version of the tray icon for Windows binary build
Jouni Malinen [Fri, 21 Nov 2008 11:58:12 +0000 (13:58 +0200)]
wpa_gui: Add a PNG version of the tray icon for Windows binary build

It looks like Qt does not support SVG format by default on Windows and
it was not trivial to add the plugin into the build, so for now, build a
16x16 PNG icon file for Windows binary to avoid showing an invisible
icon in the tray.

15 years agoFixed EAP-TLS message fragmentation for the last TLS message
Jouni Malinen [Thu, 20 Nov 2008 17:39:35 +0000 (19:39 +0200)]
Fixed EAP-TLS message fragmentation for the last TLS message

It the message was large enough to require fragmentation (e.g., if a large
Session Ticket data is included), More Fragment flag was set, but no
more fragments were actually sent (i.e., Access-Accept was sent out).

15 years agoFixed Milenage debug output to use correct length for IK and CK
Jouni Malinen [Thu, 20 Nov 2008 13:45:31 +0000 (15:45 +0200)]
Fixed Milenage debug output to use correct length for IK and CK

15 years agoFixed EAPA-AKA warning message about AT_RES length to use bits
Jouni Malinen [Thu, 20 Nov 2008 13:23:51 +0000 (15:23 +0200)]
Fixed EAPA-AKA warning message about AT_RES length to use bits

15 years agoChanged PEAPv0 cryptobinding to be disabled by default
Jouni Malinen [Thu, 20 Nov 2008 10:49:34 +0000 (12:49 +0200)]
Changed PEAPv0 cryptobinding to be disabled by default

There are some interoperability issues with Windows Server 2008 NPS, so
better disable cryptobinding use by default for now.

15 years agoFixed size_t printf format for 64-bit builds
Jouni Malinen [Wed, 19 Nov 2008 19:21:34 +0000 (21:21 +0200)]
Fixed size_t printf format for 64-bit builds

15 years agoFixed a bug in read -> _read cleanup; one missed change
Jouke Witteveen [Wed, 19 Nov 2008 19:20:24 +0000 (21:20 +0200)]
Fixed a bug in read -> _read cleanup; one missed change

15 years agoEAP-PEAP: Copy Binding nonce from cryptobinding request to reply
Jouni Malinen [Wed, 19 Nov 2008 17:25:14 +0000 (19:25 +0200)]
EAP-PEAP: Copy Binding nonce from cryptobinding request to reply

It looks like [MS-PEAP] 3.2.5.6 points towards this being the expected
behavior (however, that chapter is very confusing).

In addition, remove Cryptobinding TLV from response if the received
Cryptobinding TLV is not valid. Add some more debug messages to the case
where the received Cryptobinding TLV is found invalid.

15 years agoSeparate OpenSSL engine configuration for Phase 2
Carolin Latze [Tue, 18 Nov 2008 14:53:32 +0000 (16:53 +0200)]
Separate OpenSSL engine configuration for Phase 2

I fixed the engine issue in phase2 of EAP-TTLS. The problem was that you
only defined one engine variable, which was read already in phase1. I
defined some new variables:

engine2
engine2_id
pin2

and added support to read those in phase2 wheres all the engine
variables without number are only read in phase1. That solved it and I
am now able to use an engine also in EAP-TTLS phase2.

15 years agoroboswitch: Minor coding style cleanup
Jouni Malinen [Tue, 18 Nov 2008 14:35:08 +0000 (16:35 +0200)]
roboswitch: Minor coding style cleanup

15 years agoAdd RoboSwitch driver interface for wpa_supplicant
Jouke Witteveen [Tue, 18 Nov 2008 14:30:32 +0000 (16:30 +0200)]
Add RoboSwitch driver interface for wpa_supplicant

Find attached the patch that creates a new driver: roboswitch. This
driver adds support for wired authentication with a Broadcom
RoboSwitch chipset. For example it is now possible to do wired
authentication with a Linksys WRT54G router running OpenWRT.

LIMITATIONS
- At the moment the driver does not support the BCM5365 series (though
adding it requires just some register tweaks).
- The driver is also limited to Linux (this is a far more technical
restriction).
- In order to compile against a 2.4 series you need to edit
include/linux/mii.h and change all references to "u16" in "__u16". I
have submitted a patch upstream that will fix this in a future version
of the 2.4 kernel. [These modifications (and more) are now included in
the kernel source and can be found in versions 2.4.37-rc2 and up.]

USAGE
- Usage is similar to the wired driver. Choose the interfacename of
the vlan that contains your desired authentication port on the router.
This name must be formatted as <interface>.<vlan>, which is the
default on all systems I know.

15 years agoUpdated userspace MLME instructions for current mac80211
Jouni Malinen [Tue, 18 Nov 2008 13:45:25 +0000 (15:45 +0200)]
Updated userspace MLME instructions for current mac80211

Remove the old code from driver_wext.c since the private ioctl interface is
never going to be used with mac80211. driver_nl80211.c has an
implementation than can be used with mac80211 (with two external patches to
enable userspace MLME configuration are still required, though).

15 years agoRemove extra typedefs since they do not seem to be needed anymore
Jouni Malinen [Tue, 18 Nov 2008 13:06:03 +0000 (15:06 +0200)]
Remove extra typedefs since they do not seem to be needed anymore

These typedefs were causing build issues with new kernel/C library headers,
so lets get rid of them since they do not seem to be needed anymore. This
applies only if CONFIG_FULL_DYNAMIC_VLAN is enabled which is not even
mentioned in the defconfig file, so this should not change behavior more
most users.

15 years agoImproved the error message for passive scan not being available
Jouni Malinen [Tue, 18 Nov 2008 13:01:24 +0000 (15:01 +0200)]
Improved the error message for passive scan not being available

If the driver wrapper does not implement passive_scan handler, do not try
to use strerror() to figure out what the error meant. This is not really an
error that the user should be notified about.

15 years agodriver_nl80211: Remove monitor interface if AP initialization fails
Jouni Malinen [Tue, 18 Nov 2008 12:55:32 +0000 (14:55 +0200)]
driver_nl80211: Remove monitor interface if AP initialization fails

15 years agoChanged channel flags configuration to read the information from the driver
Jouni Malinen [Tue, 18 Nov 2008 12:51:43 +0000 (14:51 +0200)]
Changed channel flags configuration to read the information from the driver
(e.g., via driver_nl80211 when using mac80211) instead of using hostapd as
the source of the regulatory information (i.e., information from CRDA is
now used with mac80211); this allows 5 GHz channels to be used with hostapd
(if allowed in the current regulatory domain).

15 years agoOpenSSL 0.9.9 API change for EAP-FAST session ticket overriding API
Jouni Malinen [Sun, 16 Nov 2008 19:29:12 +0000 (21:29 +0200)]
OpenSSL 0.9.9 API change for EAP-FAST session ticket overriding API

Updated OpenSSL code for EAP-FAST to use an updated version of the
session ticket overriding API that was included into the upstream
OpenSSL 0.9.9 tree on 2008-11-15 (no additional OpenSSL patch is
needed with that version anymore).

15 years agoUpdated interop results for ACS 4.2
Jouni Malinen [Sun, 16 Nov 2008 09:30:34 +0000 (11:30 +0200)]
Updated interop results for ACS 4.2

15 years agoEAP-FAST: Reorder TLVs in PAC Acknowledgment to fix interop issues
Jouni Malinen [Sun, 16 Nov 2008 09:10:29 +0000 (11:10 +0200)]
EAP-FAST: Reorder TLVs in PAC Acknowledgment to fix interop issues

It looks like ACS did not like PAC Acknowledgment TLV before Result TLV, so
reorder the TLVs to match the order shown in a
draft-cam-winget-eap-fast-provisioning-09.txt example. This allows
authenticated provisioning to be terminated with Access-Accept (if ACS has
that option enabled). Previously, provisioning was otherwise successful,
but the server rejected connection due to not understanding the PAC Ack
("Invalid TEAP Data recieved").

15 years agoModified the OpenSSL patch to use session ticket -specific function
Jouni Malinen [Wed, 12 Nov 2008 04:15:27 +0000 (06:15 +0200)]
Modified the OpenSSL patch to use session ticket -specific function

This is the first step in replacing SSL_set_hello_extension() with a new
SSL_set_session_ticket_ext() function that can only be used to override the
session ticket extension, not any arbitrary TLS extension.

SSL_set_hello_extension() is still present as a simple wrapper in this
version to avoid changing the API and to make testing with wpa_supplicant
and hostapd easier. It can be eventually removed when the patch is going in
into OpenSSL distribution.

15 years agoUpdated indentation in the patch to match style used elsewhere in OpenSSL
Jouni Malinen [Wed, 12 Nov 2008 03:06:03 +0000 (05:06 +0200)]
Updated indentation in the patch to match style used elsewhere in OpenSSL

15 years agowpa_gui-qt4: tweak icon Makefile
Kel Modderman [Tue, 11 Nov 2008 15:41:19 +0000 (17:41 +0200)]
wpa_gui-qt4: tweak icon Makefile

Output the xpm icons in more convenient location.

Signed-off-by: Kel Modderman <kel@otaku42.de>
15 years agowpa_gui-qt4: FTBFS with GCC 4.4: missing #include
Martin Michlmayr [Tue, 11 Nov 2008 15:36:37 +0000 (17:36 +0200)]
wpa_gui-qt4: FTBFS with GCC 4.4: missing #include

GCC 4.4 cleaned up some more C++ headers.  You always have to #include
headers directly and cannot rely for things to be included indirectly.

> g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DCONFIG_CTRL_IFACE
-DCONFIG_CTRL_IFACE_UNIX -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui
-I/usr/include/qt4 -I. -I.. -I../../src/utils -I../../src/common -I.moc -I.ui -o
.obj/wpagui.o wpagui.cpp
> wpagui.cpp: In constructor 'WpaGui::WpaGui(QWidget*, const char*,
Qt::WFlags)':
> wpagui.cpp:98: error: 'printf' was not declared in this scope

From: Martin Michlmayr <tbm@cyrius.com>
Bug:  http://bugs.debian.org/505041

Signed-off-by: Kel Modderman <kel@otaku42.de>
15 years agoAdded an optional mitigation mechanism for certain attacks against TKIP by
Jouni Malinen [Sat, 8 Nov 2008 02:43:12 +0000 (04:43 +0200)]
Added an optional mitigation mechanism for certain attacks against TKIP by
delaying Michael MIC error reports by a random amount of time between 0 and
60 seconds if multiple Michael MIC failures are detected with the same PTK
(i.e., the Authenticator does not rekey PTK on first failure report). This
is disabled by default and can be enabled with a build option
CONFIG_DELAYED_MIC_ERROR_REPORT=y in .config.

This may help in making a chopchop attack take much longer time by forcing
the attacker to wait 60 seconds before knowing whether a modified frame
resulted in a MIC failure.

15 years agoEAP-SIM/AKA: fixed initialization to verify PIN even if identity is set
Jouni Malinen [Fri, 7 Nov 2008 18:09:44 +0000 (20:09 +0200)]
EAP-SIM/AKA: fixed initialization to verify PIN even if identity is set

Previously, hardcoded identity in the network configuration skipped both
IMSI reading and PIN verification. This broke cases where PIN is needed for
GSM/UMTS authentication. Now, only IMSI reading is skipped if identity is
hardcoded.

15 years agoEAP-AKA: Validate RES Length field in AT_RES
Jouni Malinen [Fri, 7 Nov 2008 06:34:07 +0000 (08:34 +0200)]
EAP-AKA: Validate RES Length field in AT_RES

This change breaks interoperability with older wpa_supplicant versions
(everything up to and including wpa_supplicant 0.5.10 and 0.6.5) which
incorrectly used this field as number of bytes, not bits, in RES.

15 years agoFixed EAP-AKA RES Length field in AT_RES as length in bits, not bytes
Jouni Malinen [Fri, 7 Nov 2008 06:30:34 +0000 (08:30 +0200)]
Fixed EAP-AKA RES Length field in AT_RES as length in bits, not bytes

15 years agoEAP-FAST server: allow expired PAC for PAC refresh
Jouni Malinen [Thu, 6 Nov 2008 20:57:09 +0000 (22:57 +0200)]
EAP-FAST server: allow expired PAC for PAC refresh

Instead of falling back to full TLS handshake on expired PAC, allow the
PAC to be used to allow a PAC update with some level of server
authentication (i.e., do not fall back to full TLS handshake since we
cannot be sure that the peer would be able to validate server certificate
now). However, reject the authentication since the PAC was not valid
anymore. Peer can connect again with the newly provisioned PAC after this.

15 years agoEAP-FAST: Include Tunnel PAC request only after EAP authentication
Jouni Malinen [Thu, 6 Nov 2008 19:07:53 +0000 (21:07 +0200)]
EAP-FAST: Include Tunnel PAC request only after EAP authentication

15 years agoAdded support for enforcing frequent PTK rekeying
Jouni Malinen [Thu, 6 Nov 2008 17:57:21 +0000 (19:57 +0200)]
Added support for enforcing frequent PTK rekeying

Added a new configuration option, wpa_ptk_rekey, that can be used to
enforce frequent PTK rekeying, e.g., to mitigate some attacks against TKIP
deficiencies. This can be set either by the Authenticator (to initiate
periodic 4-way handshake to rekey PTK) or by the Supplicant (to request
Authenticator to rekey PTK).

With both wpa_ptk_rekey and wpa_group_rekey (in hostapd) set to 600, TKIP
keys will not be used for more than 10 minutes which may make some attacks
against TKIP more difficult to implement.

15 years agoAdded Milenage-GSM simulator for EAP-SIM
Jouni Malinen [Thu, 6 Nov 2008 02:21:32 +0000 (04:21 +0200)]
Added Milenage-GSM simulator for EAP-SIM

CONFIG_SIM_SIMULATOR=y in .config and password="Ki:OPc" in network config
to enable.

15 years agodriver_ndis: Added a workaround for a driver that removes SSID IE in scan
Jouni Malinen [Wed, 5 Nov 2008 21:44:26 +0000 (23:44 +0200)]
driver_ndis: Added a workaround for a driver that removes SSID IE in scan

A driver was found to remove SSID IE from NDIS_WLAN_BSSID_EX IEs, but the
correct SSID is included in NDIS_802_11_SSID structure inside the BSSID
data. If this is seen in scan results, create a matching SSID IE and add it
to the end of IEs to fix scan result parsing.

15 years agoAdded Milenage USIM emulator for EAP-AKA (can be used to simulate test
Jouni Malinen [Wed, 5 Nov 2008 21:02:13 +0000 (23:02 +0200)]
Added Milenage USIM emulator for EAP-AKA (can be used to simulate test
USIM card with a known private key; enable with CONFIG_USIM_SIMULATOR in
.config and password="Ki:OPc:SQN" in network configuration).

15 years agoPreparations for 0.6.5 release hostap_0_6_5
Jouni Malinen [Sat, 1 Nov 2008 15:20:25 +0000 (17:20 +0200)]
Preparations for 0.6.5 release

15 years agoFixed fwrite error path in eap_fast_write_pac not to free buf
Jouni Malinen [Sat, 1 Nov 2008 15:09:28 +0000 (17:09 +0200)]
Fixed fwrite error path in eap_fast_write_pac not to free buf

Caller expects the buffer to be allocated on error, so eap_fast_write_pac()
must be consistent with its behavior on error paths.