wpasupplicant
15 years agoAdd Beacon configuration for wpa_supplicant AP mode
Jouni Malinen [Thu, 2 Apr 2009 13:09:48 +0000 (16:09 +0300)]
Add Beacon configuration for wpa_supplicant AP mode

15 years agoMerge set_dtim_period() into set_beacon()
Jouni Malinen [Thu, 2 Apr 2009 13:05:21 +0000 (16:05 +0300)]
Merge set_dtim_period() into set_beacon()

No need for a separate driver_ops handler for setting DTIM period since
this is always set at the same time with the Beacon data. Beacon
interval is still set separately since it is consider per-radio
parameter (Beacon data and DTIM period are per-BSS parameters).

15 years agonl80211: Add IGTK (AES-128-CMAC) configuration
Jouni Malinen [Wed, 1 Apr 2009 14:14:07 +0000 (17:14 +0300)]
nl80211: Add IGTK (AES-128-CMAC) configuration

This was somehow forgotten from IEEE 802.11w/MFP patches from
wpa_supplicant -Dnl80211.

15 years agoSME: Add processing for rejected associations
Jouni Malinen [Wed, 1 Apr 2009 14:10:36 +0000 (17:10 +0300)]
SME: Add processing for rejected associations

15 years agoFix SHA-256-based KDF when using CCMP as the pairwise cipher
Jouni Malinen [Wed, 1 Apr 2009 09:04:36 +0000 (12:04 +0300)]
Fix SHA-256-based KDF when using CCMP as the pairwise cipher

IEEE 802.11r KDF uses key length in the derivation and as such, the PTK
length must be specified correctly. The previous version was deriving
using 512-bit PTK regardless of the negotiated cipher suite; this works
for TKIP, but not for CCMP. Update the code to use proper PTK length
based on the pairwise cipher.

This fixed PTK derivation for both IEEE 802.11r and IEEE 802.11w (when
using AKMP that specifies SHA-256-based key derivation). The fixed
version does not interoperate with the previous versions. [Bug 307]

15 years agonl80211: Remove forgotten comment about SIOCSIWMODE
Jouni Malinen [Tue, 31 Mar 2009 12:25:10 +0000 (15:25 +0300)]
nl80211: Remove forgotten comment about SIOCSIWMODE

15 years agonl80211: Remove SIOCGIWRANGE and assume TKIP+CCMP+WPA+WPA2
Jouni Malinen [Tue, 31 Mar 2009 11:25:15 +0000 (14:25 +0300)]
nl80211: Remove SIOCGIWRANGE and assume TKIP+CCMP+WPA+WPA2

All currently known drivers that use nl80211/cfg80211 support these, so
no need to use old WEXT ioctl for figuring out capabilities.

15 years agonl80211: Remove WEXT Michael MIC event processing
Jouni Malinen [Tue, 31 Mar 2009 11:14:16 +0000 (14:14 +0300)]
nl80211: Remove WEXT Michael MIC event processing

mac80211 does not use this type of Michael MIC event, so this is not
really used and proper Michael MIC failure processing will be added
using an nl80211 event once that gets added into wireless-testing.git.

15 years agonl80211: Remove WEXT_COMPAT
Jouni Malinen [Tue, 31 Mar 2009 11:09:30 +0000 (14:09 +0300)]
nl80211: Remove WEXT_COMPAT

It looks like both new nl80211 operations (scan and auth/assoc) end up
being added in Linux 2.6.30, so we do not need to maintain the backwards
compatibility code in wpa_supplicant.

15 years agoWPS: Fix local configuration update after AP configuration
Jouni Malinen [Mon, 30 Mar 2009 16:00:55 +0000 (19:00 +0300)]
WPS: Fix local configuration update after AP configuration

Update credential to only include a single authentication and
encryption type in case the AP configuration includes more than one
option. Without this, the credential would be rejected if the AP was
configured to allow more than one authentication type.

15 years agoWPS: Fix hostapd runtime WPS configuration after Enrollee run
Jouni Malinen [Mon, 30 Mar 2009 15:48:41 +0000 (18:48 +0300)]
WPS: Fix hostapd runtime WPS configuration after Enrollee run

If the AP is configured with WPS, we need to update the local WPS data
in order to provide correct credentials for Enrollees.

15 years agoMake channel number available to set_freq()
Jouni Malinen [Mon, 30 Mar 2009 14:55:37 +0000 (17:55 +0300)]
Make channel number available to set_freq()

Since we have the channel number, we could as well pass it to the driver
wrapper should there be drivers that use channel number instead of
frequency.

