path: root/wpa_supplicant/wpa_supplicant.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix init2() driver_ops to get the correct global driver contextJouni Malinen2010-01-091-2/+4
| | | | | | | Need to provide the private driver context, not the wpa_supplicant global context, in init2() call. (this is a backported version of 8a5ab9f5e56cd2f5781c2d92f41495e60d544780 and d8222ae38c3be3fba794462d11fed8b57590c7f5)
* dbus: add 'scanning' propertyDan Williams2009-11-251-0/+3
| | | | | | | | | | | | | When the supplicant is connected and performs a scan, it doesn't enter WPA_SCANNING state for various reasons. However, external programs still need to know that the supplicant is scanning since they may not wish to perform certain operations during a scan (as those operations will likely fail or yield incorrect results). Add a 'scanning' property and signal to the supplicant dbus interface to allow clients to synchronize better with the supplicant when it scans. Signed-off-by: Dan Williams <dcbw@redhat.com> (cherry picked from commit cb8564b1ddf2738fa26a80523078749bb7a55c5f)
* MFP: Clear IGTKMasashi Honma2009-11-221-0/+4
| | | | | | | | The fourth and fifth keys are used as IGTK for management frame protection. This patch clears these keys. I have tested with linux kernel (cherry picked from commit 0e27f655f1275a98a0081f4d41f551af254ad38f)
* Remove extra whitespaceWitold Sowa2009-11-221-1/+1
| | | | (cherry picked from commit 1bd3f426d3cc421e8cc635599fcc94cf070e1efb)
* Delay processing of EAPOL frames when not associatedJouni Malinen2009-11-221-0/+24
| | | | | | | | | | | | If an EAPOL frame is received while wpa_supplicant thinks the driver is not associated, queue the frame for processing at the moment when the association event is received. This is a workaround to a race condition in receiving data frames and management events from the kernel. The pending EAPOL frame will not be processed unless an association event is received within 100 msec for the same BSSID. (cherry picked from commit 1ff733383f3d5c73233ef452a738765667021609)
* Make deauthentication and disassociation consistentJouni Malinen2009-04-201-3/+1
| | | | | | This fixes an issue where the station was not marked disassociated properly with locally requested deauthentication. (cherry picked from commit c3dc92e85f7bc5823102e70ecff1d3402d79139b)
* Fixed a copy-paste error in a function documentationJouni Malinen2009-02-151-1/+1
| | | | (cherry picked from commit 073ab58ff5ec83d68099049012a248a84e1eb16a)
* Fix a segfault in wpa_supplicant_deinitHelmut Schaa2009-02-081-1/+1
| | | | | | | | | | If wpa_supplicant is started with -u but the DBus service is already registered wpa_supplicant will bail out. However, it will segfault in wpa_supplicant_deinit because global->drv_priv wasn't allocated yet. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> (cherry picked from commit 81e59f1070f223c4b244a20aa496b79d9cdb5961)
* Preparations for 0.6.7 releaseJouni Malinen2009-01-061-2/+2
* Mark functions static if not used elsewhere and use proper prototypesJouni Malinen2009-01-031-2/+0
* Added Doxygen documentation for WPS codeJouni Malinen2009-01-031-1/+0
* Initialize wpa_ie_len to 0 if WPA IE is not set on all pathsJouni Malinen2009-01-021-1/+2
| | | | The new WPS code was not setting this in error case.
* MFP: Require MFP is it is enabled and AP scan shows support for itJouni Malinen2008-12-311-0/+12
| | | | | | When using ap_scan=1, we know before the association request that MFP will be supported, so we can as well require it. This helps mac80211 in configuring whether to enable MFP.
* Longer auth_timeout for WPS key_mgmtAndriy Tkachuk2008-12-251-1/+2
| | | | | | | It seems that for WPS registration we should use the same authentication timeout as for ieee8021x, no? (See patch attached.) On slow platforms public keys computation may take around 4-5 seconds (we actually stuck on this issue).
* Added support for global driver data (shared by multiple interfaces)Jouni Malinen2008-12-221-1/+34
| | | | | | | | Driver wrappers can now register global_init() and global_deinit() driver_ops handlers to get a global data structure that can be shared for all interfaces. This allows driver wrappers to initialize some functionality (e.g., interface monitoring) before any interfaces have been initialized.
* WPS: Added support for wildcard SSID matching in ap_scan=2 modeJouni Malinen2008-12-201-0/+19
| | | | | | | Change association behavior to match with ap_scan=1 when WPS is used in ap_scan=2 mode with wildcard SSID matching. In addition, allow hardcoded BSSID to be used to select AP even if selected registrar attribute is not present.
* Renamed the 'alpha2' variable to 'country' to match with config stringJouni Malinen2008-12-091-2/+2
* wpa_supplicant: Add support for setting of a regulatory domainLuis R. Rodriguez2008-12-091-0/+6
| | | | | | | This adds support for setting of a regulatory domain to wpa_supplicant drivers. It also adds regulatory domain setting for the nl80211 driver. We expect an ISO / IEC 3166 alpha2 in the wpa configuration file as a global.
* Always clear EAP altAccept and altReject variables on new associationJouni Malinen2008-11-301-4/+3
| | | | | | | | | Previously, this was only done when the new connection is using WPA-Personal. However, it looks like it was possible to trigger an infinite busy loop if altAccept or altReject were left set to true and an EAPOL frame is received (eapolEap is set to true). Clearing altAccept and altReject for each association prevents this loop from happening in the beginning of the next association.
* WPS: Set Request Type properly into WPS IE in ProbeReq/AssocReqJouni Malinen2008-11-291-1/+2
* WPS: Moved ProbeReq/AssocReq WPS IE building into wps_common.cJouni Malinen2008-11-291-1/+1
| | | | | This code and the related attributes are not specific to Enrollee functionality, so wps_common.c is the correct location for them.
* WPS: Moved wps_context initialization into wps_supplicant.cJouni Malinen2008-11-281-0/+6
| | | | | | | 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.
* Added preliminary Wi-Fi Protected Setup (WPS) implementationJouni Malinen2008-11-231-2/+20
| | | | | | | | | | | | | 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.
* Add RoboSwitch driver interface for wpa_supplicantJouke Witteveen2008-11-181-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* FT: Do not call wpa_ft_prepare_auth_request() if FT is not usedJouni Malinen2008-09-291-2/+4
| | | | | This saves some extra processing for the non-FT case if FT is built in, but not used for the association.
* Add an optional set_mode() driver_ops handler for setting mode before keysDan Williams2008-09-291-0/+5
| | | | | | | | | | | | | A bug just got reported as a result of this for mac80211 drivers. https://bugzilla.redhat.com/show_bug.cgi?id=459399 The basic problem is that since taking the device down clears the keys from the driver on many mac80211-based cards, and since the mode gets set _after_ the keys have been set in the driver, the keys get cleared on a mode switch and the resulting association is wrong. The report is about ad-hoc mode specifically, but this could happen when switching from adhoc back to managed mode.
* FT: Fixed FTIE for authentication after a failed associationJouni Malinen2008-09-011-0/+2
* Added support for using SHA256-based stronger key derivation for WPA2Jouni Malinen2008-08-311-18/+30
| | | | | | IEEE 802.11w/D6.0 defines new AKMPs to indicate SHA256-based algorithms for key derivation (and AES-CMAC for EAPOL-Key MIC). Add support for using new AKMPs and clean up AKMP processing with helper functions in defs.h.
* Updated MFP defines based on IEEE 802.11w/D6.0 and use new MFPC/MFPRJouni Malinen2008-08-301-2/+2
| | | | | | | This adds most of the new frame format and identifier definitions from IEEE 802.11w/D6.0. In addition, the RSN IE capability field values for MFP is replaced with the new two-bit version with MFPC (capable) and MFPR (required) processing.
* Give adhoc associations a bit more timeDan Williams2008-06-041-7/+9
| | | | | | | | Depending on how the driver implements IBSS searching and creation, it may need to perform one or more scans before successfully completing the association operation. Therefore, increase the timeout for IBSS association operations so that the supplicant doesn't interrupt the driver as much.
* Introduced new helper function is_zero_ether_addr()Jouni Malinen2008-06-031-5/+3
| | | | | Use this inline function to replace os_memcmp(addr, "\x00\x00\x00\x00\x00\x00", ETH_ALEN) == 0.
* Re-initialize hostapd/wpa_supplicant git repository based on 0.6.3 releaseJouni Malinen2008-02-281-0/+2057