15 years agoAdd needed AP driver wrappers (most of which are still to-do)
Jouni Malinen [Fri, 27 Mar 2009 15:13:54 +0000 (17:13 +0200)]
Add needed AP driver wrappers (most of which are still to-do)

15 years agoSet hostapd configuration based on wpa_supplicant AP mode config
Jouni Malinen [Fri, 27 Mar 2009 14:45:47 +0000 (16:45 +0200)]
Set hostapd configuration based on wpa_supplicant AP mode config

15 years agoUpdate driver SSID and 802.1X/WPA parameters on configuration reload
Jouni Malinen [Fri, 27 Mar 2009 14:10:14 +0000 (16:10 +0200)]
Update driver SSID and 802.1X/WPA parameters on configuration reload

This is needed for WPS AP reconfiguration with driver wrappers that do
not use hostapd MLME.

15 years agoFix: Loop in driver selection routine
Masashi Honma [Fri, 27 Mar 2009 08:49:47 +0000 (10:49 +0200)]
Fix: Loop in driver selection routine

Increment an index variable not 'i' but 'j'.

(this was broken yesterday by a cleanup change
3067ac2bb82553c99cb84e32ede82de434ee1070)

15 years agoAdd support for specifying subset of enabled frequencies to scan
Jouni Malinen [Thu, 26 Mar 2009 19:55:01 +0000 (21:55 +0200)]
Add support for specifying subset of enabled frequencies to scan

A new network block parameter, scan_freq, can be used to specify subset
of frequencies to scan. This can speed up scanning process considerably
if it is known that only a small subset of channels is actually used in
the network. A union of configured frequencies for all enabled network
blocks is used in scan requests.

Currently, only driver_nl80211.c has support for this functionality.

For example, following parameter marks 2.4 GHz channels 1, 6, 11 to be
scanned: scan_freq=2412 2437 2462

15 years agoAdd preliminary hostapd data structure initialization for AP mode
Jouni Malinen [Thu, 26 Mar 2009 18:37:05 +0000 (20:37 +0200)]
Add preliminary hostapd data structure initialization for AP mode

wpa_supplicant can now initialize hostapd data structures when mode=2 is
used to set up an AP. The hostapd configuration is not yet set based on
wpa_supplicant network configuration block. In addition, the glue code
for hostapd driver_ops needs number of functions that will be needed for
AP functionality.

15 years agoRename struct wpa_driver_ops to hapd_driver_ops
Jouni Malinen [Thu, 26 Mar 2009 18:35:49 +0000 (20:35 +0200)]
Rename struct wpa_driver_ops to hapd_driver_ops

This avoids conflicts with the wpa_supplicant structure with the same
name.

15 years agoMove hostapd_init() into main.c
Jouni Malinen [Thu, 26 Mar 2009 17:23:41 +0000 (19:23 +0200)]
Move hostapd_init() into main.c

15 years agoGet rid of couple of shadowed variable warnings
Jouni Malinen [Thu, 26 Mar 2009 17:23:02 +0000 (19:23 +0200)]
Get rid of couple of shadowed variable warnings

15 years agoRemove shadowed variable
Jouni Malinen [Thu, 26 Mar 2009 17:09:25 +0000 (19:09 +0200)]
Remove shadowed variable

15 years agoMove main() and configuration file related functions into main.c
Jouni Malinen [Thu, 26 Mar 2009 17:06:02 +0000 (19:06 +0200)]
Move main() and configuration file related functions into main.c

This makes it easier to share hostapd.c with wpa_supplicant

15 years agoMove wpa_supplicant_create_ap() into ap.c
Jouni Malinen [Thu, 26 Mar 2009 14:08:17 +0000 (16:08 +0200)]
Move wpa_supplicant_create_ap() into ap.c

15 years agoAllow hostapd/config.h and wpa_supplicant/config_ssid.h coexist
Jouni Malinen [Thu, 26 Mar 2009 14:06:15 +0000 (16:06 +0200)]
Allow hostapd/config.h and wpa_supplicant/config_ssid.h coexist

Move the shared IEEE 802.11w enum definition into src/common/defs.h to
avoid redefinition when both configuration structures are included into
the same file.

15 years agoFix WPS UPnP SSDP on 32-bit targets
Jouni Malinen [Thu, 26 Mar 2009 13:32:02 +0000 (15:32 +0200)]
Fix WPS UPnP SSDP on 32-bit targets

The memcpy was using incorrect size (of pointer; should have been of
data structure) for the client address. This ended up working on 64-bit
targets, but left part of the address uninitialized on 32-bit targets.

15 years agoMove hostapd driver_ops to use similar set_key with wpa_supplicant
Jouni Malinen [Wed, 25 Mar 2009 15:49:22 +0000 (17:49 +0200)]
Move hostapd driver_ops to use similar set_key with wpa_supplicant

15 years agoReplace deprecated add_sta() with add_sta2()
Jouni Malinen [Wed, 25 Mar 2009 14:55:09 +0000 (16:55 +0200)]
Replace deprecated add_sta() with add_sta2()

15 years agoRemove deprecated version of set_freq() and rename the new version
Jouni Malinen [Wed, 25 Mar 2009 14:48:22 +0000 (16:48 +0200)]
Remove deprecated version of set_freq() and rename the new version

15 years agoRemove unused set_assoc_ap() wpa_driver_ops
Jouni Malinen [Wed, 25 Mar 2009 14:45:57 +0000 (16:45 +0200)]
Remove unused set_assoc_ap() wpa_driver_ops

The need for this was removed with the experimental
hostapd-as-a-client-STA functionality.

15 years agoFix wpa_supplicant AP build after hostapd header file cleanup
Jouni Malinen [Wed, 25 Mar 2009 14:35:26 +0000 (16:35 +0200)]
Fix wpa_supplicant AP build after hostapd header file cleanup

15 years agoInclude config.h explicitly into files that actually use it
Jouni Malinen [Wed, 25 Mar 2009 14:29:00 +0000 (16:29 +0200)]
Include config.h explicitly into files that actually use it

hostapd.h does not need to include config.h.

15 years agoMove STA entry structure into sta_info.h and remove ap.h
Jouni Malinen [Wed, 25 Mar 2009 14:13:35 +0000 (16:13 +0200)]
Move STA entry structure into sta_info.h and remove ap.h

This cleans up some of the hostapd include file usage and only includes
the needed STA flags into driver wrappers.

15 years agoReplace sta_aid array with bitfield
Jouni Malinen [Wed, 25 Mar 2009 13:54:25 +0000 (15:54 +0200)]
Replace sta_aid array with bitfield

The actual pointer to struct sta_info was not really used and it is
enough to use a single bit to indicate whether an AID is allocated. This
makes the BSS data take less memory while making the allocation routine
faster and removing the arbitrary MAX_AID_TABLE_SIZE limit of 128 STAs.

15 years agoMove AID derivation into a separate function
Jouni Malinen [Wed, 25 Mar 2009 13:35:00 +0000 (15:35 +0200)]
Move AID derivation into a separate function

15 years agoLink in AP functionality from hostapd when CONFIG_AP=y
Jouni Malinen [Wed, 25 Mar 2009 10:23:42 +0000 (12:23 +0200)]
Link in AP functionality from hostapd when CONFIG_AP=y

This is only allowing the code to be compiled and linked in; the actual
functionality is not yet enabled.

15 years agoRename EAP server defines from EAP_* to EAP_SERVER_*
Jouni Malinen [Wed, 25 Mar 2009 10:06:19 +0000 (12:06 +0200)]
Rename EAP server defines from EAP_* to EAP_SERVER_*

This allows separate set of EAP server and peer methods to be built into
a single binary.

15 years agoInitial step in adding simple AP mode support into wpa_supplicant
Jouni Malinen [Wed, 25 Mar 2009 09:38:47 +0000 (11:38 +0200)]
Initial step in adding simple AP mode support into wpa_supplicant

This version is adding the configuration option (mode=2) for this and
driver capability reporting to figure out whether AP mode can be used.
However, this does not actually implement any real functionality yet.

15 years agoRemove local variable shadowing to avoid a warning
Jouni Malinen [Wed, 25 Mar 2009 09:36:09 +0000 (11:36 +0200)]
Remove local variable shadowing to avoid a warning

15 years agodriver_nl80211: Fix initial iftype change
Jouni Malinen [Tue, 24 Mar 2009 18:50:40 +0000 (20:50 +0200)]
driver_nl80211: Fix initial iftype change

Need to set drv->ifindex before calling set_mode(). In addition, set the
mode before setting the interface up to avoid having to set it down
again.

Add more useful error message on mode changes.

15 years agoDeprecate set_drop_unencrypted(), set_auth_alg(), and set_mode()
Jouni Malinen [Tue, 24 Mar 2009 18:06:02 +0000 (20:06 +0200)]
Deprecate set_drop_unencrypted(), set_auth_alg(), and set_mode()

All these driver handlers can be implemented in associate() handler
which gets all the needed information in the parameters structure. The
old functions that provided only a single parameter will be removed
eventually to clean up the driver_ops structure, so driver wrappers
should start using the newer mechanism.

15 years agoPreparations for 0.6.9 release
Jouni Malinen [Mon, 23 Mar 2009 14:42:45 +0000 (16:42 +0200)]
Preparations for 0.6.9 release

15 years agodriver_madwifi: Fix build with old driver versions
Jouni Malinen [Sun, 22 Mar 2009 13:53:46 +0000 (15:53 +0200)]
driver_madwifi: Fix build with old driver versions

Do not reference ie.rsn_ie in wpa_hexdump outside #ifdef MADWIFI_NG.
[Bug 302]

15 years agoFix UNIX domain socket address handling to be more portable
Jouni Malinen [Sat, 21 Mar 2009 20:07:14 +0000 (22:07 +0200)]
Fix UNIX domain socket address handling to be more portable

Remove all fields before sun_path before printing or comparing sun_path
contents. Using offsetof should be portable. In addition, set sun_len
for FreeBSD.

15 years agoFix UNIX domain socket address handling to be more portable
Sam Leffler [Sat, 21 Mar 2009 20:00:27 +0000 (22:00 +0200)]
Fix UNIX domain socket address handling to be more portable

Removing just sun_family is not portable since some systems (e.g.,
FreeBSD) include an additional sun_len field. Using offsetof should be
portable. In addition, set sun_ken for FreeBSD.

15 years agoFix WPS UPnP build for FreeBSD
Jouni Malinen [Sat, 21 Mar 2009 19:00:37 +0000 (21:00 +0200)]
Fix WPS UPnP build for FreeBSD

15 years agoFix FreeBSD build by not adding -ldl
Jouni Malinen [Sat, 21 Mar 2009 18:59:07 +0000 (20:59 +0200)]
Fix FreeBSD build by not adding -ldl

Unlike Linux, FreeBSD does not use libdl.

15 years agoFix driver_bsd.c build for FreeBSD
Jouni Malinen [Sat, 21 Mar 2009 18:58:27 +0000 (20:58 +0200)]
Fix driver_bsd.c build for FreeBSD

15 years agoFix IEEE 802.11r build without CONFIG_CLIENT_MLME
Jouni Malinen [Sat, 21 Mar 2009 18:57:21 +0000 (20:57 +0200)]
Fix IEEE 802.11r build without CONFIG_CLIENT_MLME

15 years agoFix CONFIG_DRIVER_RADIUS_ACL=y build
Jouni Malinen [Sat, 21 Mar 2009 18:56:39 +0000 (20:56 +0200)]
Fix CONFIG_DRIVER_RADIUS_ACL=y build

15 years agonl80211: Make get_ssid behave like get_bssid with SME
Jouni Malinen [Fri, 20 Mar 2009 21:03:18 +0000 (23:03 +0200)]
nl80211: Make get_ssid behave like get_bssid with SME

Use a local copy of SSID instead of WEXT when using wpa_supplicant-based
SME.

15 years agonl80211: Make set_bssid() WEXT_COMPAT
Jouni Malinen [Fri, 20 Mar 2009 20:59:17 +0000 (22:59 +0200)]
nl80211: Make set_bssid() WEXT_COMPAT

15 years agonl80211: Make PMKSA caching candidate event WEXT_COMPAT
Jouni Malinen [Fri, 20 Mar 2009 20:57:46 +0000 (22:57 +0200)]
nl80211: Make PMKSA caching candidate event WEXT_COMPAT

15 years agonl80211: Mark PMKSA cache operations with WEXT_COMPAT
Jouni Malinen [Fri, 20 Mar 2009 20:55:24 +0000 (22:55 +0200)]
nl80211: Mark PMKSA cache operations with WEXT_COMPAT

These are not needed with wpa_supplicant SME.

15 years agonl80211: Fix no-WEXT_COMPAT build
Jouni Malinen [Fri, 20 Mar 2009 20:44:53 +0000 (22:44 +0200)]
nl80211: Fix no-WEXT_COMPAT build

wpa_driver_nl80211_set_ssid() and wpa_driver_nl80211_set_freq() are only
for WEXT_COMPAT now that the user space MLME code is removed.

15 years agoDocument CONFIG_CLIENT_MLME option as specific to test driver
Jouni Malinen [Fri, 20 Mar 2009 20:35:19 +0000 (22:35 +0200)]
Document CONFIG_CLIENT_MLME option as specific to test driver

Since user space MLME is not used with nl80211 anymore, this option is
only of use with driver_test.

15 years agonl80211: Remove user space MLME code
Jouni Malinen [Fri, 20 Mar 2009 20:31:24 +0000 (22:31 +0200)]
nl80211: Remove user space MLME code

This design did not make it into the kernel and the new user space SME
design has removed the need for keeping the experimental code.

15 years agoAdd SME support (separate authentication and association)
Jouni Malinen [Fri, 20 Mar 2009 20:26:41 +0000 (22:26 +0200)]
Add SME support (separate authentication and association)

This can be used, e.g., with mac80211-based Linux drivers with
nl80211. This allows over-the-air FT protocol to be used (IEEE
802.11r).

Since the nl80211 interface needed for this is very recent (added
today  into wireless-testing.git), driver_nl80211.c has backwards
compatibility code that uses WEXT for association if the kernel does
not support the new commands. This compatibility code can be
disabled by defining NO_WEXT_COMPAT. That code will also be removed
at  some point to clean up driver_nl80211.c.

15 years agoUpdate linux/nl80211.h copy based on wireless-testing.git
Jouni Malinen [Fri, 20 Mar 2009 19:28:34 +0000 (21:28 +0200)]
Update linux/nl80211.h copy based on wireless-testing.git

15 years agoFix doxygen function comment
Jouni Malinen [Thu, 19 Mar 2009 19:42:15 +0000 (21:42 +0200)]
Fix doxygen function comment

15 years agoAdd link to mac80211 driver information
Jouni Malinen [Thu, 19 Mar 2009 18:32:45 +0000 (20:32 +0200)]
Add link to mac80211 driver information

15 years agoFix IEEE 802.11r key derivation function to match with the standard
Jouni Malinen [Thu, 19 Mar 2009 13:46:00 +0000 (15:46 +0200)]
Fix IEEE 802.11r key derivation function to match with the standard

IEEE Std 802.11r-2008, 8.5.1.5.2 starts the 'i' counter from 1, not 0.
Note: this breaks interoperability with previous versions. [Bug 303]

15 years agoDetach ctrl_iface monitor if the client socket is removed
Jouni Malinen [Tue, 17 Mar 2009 14:56:30 +0000 (16:56 +0200)]
Detach ctrl_iface monitor if the client socket is removed

No need to wait for 10 errors when using UNIX domain socket; we can
detach the client immediately on ENOENT.

15 years agoTNC: Fix a stray pointer that could cause segfault on error path
Masashi Honma [Mon, 16 Mar 2009 19:01:07 +0000 (21:01 +0200)]
TNC: Fix a stray pointer that could cause segfault on error path

On "eap_tnc_process" function error case, data->in_buf keeps reference
to a local scope variable. For example this will cause segmentation
fault in "eap_tnc_deinit" function "wpabuf_free(data->in_buf)"
statement.

15 years agoUpdate draft-cam-winget-eap-fast-provisioning references to RFC 5422
Jouni Malinen [Sat, 14 Mar 2009 08:30:14 +0000 (10:30 +0200)]
Update draft-cam-winget-eap-fast-provisioning references to RFC 5422

15 years agohostapd: Fix some manual page formatting
Kel Modderman [Fri, 13 Mar 2009 18:49:01 +0000 (20:49 +0200)]
hostapd: Fix some manual page formatting

lintian (Debian package lint tool) found some small deficiencies in
hostapd.8 and hostapd_cli.1.

15 years agoFix TNC with EAP-TTLS
Jouni Malinen [Fri, 13 Mar 2009 16:18:18 +0000 (18:18 +0200)]
Fix TNC with EAP-TTLS

This was broken by 510c02d4a362cd572303fa845b139eacb2dab387 which added
validation of eap_ttls_phase2_eap_init() return value. The main problem
in the code trying to initialize a new phase 2 EAP method
unconditionally; this should only happen if there is a new method in the
inner method sequence.

15 years agoFix segmentation fault on EAP-TTLS phase 2 EAP method init failure
Jouni Malinen [Fri, 13 Mar 2009 15:53:13 +0000 (17:53 +0200)]
Fix segmentation fault on EAP-TTLS phase 2 EAP method init failure

This is based on a patch and report by Masashi Honma
<honma@ictec.co.jp>. The issue is more generic than just TNC, though,
since failure to initialize any phase 2 EAP method can result in NULL
dereference.

15 years agoTNC: Send EAP-Failure on TNC failure
Masashi Honma [Fri, 13 Mar 2009 15:41:58 +0000 (17:41 +0200)]
TNC: Send EAP-Failure on TNC failure

On PEAP(TNC), hostapd integrated RADIUS server doesn't return
EAP-Failure when "Recommendation = none". So, EAP data retransmittion
occurs.

My co-worker "Ryuji Ohba" made below patch.

15 years agoZero struct ifreq data before use in l2_packet_init()
Larry Stefani [Fri, 13 Mar 2009 15:04:33 +0000 (17:04 +0200)]
Zero struct ifreq data before use in l2_packet_init()

[Bug 300]

15 years agoAllow more complex BSSID masks to be used for multi-BSSID
Jouni Malinen [Thu, 12 Mar 2009 20:01:26 +0000 (22:01 +0200)]
Allow more complex BSSID masks to be used for multi-BSSID

If every secondary BSS is configured with a pre-set BSSID, hostapd does
not enforce the BSSID mask requirements anymore, i.e., they are used
only if hostapd is responsible for generating MAC addresses for virtual
interfaces.

15 years agoMove DTIM period configuration into Beacon set operation
Jouni Malinen [Thu, 12 Mar 2009 19:57:08 +0000 (21:57 +0200)]
Move DTIM period configuration into Beacon set operation

This is needed to make mac80211 work with multi-BSS configuration. The
previous design ended up setting DTIM period for secondary BSSes before
setting the Beacon and driver_nl80211.c was not really prepared for
that. Eventually, the Beacon configuration routines should be combined
into a single driver operation, but for now, just moving this call is
the simplest workaround.

15 years agonl80211: Add per-BSS data structure and enable BSS add/remove
Jouni Malinen [Thu, 12 Mar 2009 19:55:42 +0000 (21:55 +0200)]
nl80211: Add per-BSS data structure and enable BSS add/remove

This allows mac80211 to be used for multi-BSSID operations.

15 years agoFT: Fix status code values to match with IEEE 802.11r-2007
Jouni Malinen [Mon, 9 Mar 2009 20:28:30 +0000 (22:28 +0200)]
FT: Fix status code values to match with IEEE 802.11r-2007

It looks like couple of status code values were changed during the
802.11r draft process and these were not updated in source code yet.

15 years agoFT: Add RIC Request processing and RIC Response generation
Jouni Malinen [Mon, 9 Mar 2009 20:25:58 +0000 (22:25 +0200)]
FT: Add RIC Request processing and RIC Response generation

hostapd will now go through the RIC Request and process each RDIE. Only
WMM TSPEC requests are currently supported; all other request
descriptors will be declined.

RIC Response is written by hostapd and verified by wpa_supplicant (MIC
validation). wpa_supplicant does not yet have code to notify the driver
about the resource request results.

15 years agoFT: Add RIC Request generation and validation (but not processing)
Jouni Malinen [Mon, 9 Mar 2009 18:45:17 +0000 (20:45 +0200)]
FT: Add RIC Request generation and validation (but not processing)

This adds first part of FT resource request as part of Reassocition
Request frame (i.e., FT Protocol, not FT Resource Request Protocol).
wpa_supplicant can generate a test resource request when driver_test.c
is used with internal MLME code and hostapd can verify the FTIE MIC
properly with the included RIC Request.

The actual RIC Request IEs are not processed yet and hostapd does not
yet reply with RIC Response (nor would wpa_supplicant be able to
validate the FTIE MIC for a frame with RIC Response).

15 years agoWPS: Add a workaround for static WEP with Windows network probe
Jouni Malinen [Sun, 8 Mar 2009 17:36:02 +0000 (19:36 +0200)]
WPS: Add a workaround for static WEP with Windows network probe

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.

This seems to make Windows ask for a static WEP key when adding a new
network, but at least Windows XP SP3 was still marking IEEE 802.1X
enabled for the network. Anyway, this is better than just leaving the
network configured with IEEE 802.1X and automatic WEP key distribution.

15 years agoAdd a workaround for EAP-FAST with Cisco AP local RADIUS server
Jouni Malinen [Sun, 8 Mar 2009 10:04:39 +0000 (12:04 +0200)]
Add a workaround for EAP-FAST with Cisco AP local RADIUS server

When using the internal TLS implementation, EAP-FAST unauthenticated
provisioning ends up proposing multiple cipher suites. It looks like
Cisco AP (at least 350 and 1200 series) local authentication server does
not know how to search cipher suites from the list and seem to require
that the last entry in the list is the one that it wants to use.
However, TLS specification requires the list to be in the client
preference order. As a workaround, ass anon-DH AES-128-SHA1 again at the
end of the list to allow the Cisco code to find it.

This fixed EAP-FAST provisioning with the following IOS version:
Cisco IOS Software, C350 Software (C350-K9W7-M), Version 12.3(8)JEA3,
RELEASE SOFTWARE (fc2)
Compiled Wed 21-Nov-07 14:08 by ccai

15 years agoFix EAP-FAST only build to include the needed EAPOL implementation
Jouni Malinen [Sun, 8 Mar 2009 09:29:31 +0000 (11:29 +0200)]
Fix EAP-FAST only build to include the needed EAPOL implementation

15 years agodriver_ndis: Detect Native 802.11 drivers (NDIS 6, Vista)
Jouni Malinen [Sat, 7 Mar 2009 21:53:40 +0000 (23:53 +0200)]
driver_ndis: Detect Native 802.11 drivers (NDIS 6, Vista)

This is just there very first step on being able to do something with
wireless LAN on Vista. There is some example code for requesting a scan,
but it does not work in its current form. Anyway, this adds a wpa_printf
noting that Native 802.11 drivers are not yet supported.

15 years agodriver_ndis: Add PAE group address to the multicast address
Jouni Malinen [Sat, 7 Mar 2009 21:10:41 +0000 (23:10 +0200)]
driver_ndis: Add PAE group address to the multicast address

This is done with wired interfaces to fix IEEE 802.1X authentication
when the authenticator uses the group address (which should be happening
with wired Ethernet authentication).

This allows wpa_supplicant to complete wired authentication successfully
on Vista with a NDIS 6 driver, but the change is likely needed for
Windows XP, too.

15 years agoDeterminer whether driver is wired at runtime based on capabilities
Jouni Malinen [Sat, 7 Mar 2009 20:05:43 +0000 (22:05 +0200)]
Determiner whether driver is wired at runtime based on capabilities

Do not use just the driver name for this since driver_ndis.c supports
both wired and wireless NDIS drivers and needs to indicate the driver
type after initialization.

15 years agoWMM-AC: Fix hostapd processing of ADDTS Request and add test code
Jouni Malinen [Fri, 6 Mar 2009 18:12:31 +0000 (20:12 +0200)]
WMM-AC: Fix hostapd processing of ADDTS Request and add test code

Calculate the estimated medium time using integer variables since there
is no real need to use floating point arithmetics here. In addition,
make sure there is no division by zero regardless of how invalid the
request from the station is. Reject invalid parameters and refuse
requests that would take most of the bandwidth by themselves.

Add test code into wpa_supplicant mlme.c to allow WMM-AC negotiation to
be tested with driver_test.

15 years agoEnable WMM support in the test MLME code
Jouni Malinen [Fri, 6 Mar 2009 14:47:05 +0000 (16:47 +0200)]
Enable WMM support in the test MLME code

This allows driver_test to be used to test WMM negotiation.

15 years agoAllow PN531_PATH to be overriden from .config
Jouni Malinen [Fri, 6 Mar 2009 14:25:48 +0000 (16:25 +0200)]
Allow PN531_PATH to be overriden from .config

15 years agoWPS: Add support for NFC out-of-band mechanism
Masashi Honma [Fri, 6 Mar 2009 14:16:22 +0000 (16:16 +0200)]
WPS: Add support for NFC out-of-band mechanism

The new file wps_nfc.c and ndef.c implements NFC device independent
operation, wps_nfc_pn531.c implements NFC device dependent operation.

This patch is only for the following use case:
- Enrollee = wpa_supplicant
- Registrar = hostapd internal Registrar

Following NFC methods can be used:
- Enrollee PIN with NFC
- Registrar PIN with NFC
- unencrypted credential with NFC

Encrypted credentials are not supported.

Enrollee side operation:

Registrar side operation:

Example configuration.
CONFIG_WPS=y
CONFIG_WPS_NFC=y
CONFIG_WPS_NFC_PN531=y

I used NFC device "NXP PN531". The NFC device access method is
confidential, so I used outer library. Please download below files from
https://www.saice-wpsnfc.bz/index.php

[WPS NFC Library]
WpsNfcLibrary/WpsNfc.h
WpsNfcLibrary/WpsNfcType.h
WpsNfcLibrary/WpsNfcVersion.h
WpsNfcLibrary/linux/libnfc_mapping_pn53x.dll
WpsNfcLibrary/linux/wpsnfc.dll

[NFC Reader/Writer Kernel Driver]
NFCKernelDriver-1.0.3/linux/kobj/sonyrw.ko

<WiFi test>
The hostapd/wpa_supplicant with this patch passed below tests on
"Wi-Fi WPS Test Plan Version 1.6".
4.2.5 Add device using NFC Method with password token
(I used SONY STA instead of NXP STA.)

4.2.6 Add device using NFC Method with configuration token

5.1.9 Add to AP using NFC Method with password token
through internal registrar
(I used SONY AP instead of NXP AP.)

5.1.10 Add to AP using NFC Method with configuration token
through internal registrar

15 years agoWPS: Add a workaround for TKIP/CCMP mixed mode credentials
Jouni Malinen [Thu, 5 Mar 2009 19:39:39 +0000 (21:39 +0200)]
WPS: Add a workaround for TKIP/CCMP mixed mode credentials

Many deployed APs do not handle negotiation of security parameters well
when both TKIP and CCMP (or both WPA and WPA2) are enabled. The most
common end result seems to be ending up with the least secure option..

As a workaround, check whether the AP advertises WPA2/CCMP in Beacon
frames and add those options for the credential if needed. This allows
the client to select the most secure configuration regardless of how
broken the AP's WPS implementation is as far as auth/encr type
negotiation is concerned.

15 years agoFix UP-to-AC mapping for prio 3 (EE) to be AC_BE, not AC_VI
Jouni Malinen [Thu, 5 Mar 2009 14:37:13 +0000 (16:37 +0200)]
Fix UP-to-AC mapping for prio 3 (EE) to be AC_BE, not AC_VI

15 years agoFix MLME build after WMM renames
Jouni Malinen [Thu, 5 Mar 2009 13:56:51 +0000 (15:56 +0200)]
Fix MLME build after WMM renames

15 years agoFix non-HT STA addition
Jouni Malinen [Thu, 5 Mar 2009 09:25:32 +0000 (11:25 +0200)]
Fix non-HT STA addition

35463eaed391107dbe4a2dcaeb43aaa20e227a1e broke non-HT STA add by trying
to se random HT capabilities to mac80211. Fix that by using NULL ht_cap
for non-HT case.

15 years agonl80211: Add verbose result debugging for NL80211_CMD_NEW_STATION
Jouni Malinen [Thu, 5 Mar 2009 09:24:48 +0000 (11:24 +0200)]
nl80211: Add verbose result debugging for NL80211_CMD_NEW_STATION

15 years agoNo need for including endian.h anymore
Jouni Malinen [Wed, 4 Mar 2009 14:29:36 +0000 (16:29 +0200)]
No need for including endian.h anymore

15 years agoNo need to check WMM IE OUI or type here
Jouni Malinen [Wed, 4 Mar 2009 14:28:47 +0000 (16:28 +0200)]
No need to check WMM IE OUI or type here

IE parser has already taken care of this. In addition, show QoS info
field in debug output.

15 years agoUse bit mask/shift and helper functions instead of C bit fields
Jouni Malinen [Wed, 4 Mar 2009 14:23:44 +0000 (16:23 +0200)]
Use bit mask/shift and helper functions instead of C bit fields

15 years agoWMM cleanup (WME -> WMM rename, comments, etc.)
Jouni Malinen [Wed, 4 Mar 2009 10:33:24 +0000 (12:33 +0200)]
WMM cleanup (WME -> WMM rename, comments, etc.)

This updates the terminogy to match with the final WMM specification. In
addition, some of the WMM TSPEC structure fields were in incorrect order
and used without byte order swapping. Those are also taken care of this
cleanup patch.

15 years agoRemove unused tsinfo()
Jouni Malinen [Wed, 4 Mar 2009 09:32:51 +0000 (11:32 +0200)]
Remove unused tsinfo()

15 years agoAdd build option CONFIG_TERMINATE_ONLASTIF
Sam Leffler [Mon, 2 Mar 2009 19:57:00 +0000 (21:57 +0200)]
Add build option CONFIG_TERMINATE_ONLASTIF

This makes wpa_supplicant terminate automatically if the configured
interface(s) disappear.

15 years agoAdd support for wpa_supplicant syslog output
Sam Leffler [Mon, 2 Mar 2009 19:40:44 +0000 (21:40 +0200)]
Add support for wpa_supplicant syslog output

Enable for build: CFLAGS += -DCONFIG_DEBUG_SYSLOG in .config
Enable at runtime: -s on command line

15 years agoFix hostapd build with RADIUS support removed
Jouni Malinen [Mon, 2 Mar 2009 19:25:53 +0000 (21:25 +0200)]
Fix hostapd build with RADIUS support removed

15 years agoPass negotiated ht capability information after the association
vasanth [Mon, 2 Mar 2009 17:17:35 +0000 (19:17 +0200)]
Pass negotiated ht capability information after the association

This patch replaces the station's ht capability information with the
negotiated one in NL80211_CMD_NEW_STATION. This negotiated ht
capability will be needed for rate control initialization in the
driver.

Signed-off-by: vasanth <vasanth@atheros.com>