|  | ChangeLog for wpa_supplicant | 
|  |  | 
|  | 2015-09-27 - v2.5 | 
|  | * fixed P2P validation of SSID element length before copying it | 
|  | [http://w1.fi/security/2015-1/] (CVE-2015-1863) | 
|  | * fixed WPS UPnP vulnerability with HTTP chunked transfer encoding | 
|  | [http://w1.fi/security/2015-2/] (CVE-2015-4141) | 
|  | * fixed WMM Action frame parser (AP mode) | 
|  | [http://w1.fi/security/2015-3/] (CVE-2015-4142) | 
|  | * fixed EAP-pwd peer missing payload length validation | 
|  | [http://w1.fi/security/2015-4/] | 
|  | (CVE-2015-4143, CVE-2015-4144, CVE-2015-4145, CVE-2015-4146) | 
|  | * fixed validation of WPS and P2P NFC NDEF record payload length | 
|  | [http://w1.fi/security/2015-5/] | 
|  | * nl80211: | 
|  | - added VHT configuration for IBSS | 
|  | - fixed vendor command handling to check OUI properly | 
|  | - allow driver-based roaming to change ESS | 
|  | * added AVG_BEACON_RSSI to SIGNAL_POLL output | 
|  | * wpa_cli: added tab completion for number of commands | 
|  | * removed unmaintained and not yet completed SChannel/CryptoAPI support | 
|  | * modified Extended Capabilities element use in Probe Request frames to | 
|  | include all cases if any of the values are non-zero | 
|  | * added support for dynamically creating/removing a virtual interface | 
|  | with interface_add/interface_remove | 
|  | * added support for hashed password (NtHash) in EAP-pwd peer | 
|  | * added support for memory-only PSK/passphrase (mem_only_psk=1 and | 
|  | CTRL-REQ/RSP-PSK_PASSPHRASE) | 
|  | * P2P | 
|  | - optimize scan frequencies list when re-joining a persistent group | 
|  | - fixed number of sequences with nl80211 P2P Device interface | 
|  | - added operating class 125 for P2P use cases (this allows 5 GHz | 
|  | channels 161 and 169 to be used if they are enabled in the current | 
|  | regulatory domain) | 
|  | - number of fixes to P2PS functionality | 
|  | - do not allow 40 MHz co-ex PRI/SEC switch to force MCC | 
|  | - extended support for preferred channel listing | 
|  | * D-Bus: | 
|  | - fixed WPS property of fi.w1.wpa_supplicant1.BSS interface | 
|  | - fixed PresenceRequest to use group interface | 
|  | - added new signals: FindStopped, WPS pbc-overlap, | 
|  | GroupFormationFailure, WPS timeout, InvitationReceived | 
|  | - added new methods: WPS Cancel, P2P Cancel, Reconnect, RemoveClient | 
|  | - added manufacturer info | 
|  | * added EAP-EKE peer support for deriving Session-Id | 
|  | * added wps_priority configuration parameter to set the default priority | 
|  | for all network profiles added by WPS | 
|  | * added support to request a scan with specific SSIDs with the SCAN | 
|  | command (optional "ssid <hexdump>" arguments) | 
|  | * removed support for WEP40/WEP104 as a group cipher with WPA/WPA2 | 
|  | * fixed SAE group selection in an error case | 
|  | * modified SAE routines to be more robust and PWE generation to be | 
|  | stronger against timing attacks | 
|  | * added support for Brainpool Elliptic Curves with SAE | 
|  | * added support for CCMP-256 and GCMP-256 as group ciphers with FT | 
|  | * fixed BSS selection based on estimated throughput | 
|  | * added option to disable TLSv1.0 with OpenSSL | 
|  | (phase1="tls_disable_tlsv1_0=1") | 
|  | * added Fast Session Transfer (FST) module | 
|  | * fixed OpenSSL PKCS#12 extra certificate handling | 
|  | * fixed key derivation for Suite B 192-bit AKM (this breaks | 
|  | compatibility with the earlier version) | 
|  | * added RSN IE to Mesh Peering Open/Confirm frames | 
|  | * number of small fixes | 
|  |  | 
|  | 2015-03-15 - v2.4 | 
|  | * allow OpenSSL cipher configuration to be set for internal EAP server | 
|  | (openssl_ciphers parameter) | 
|  | * fixed number of small issues based on hwsim test case failures and | 
|  | static analyzer reports | 
|  | * P2P: | 
|  | - add new=<0/1> flag to P2P-DEVICE-FOUND events | 
|  | - add passive channels in invitation response from P2P Client | 
|  | - enable nl80211 P2P_DEVICE support by default | 
|  | - fix regresssion in disallow_freq preventing search on social | 
|  | channels | 
|  | - fix regressions in P2P SD query processing | 
|  | - try to re-invite with social operating channel if no common channels | 
|  | in invitation | 
|  | - allow cross connection on parent interface (this fixes number of | 
|  | use cases with nl80211) | 
|  | - add support for P2P services (P2PS) | 
|  | - add p2p_go_ctwindow configuration parameter to allow GO CTWindow to | 
|  | be configured | 
|  | * increase postponing of EAPOL-Start by one second with AP/GO that | 
|  | supports WPS 2.0 (this makes it less likely to trigger extra roundtrip | 
|  | of identity frames) | 
|  | * add support for PMKSA caching with SAE | 
|  | * add support for control mesh BSS (IEEE 802.11s) operations | 
|  | * fixed number of issues with D-Bus P2P commands | 
|  | * fixed regression in ap_scan=2 special case for WPS | 
|  | * fixed macsec_validate configuration | 
|  | * add a workaround for incorrectly behaving APs that try to use | 
|  | EAPOL-Key descriptor version 3 when the station supports PMF even if | 
|  | PMF is not enabled on the AP | 
|  | * allow TLS v1.1 and v1.2 to be negotiated by default; previous behavior | 
|  | of disabling these can be configured to work around issues with broken | 
|  | servers with phase1="tls_disable_tlsv1_1=1 tls_disable_tlsv1_2=1" | 
|  | * add support for Suite B (128-bit and 192-bit level) key management and | 
|  | cipher suites | 
|  | * add WMM-AC support (WMM_AC_ADDTS/WMM_AC_DELTS) | 
|  | * improved BSS Transition Management processing | 
|  | * add support for neighbor report | 
|  | * add support for link measurement | 
|  | * fixed expiration of BSS entry with all-zeros BSSID | 
|  | * add optional LAST_ID=x argument to LIST_NETWORK to allow all | 
|  | configured networks to be listed even with huge number of network | 
|  | profiles | 
|  | * add support for EAP Re-Authentication Protocol (ERP) | 
|  | * fixed EAP-IKEv2 fragmentation reassembly | 
|  | * improved PKCS#11 configuration for OpenSSL | 
|  | * set stdout to be line-buffered | 
|  | * add TDLS channel switch configuration | 
|  | * add support for MAC address randomization in scans with nl80211 | 
|  | * enable HT for IBSS if supported by the driver | 
|  | * add BSSID black and white lists (bssid_blacklist, bssid_whitelist) | 
|  | * add support for domain_suffix_match with GnuTLS | 
|  | * add OCSP stapling client support with GnuTLS | 
|  | * include peer certificate in EAP events even without a separate probe | 
|  | operation; old behavior can be restored with cert_in_cb=0 | 
|  | * add peer ceritficate alt subject name to EAP events | 
|  | (CTRL-EVENT-EAP-PEER-ALT) | 
|  | * add domain_match network profile parameter (similar to | 
|  | domain_suffix_match, but full match is required) | 
|  | * enable AP/GO mode HT Tx STBC automatically based on driver support | 
|  | * add ANQP-QUERY-DONE event to provide information on ANQP parsing | 
|  | status | 
|  | * allow passive scanning to be forced with passive_scan=1 | 
|  | * add a workaround for Linux packet socket behavior when interface is in | 
|  | bridge | 
|  | * increase 5 GHz band preference in BSS selection (estimate SNR, if info | 
|  | not available from driver; estimate maximum throughput based on common | 
|  | HT/VHT/specific TX rate support) | 
|  | * add INTERWORKING_ADD_NETWORK ctrl_iface command; this can be used to | 
|  | implement Interworking network selection behavior in upper layers | 
|  | software components | 
|  | * add optional reassoc_same_bss_optim=1 (disabled by default) | 
|  | optimization to avoid unnecessary Authentication frame exchange | 
|  | * extend TDLS frame padding workaround to cover all packets | 
|  | * allow wpa_supplicant to recover nl80211 functionality if the cfg80211 | 
|  | module gets removed and reloaded without restarting wpa_supplicant | 
|  | * allow hostapd DFS implementation to be used in wpa_supplicant AP mode | 
|  |  | 
|  | 2014-10-09 - v2.3 | 
|  | * fixed number of minor issues identified in static analyzer warnings | 
|  | * fixed wfd_dev_info to be more careful and not read beyond the buffer | 
|  | when parsing invalid information for P2P-DEVICE-FOUND | 
|  | * extended P2P and GAS query operations to support drivers that have | 
|  | maximum remain-on-channel time below 1000 ms (500 ms is the current | 
|  | minimum supported value) | 
|  | * added p2p_search_delay parameter to make the default p2p_find delay | 
|  | configurable | 
|  | * improved P2P operating channel selection for various multi-channel | 
|  | concurrency cases | 
|  | * fixed some TDLS failure cases to clean up driver state | 
|  | * fixed dynamic interface addition cases with nl80211 to avoid adding | 
|  | ifindex values to incorrect interface to skip foreign interface events | 
|  | properly | 
|  | * added TDLS workaround for some APs that may add extra data to the | 
|  | end of a short frame | 
|  | * fixed EAP-AKA' message parser with multiple AT_KDF attributes | 
|  | * added configuration option (p2p_passphrase_len) to allow longer | 
|  | passphrases to be generated for P2P groups | 
|  | * fixed IBSS channel configuration in some corner cases | 
|  | * improved HT/VHT/QoS parameter setup for TDLS | 
|  | * modified D-Bus interface for P2P peers/groups | 
|  | * started to use constant time comparison for various password and hash | 
|  | values to reduce possibility of any externally measurable timing | 
|  | differences | 
|  | * extended explicit clearing of freed memory and expired keys to avoid | 
|  | keeping private data in memory longer than necessary | 
|  | * added optional scan_id parameter to the SCAN command to allow manual | 
|  | scan requests for active scans for specific configured SSIDs | 
|  | * fixed CTRL-EVENT-REGDOM-CHANGE event init parameter value | 
|  | * added option to set Hotspot 2.0 Rel 2 update_identifier in network | 
|  | configuration to support external configuration | 
|  | * modified Android PNO functionality to send Probe Request frames only | 
|  | for hidden SSIDs (based on scan_ssid=1) | 
|  | * added generic mechanism for adding vendor elements into frames at | 
|  | runtime (VENDOR_ELEM_ADD, VENDOR_ELEM_GET, VENDOR_ELEM_REMOVE) | 
|  | * added fields to show unrecognized vendor elements in P2P_PEER | 
|  | * removed EAP-TTLS/MSCHAPv2 interoperability workaround so that | 
|  | MS-CHAP2-Success is required to be present regardless of | 
|  | eap_workaround configuration | 
|  | * modified EAP fast session resumption to allow results to be used only | 
|  | with the same network block that generated them | 
|  | * extended freq_list configuration to apply for sched_scan as well as | 
|  | normal scan | 
|  | * modified WPS to merge mixed-WPA/WPA2 credentials from a single session | 
|  | * fixed nl80211/RTM_DELLINK processing when a P2P GO interface is | 
|  | removed from a bridge | 
|  | * fixed number of small P2P issues to make negotiations more robust in | 
|  | corner cases | 
|  | * added experimental support for using temporary, random local MAC | 
|  | address (mac_addr and preassoc_mac_addr parameters); this is disabled | 
|  | by default (i.e., previous behavior of using permanent address is | 
|  | maintained if configuration is not changed) | 
|  | * added D-Bus interface for setting/clearing WFD IEs | 
|  | * fixed TDLS AID configuration for VHT | 
|  | * modified -m<conf> configuration file to be used only for the P2P | 
|  | non-netdev management device and do not load this for the default | 
|  | station interface or load the station interface configuration for | 
|  | the P2P management interface | 
|  | * fixed external MAC address changes while wpa_supplicant is running | 
|  | * started to enable HT (if supported by the driver) for IBSS | 
|  | * fixed wpa_cli action script execution to use more robust mechanism | 
|  | (CVE-2014-3686) | 
|  |  | 
|  | 2014-06-04 - v2.2 | 
|  | * added DFS indicator to get_capability freq | 
|  | * added/fixed nl80211 functionality | 
|  | - BSSID/frequency hint for driver-based BSS selection | 
|  | - fix tearing down WDS STA interfaces | 
|  | - support vendor specific driver command | 
|  | (VENDOR <vendor id> <sub command id> [<hex formatted data>]) | 
|  | - GO interface teardown optimization | 
|  | - allow beacon interval to be configured for IBSS | 
|  | - add SHA256-based AKM suites to CONNECT/ASSOCIATE commands | 
|  | * removed unused NFC_RX_HANDOVER_REQ and NFC_RX_HANDOVER_SEL control | 
|  | interface commands (the more generic NFC_REPORT_HANDOVER is now used) | 
|  | * fixed MSCHAP UTF-8 to UCS-2 conversion for three-byte encoding; | 
|  | this fixes password with include UTF-8 characters that use | 
|  | three-byte encoding EAP methods that use NtPasswordHash | 
|  | * fixed couple of sequencies where radio work items could get stuck, | 
|  | e.g., when rfkill blocking happens during scanning or when | 
|  | scan-for-auth workaround is used | 
|  | * P2P enhancements/fixes | 
|  | - enable enable U-APSD on GO automatically if the driver indicates | 
|  | support for this | 
|  | - fixed some service discovery cases with broadcast queries not being | 
|  | sent to all stations | 
|  | - fixed Probe Request frame triggering invitation to trigger only a | 
|  | single invitation instance even if multiple Probe Request frames are | 
|  | received | 
|  | - fixed a potential NULL pointer dereference crash when processing an | 
|  | invalid Invitation Request frame | 
|  | - add optional configuration file for the P2P_DEVICE parameters | 
|  | - optimize scan for GO during persistent group invocation | 
|  | - fix possible segmentation fault when PBC overlap is detected while | 
|  | using a separate P2P group interface | 
|  | - improve GO Negotiation robustness by allowing GO Negotiation | 
|  | Confirmation to be retransmitted | 
|  | - do use freed memory on device found event when P2P NFC | 
|  | * added phase1 network parameter options for disabling TLS v1.1 and v1.2 | 
|  | to allow workarounds with misbehaving AAA servers | 
|  | (tls_disable_tlsv1_1=1 and tls_disable_tlsv1_2=1) | 
|  | * added support for OCSP stapling to validate AAA server certificate | 
|  | during TLS exchange | 
|  | * Interworking/Hotspot 2.0 enhancements | 
|  | - prefer the last added network in Interworking connection to make the | 
|  | behavior more consistent with likely user expectation | 
|  | - roaming partner configuration (roaming_partner within a cred block) | 
|  | - support Hotspot 2.0 Release 2 | 
|  | * "hs20_anqp_get <BSSID> 8" to request OSU Providers list | 
|  | * "hs20_icon_request <BSSID> <icon filename>" to request icon files | 
|  | * "fetch_osu" and "cancel_osu_fetch" to start/stop full OSU provider | 
|  | search (all suitable APs in scan results) | 
|  | * OSEN network for online signup connection | 
|  | * min_{dl,ul}_bandwidth_{home,roaming} cred parameters | 
|  | * max_bss_load cred parameter | 
|  | * req_conn_capab cred parameter | 
|  | * sp_priority cred parameter | 
|  | * ocsp cred parameter | 
|  | * slow down automatic connection attempts on EAP failure to meet | 
|  | required behavior (no more than 10 retries within a 10-minute | 
|  | interval) | 
|  | * sample implementation of online signup client (both SPP and | 
|  | OMA-DM protocols) (hs20/client/*) | 
|  | - fixed GAS indication for additional comeback delay with status | 
|  | code 95 | 
|  | - extend ANQP_GET to accept Hotspot 2.0 subtypes | 
|  | ANQP_GET <addr> <info id>[,<info id>]... | 
|  | [,hs20:<subtype>][...,hs20:<subtype>] | 
|  | - add control interface events CRED-ADDED <id>, | 
|  | CRED-MODIFIED <id> <field>, CRED-REMOVED <id> | 
|  | - add "GET_CRED <id> <field>" command | 
|  | - enable FT for the connection automatically if the AP advertises | 
|  | support for this | 
|  | - fix a case where auto_interworking=1 could end up stopping scanning | 
|  | * fixed TDLS interoperability issues with supported operating class in | 
|  | some deployed stations | 
|  | * internal TLS implementation enhancements/fixes | 
|  | - add SHA256-based cipher suites | 
|  | - add DHE-RSA cipher suites | 
|  | - fix X.509 validation of PKCS#1 signature to check for extra data | 
|  | * fixed PTK derivation for CCMP-256 and GCMP-256 | 
|  | * added "reattach" command for fast reassociate-back-to-same-BSS | 
|  | * allow PMF to be enabled for AP mode operation with the ieee80211w | 
|  | parameter | 
|  | * added "get_capability tdls" command | 
|  | * added option to set config blobs through control interface with | 
|  | "SET blob <name> <hexdump>" | 
|  | * D-Bus interface extensions/fixes | 
|  | - make p2p_no_group_iface configurable | 
|  | - declare ServiceDiscoveryRequest method properly | 
|  | - export peer's device address as a property | 
|  | - make reassociate command behave like the control interface one, | 
|  | i.e., to allow connection from disconnected state | 
|  | * added optional "freq=<channel ranges>" parameter to SET pno | 
|  | * added optional "freq=<channel ranges>" parameter to SELECT_NETWORK | 
|  | * fixed OBSS scan result processing for 20/40 MHz co-ex report | 
|  | * remove WPS 1.0 only support, i.e., WSC 2.0 support is now enabled | 
|  | whenever CONFIG_WPS=y is set | 
|  | * fixed regression in parsing of WNM Sleep Mode exit key data | 
|  | * fixed potential segmentation fault and memory leaks in WNM neighbor | 
|  | report processing | 
|  | * EAP-pwd fixes | 
|  | - fragmentation of PWD-Confirm-Resp | 
|  | - fix memory leak when fragmentation is used | 
|  | - fix possible segmentation fault on EAP method deinit if an invalid | 
|  | group is negotiated | 
|  | * added MACsec/IEEE Std 802.1X-2010 PAE implementation (currently | 
|  | available only with the macsec_qca driver wrapper) | 
|  | * fixed EAP-SIM counter-too-small message | 
|  | * added 'dup_network <id_s> <id_d> <name>' command; this can be used to | 
|  | clone the psk field without having toextract it from wpa_supplicant | 
|  | * fixed GSM authentication on USIM | 
|  | * added support for usin epoll in eloop (CONFIG_ELOOP_EPOLL=y) | 
|  | * fixed some concurrent virtual interface cases with dedicated P2P | 
|  | management interface to not catch events from removed interface (this | 
|  | could result in the management interface getting disabled) | 
|  | * fixed a memory leak in SAE random number generation | 
|  | * fixed off-by-one bounds checking in printf_encode() | 
|  | - this could result in some control interface ATTACH command cases | 
|  | terminating wpa_supplicant | 
|  | * fixed EAPOL-Key exchange when GCMP is used with SHA256-based AKM | 
|  | * various bug fixes | 
|  |  | 
|  | 2014-02-04 - v2.1 | 
|  | * added support for simultaneous authentication of equals (SAE) for | 
|  | stronger password-based authentication with WPA2-Personal | 
|  | * improved P2P negotiation and group formation robustness | 
|  | - avoid unnecessary Dialog Token value changes during retries | 
|  | - avoid more concurrent scanning cases during full group formation | 
|  | sequence | 
|  | - do not use potentially obsolete scan result data from driver | 
|  | cache for peer discovery/updates | 
|  | - avoid undesired re-starting of GO negotiation based on Probe | 
|  | Request frames | 
|  | - increase GO Negotiation and Invitation timeouts to address busy | 
|  | environments and peers that take long time to react to messages, | 
|  | e.g., due to power saving | 
|  | - P2P Device interface type | 
|  | * improved P2P channel selection (use more peer information and allow | 
|  | more local options) | 
|  | * added support for optional per-device PSK assignment by P2P GO | 
|  | (wpa_cli p2p_set per_sta_psk <0/1>) | 
|  | * added P2P_REMOVE_CLIENT for removing a client from P2P groups | 
|  | (including persistent groups); this can be used to securely remove | 
|  | a client from a group if per-device PSKs are used | 
|  | * added more configuration flexibility for allowed P2P GO/client | 
|  | channels (p2p_no_go_freq list and p2p_add_cli_chan=0/1) | 
|  | * added nl80211 functionality | 
|  | - VHT configuration for nl80211 | 
|  | - MFP (IEEE 802.11w) information for nl80211 command API | 
|  | - support split wiphy dump | 
|  | - FT (IEEE 802.11r) with driver-based SME | 
|  | - use advertised number of supported concurrent channels | 
|  | - QoS Mapping configuration | 
|  | * improved TDLS negotiation robustness | 
|  | * added more TDLS peer parameters to be configured to the driver | 
|  | * optimized connection time by allowing recently received scan results | 
|  | to be used instead of having to run through a new scan | 
|  | * fixed ctrl_iface BSS command iteration with RANGE argument and no | 
|  | exact matches; also fixed argument parsing for some cases with | 
|  | multiple arguments | 
|  | * added 'SCAN TYPE=ONLY' ctrl_iface command to request manual scan | 
|  | without executing roaming/network re-selection on scan results | 
|  | * added Session-Id derivation for EAP peer methods | 
|  | * added fully automated regression testing with mac80211_hwsim | 
|  | * changed configuration parser to reject invalid integer values | 
|  | * allow AP/Enrollee to be specified with BSSID instead of UUID for | 
|  | WPS ER operations | 
|  | * disable network block temporarily on repeated connection failures | 
|  | * changed the default driver interface from wext to nl80211 if both are | 
|  | included in the build | 
|  | * remove duplicate networks if WPS provisioning is run multiple times | 
|  | * remove duplicate networks when Interworking network selection uses the | 
|  | same network | 
|  | * added global freq_list configuration to allow scan frequencies to be | 
|  | limited for all cases instead of just for a specific network block | 
|  | * added support for BSS Transition Management | 
|  | * added option to use "IFNAME=<ifname> " prefix to use the global | 
|  | control interface connection to perform per-interface commands; | 
|  | similarly, allow global control interface to be used as a monitor | 
|  | interface to receive events from all interfaces | 
|  | * fixed OKC-based PMKSA cache entry clearing | 
|  | * fixed TKIP group key configuration with FT | 
|  | * added support for using OCSP stapling to validate server certificate | 
|  | (ocsp=1 as optional and ocsp=2 as mandatory) | 
|  | * added EAP-EKE peer | 
|  | * added peer restart detection for IBSS RSN | 
|  | * added domain_suffix_match (and domain_suffix_match2 for Phase 2 | 
|  | EAP-TLS) to specify additional constraint for the server certificate | 
|  | domain name | 
|  | * added support for external SIM/USIM processing in EAP-SIM, EAP-AKA, | 
|  | and EAP-AKA' (CTRL-REQ-SIM and CTRL-RSP-SIM commands over control | 
|  | interface) | 
|  | * added global bgscan configuration option as a default for all network | 
|  | blocks that do not specify their own bgscan parameters | 
|  | * added D-Bus methods for TDLS | 
|  | * added more control to scan requests | 
|  | - "SCAN freq=<freq list>" can be used to specify which channels are | 
|  | scanned (comma-separated frequency ranges in MHz) | 
|  | - "SCAN passive=1" can be used to request a passive scan (no Probe | 
|  | Request frames are sent) | 
|  | - "SCAN use_id" can be used to request a scan id to be returned and | 
|  | included in event messages related to this specific scan operation | 
|  | - "SCAN only_new=1" can be used to request the driver/cfg80211 to | 
|  | report only BSS entries that have been updated during this scan | 
|  | round | 
|  | - these optional arguments to the SCAN command can be combined with | 
|  | each other | 
|  | * modified behavior on externally triggered scans | 
|  | - avoid concurrent operations requiring full control of the radio when | 
|  | an externally triggered scan is detected | 
|  | - do not use results for internal roaming decision | 
|  | * added a new cred block parameter 'temporary' to allow credential | 
|  | blocks to be stored separately even if wpa_supplicant configuration | 
|  | file is used to maintain other network information | 
|  | * added "radio work" framework to schedule exclusive radio operations | 
|  | for off-channel functionality | 
|  | - reduce issues with concurrent operations that try to control which | 
|  | channel is used | 
|  | - allow external programs to request exclusive radio control in a way | 
|  | that avoids conflicts with wpa_supplicant | 
|  | * added support for using Protected Dual of Public Action frames for | 
|  | GAS/ANQP exchanges when associated with PMF | 
|  | * added support for WPS+NFC updates and P2P+NFC | 
|  | - improved protocol for WPS | 
|  | - P2P group formation/join based on NFC connection handover | 
|  | - new IPv4 address assignment for P2P groups (ip_addr_* configuration | 
|  | parameters on the GO) to replace DHCP | 
|  | - option to fetch and report alternative carrier records for external | 
|  | NFC operations | 
|  | * various bug fixes | 
|  |  | 
|  | 2013-01-12 - v2.0 | 
|  | * removed Qt3-based wpa_gui (obsoleted by wpa_qui-qt4) | 
|  | * removed unmaintained driver wrappers broadcom, iphone, osx, ralink, | 
|  | hostap, madwifi (hostap and madwifi remain available for hostapd; | 
|  | their wpa_supplicant functionality is obsoleted by wext) | 
|  | * improved debug logging (human readable event names, interface name | 
|  | included in more entries) | 
|  | * changed AP mode behavior to enable WPS only for open and | 
|  | WPA/WPA2-Personal configuration | 
|  | * improved P2P concurrency operations | 
|  | - better coordination of concurrent scan and P2P search operations | 
|  | - avoid concurrent remain-on-channel operation requests by canceling | 
|  | previous operations prior to starting a new one | 
|  | - reject operations that would require multi-channel concurrency if | 
|  | the driver does not support it | 
|  | - add parameter to select whether STA or P2P connection is preferred | 
|  | if the driver cannot support both at the same time | 
|  | - allow driver to indicate channel changes | 
|  | - added optional delay=<search delay in milliseconds> parameter for | 
|  | p2p_find to avoid taking all radio resources | 
|  | - use 500 ms p2p_find search delay by default during concurrent | 
|  | operations | 
|  | - allow all channels in GO Negotiation if the driver supports | 
|  | multi-channel concurrency | 
|  | * added number of small changes to make it easier for static analyzers | 
|  | to understand the implementation | 
|  | * fixed number of small bugs (see git logs for more details) | 
|  | * nl80211: number of updates to use new cfg80211/nl80211 functionality | 
|  | - replace monitor interface with nl80211 commands for AP mode | 
|  | - additional information for driver-based AP SME | 
|  | - STA entry authorization in RSN IBSS | 
|  | * EAP-pwd: | 
|  | - fixed KDF for group 21 and zero-padding | 
|  | - added support for fragmentation | 
|  | - increased maximum number of hunting-and-pecking iterations | 
|  | * avoid excessive Probe Response retries for broadcast Probe Request | 
|  | frames (only with drivers using wpa_supplicant AP mode SME/MLME) | 
|  | * added "GET country" ctrl_iface command | 
|  | * do not save an invalid network block in wpa_supplicant.conf to avoid | 
|  | problems reading the file on next start | 
|  | * send STA connected/disconnected ctrl_iface events to both the P2P | 
|  | group and parent interfaces | 
|  | * added preliminary support for using TLS v1.2 (CONFIG_TLSV12=y) | 
|  | * added "SET pno <1/0>" ctrl_iface command to start/stop preferred | 
|  | network offload with sched_scan driver command | 
|  | * merged in number of changes from Android repository for P2P, nl80211, | 
|  | and build parameters | 
|  | * changed P2P GO mode configuration to use driver capabilities to | 
|  | automatically enable HT operations when supported | 
|  | * added "wpa_cli status wps" command to fetch WPA2-Personal passhrase | 
|  | for WPS use cases in AP mode | 
|  | * EAP-AKA: keep pseudonym identity across EAP exchanges to match EAP-SIM | 
|  | behavior | 
|  | * improved reassociation behavior in cases where association is rejected | 
|  | or when an AP disconnects us to handle common load balancing | 
|  | mechanisms | 
|  | - try to avoid extra scans when the needed information is available | 
|  | * added optional "join" argument for p2p_prov_disc ctrl_iface command | 
|  | * added group ifname to P2P-PROV-DISC-* events | 
|  | * added P2P Device Address to AP-STA-DISCONNECTED event and use | 
|  | p2p_dev_addr parameter name with AP-STA-CONNECTED | 
|  | * added workarounds for WPS PBC overlap detection for some P2P use cases | 
|  | where deployed stations work incorrectly | 
|  | * optimize WPS connection speed by disconnecting prior to WPS scan and | 
|  | by using single channel scans when AP channel is known | 
|  | * PCSC and SIM/USIM improvements: | 
|  | - accept 0x67 (Wrong length) as a response to READ RECORD to fix | 
|  | issues with some USIM cards | 
|  | - try to read MNC length from SIM/USIM | 
|  | - build realm according to 3GPP TS 23.003 with identity from the SIM | 
|  | - allow T1 protocol to be enabled | 
|  | * added more WPS and P2P information available through D-Bus | 
|  | * improve P2P negotiation robustness | 
|  | - extra waits to get ACK frames through | 
|  | - longer timeouts for cases where deployed devices have been | 
|  | identified have issues meeting the specification requirements | 
|  | - more retries for some P2P frames | 
|  | - handle race conditions in GO Negotiation start by both devices | 
|  | - ignore unexpected GO Negotiation Response frame | 
|  | * added support for libnl 3.2 and newer | 
|  | * added P2P persistent group info to P2P_PEER data | 
|  | * maintain a list of P2P Clients for persistent group on GO | 
|  | * AP: increased initial group key handshake retransmit timeout to 500 ms | 
|  | * added optional dev_id parameter for p2p_find | 
|  | * added P2P-FIND-STOPPED ctrl_iface event | 
|  | * fixed issues in WPA/RSN element validation when roaming with ap_scan=1 | 
|  | and driver-based BSS selection | 
|  | * do not expire P2P peer entries while connected with the peer in a | 
|  | group | 
|  | * fixed WSC element inclusion in cases where P2P is disabled | 
|  | * AP: added a WPS workaround for mixed mode AP Settings with Windows 7 | 
|  | * EAP-SIM: fixed AT_COUNTER_TOO_SMALL use | 
|  | * EAP-SIM/AKA: append realm to pseudonym identity | 
|  | * EAP-SIM/AKA: store pseudonym identity in network configuration to | 
|  | allow it to persist over multiple EAP sessions and wpa_supplicant | 
|  | restarts | 
|  | * EAP-AKA': updated to RFC 5448 (username prefixes changed); note: this | 
|  | breaks interoperability with older versions | 
|  | * added support for WFA Hotspot 2.0 | 
|  | - GAS/ANQP to fetch network information | 
|  | - credential configuration and automatic network selections based on | 
|  | credential match with ANQP information | 
|  | * limited PMKSA cache entries to be used only with the network context | 
|  | that was used to create them | 
|  | * improved PMKSA cache expiration to avoid unnecessary disconnections | 
|  | * adjusted bgscan_simple fast-scan backoff to avoid too frequent | 
|  | background scans | 
|  | * removed ctrl_iface event on P2P PD Response in join-group case | 
|  | * added option to fetch BSS table entry based on P2P Device Address | 
|  | ("BSS p2p_dev_addr=<P2P Device Address>") | 
|  | * added BSS entry age to ctrl_iface BSS command output | 
|  | * added optional MASK=0xH option for ctrl_iface BSS command to select | 
|  | which fields are included in the response | 
|  | * added optional RANGE=ALL|N1-N2 option for ctrl_iface BSS command to | 
|  | fetch information about several BSSes in one call | 
|  | * simplified licensing terms by selecting the BSD license as the only | 
|  | alternative | 
|  | * added "P2P_SET disallow_freq <freq list>" ctrl_iface command to | 
|  | disable channels from P2P use | 
|  | * added p2p_pref_chan configuration parameter to allow preferred P2P | 
|  | channels to be specified | 
|  | * added support for advertising immediate availability of a WPS | 
|  | credential for P2P use cases | 
|  | * optimized scan operations for P2P use cases (use single channel scan | 
|  | for a specific SSID when possible) | 
|  | * EAP-TTLS: fixed peer challenge generation for MSCHAPv2 | 
|  | * SME: do not use reassociation after explicit disconnection request | 
|  | (local or a notification from an AP) | 
|  | * added support for sending debug info to Linux tracing (-T on command | 
|  | line) | 
|  | * added support for using Deauthentication reason code 3 as an | 
|  | indication of P2P group termination | 
|  | * added wps_vendor_ext_m1 configuration parameter to allow vendor | 
|  | specific attributes to be added to WPS M1 | 
|  | * started using separate TLS library context for tunneled TLS | 
|  | (EAP-PEAP/TLS, EAP-TTLS/TLS, EAP-FAST/TLS) to support different CA | 
|  | certificate configuration between Phase 1 and Phase 2 | 
|  | * added optional "auto" parameter for p2p_connect to request automatic | 
|  | GO Negotiation vs. join-a-group selection | 
|  | * added disabled_scan_offload parameter to disable automatic scan | 
|  | offloading (sched_scan) | 
|  | * added optional persistent=<network id> parameter for p2p_connect to | 
|  | allow forcing of a specific SSID/passphrase for GO Negotiation | 
|  | * added support for OBSS scan requests and 20/40 BSS coexistence reports | 
|  | * reject PD Request for unknown group | 
|  | * removed scripts and notes related to Windows binary releases (which | 
|  | have not been used starting from 1.x) | 
|  | * added initial support for WNM operations | 
|  | - Keep-alive based on BSS max idle period | 
|  | - WNM-Sleep Mode | 
|  | - minimal BSS Transition Management processing | 
|  | * added autoscan module to control scanning behavior while not connected | 
|  | - autoscan_periodic and autoscan_exponential modules | 
|  | * added new WPS NFC ctrl_iface mechanism | 
|  | - added initial support NFC connection handover | 
|  | - removed obsoleted WPS_OOB command (including support for deprecated | 
|  | UFD config_method) | 
|  | * added optional framework for external password storage ("ext:<name>") | 
|  | * wpa_cli: added optional support for controlling wpa_supplicant | 
|  | remotely over UDP (CONFIG_CTRL_IFACE=udp-remote) for testing purposes | 
|  | * wpa_cli: extended tab completion to more commands | 
|  | * changed SSID output to use printf-escaped strings instead of masking | 
|  | of non-ASCII characters | 
|  | - SSID can now be configured in the same format: ssid=P"abc\x00test" | 
|  | * removed default ACM=1 from AC_VO and AC_VI | 
|  | * added optional "ht40" argument for P2P ctrl_iface commands to allow | 
|  | 40 MHz channels to be requested on the 5 GHz band | 
|  | * added optional parameters for p2p_invite command to specify channel | 
|  | when reinvoking a persistent group as the GO | 
|  | * improved FIPS mode builds with OpenSSL | 
|  | - "make fips" with CONFIG_FIPS=y to build wpa_supplicant with the | 
|  | OpenSSL FIPS object module | 
|  | - replace low level OpenSSL AES API calls to use EVP | 
|  | - use OpenSSL keying material exporter when possible | 
|  | - do not export TLS keys in FIPS mode | 
|  | - remove MD5 from CONFIG_FIPS=y builds | 
|  | - use OpenSSL function for PKBDF2 passphrase-to-PSK | 
|  | - use OpenSSL HMAC implementation | 
|  | - mix RAND_bytes() output into random_get_bytes() to force OpenSSL | 
|  | DRBG to be used in FIPS mode | 
|  | - use OpenSSL CMAC implementation | 
|  | * added mechanism to disable TLS Session Ticket extension | 
|  | - a workaround for servers that do not support TLS extensions that | 
|  | was enabled by default in recent OpenSSL versions | 
|  | - tls_disable_session_ticket=1 | 
|  | - automatically disable TLS Session Ticket extension by default when | 
|  | using EAP-TLS/PEAP/TTLS (i.e., only use it with EAP-FAST) | 
|  | * changed VENDOR-TEST EAP method to use proper private enterprise number | 
|  | (this will not interoperate with older versions) | 
|  | * disable network block temporarily on authentication failures | 
|  | * improved WPS AP selection during WPS PIN iteration | 
|  | * added support for configuring GCMP cipher for IEEE 802.11ad | 
|  | * added support for Wi-Fi Display extensions | 
|  | - WFD_SUBELEMENT_SET ctrl_iface command to configure WFD subelements | 
|  | - SET wifi_display <0/1> to disable/enable WFD support | 
|  | - WFD service discovery | 
|  | - an external program is needed to manage the audio/video streaming | 
|  | and codecs | 
|  | * optimized scan result use for network selection | 
|  | - use the internal BSS table instead of raw scan results | 
|  | - allow unnecessary scans to be skipped if fresh information is | 
|  | available (e.g., after GAS/ANQP round for Interworking) | 
|  | * added support for 256-bit AES with internal TLS implementation | 
|  | * allow peer to propose channel in P2P invitation process for a | 
|  | persistent group | 
|  | * added disallow_aps parameter to allow BSSIDs/SSIDs to be disallowed | 
|  | from network selection | 
|  | * re-enable the networks disabled during WPS operations | 
|  | * allow P2P functionality to be disabled per interface (p2p_disabled=1) | 
|  | * added secondary device types into P2P_PEER output | 
|  | * added an option to disable use of a separate P2P group interface | 
|  | (p2p_no_group_iface=1) | 
|  | * fixed P2P Bonjour SD to match entries with both compressed and not | 
|  | compressed domain name format and support multiple Bonjour PTR matches | 
|  | for the same key | 
|  | * use deauthentication instead of disassociation for all disconnection | 
|  | operations; this removes the now unused disassociate() wpa_driver_ops | 
|  | callback | 
|  | * optimized PSK generation on P2P GO by caching results to avoid | 
|  | multiple PBKDF2 operations | 
|  | * added okc=1 global configuration parameter to allow OKC to be enabled | 
|  | by default for all network blocks | 
|  | * added a workaround for WPS PBC session overlap detection to avoid | 
|  | interop issues with deployed station implementations that do not | 
|  | remove active PBC indication from Probe Request frames properly | 
|  | * added basic support for 60 GHz band | 
|  | * extend EAPOL frames processing workaround for roaming cases | 
|  | (postpone processing of unexpected EAPOL frame until association | 
|  | event to handle reordered events) | 
|  |  | 
|  | 2012-05-10 - v1.0 | 
|  | * bsd: Add support for setting HT values in IFM_MMASK. | 
|  | * Delay STA entry removal until Deauth/Disassoc TX status in AP mode. | 
|  | This allows the driver to use PS buffering of Deauthentication and | 
|  | Disassociation frames when the STA is in power save sleep. Only | 
|  | available with drivers that provide TX status events for Deauth/ | 
|  | Disassoc frames (nl80211). | 
|  | * Drop oldest unknown BSS table entries first. This makes it less | 
|  | likely to hit connection issues in environments with huge number | 
|  | of visible APs. | 
|  | * Add systemd support. | 
|  | * Add support for setting the syslog facility from the config file | 
|  | at build time. | 
|  | * atheros: Add support for IEEE 802.11w configuration. | 
|  | * AP mode: Allow enable HT20 if driver supports it, by setting the | 
|  | config parameter ieee80211n. | 
|  | * Allow AP mode to disconnect STAs based on low ACK condition (when | 
|  | the data connection is not working properly, e.g., due to the STA | 
|  | going outside the range of the AP). Disabled by default, enable by | 
|  | config option disassoc_low_ack. | 
|  | * nl80211: | 
|  | - Support GTK rekey offload. | 
|  | - Support PMKSA candidate events. This adds support for RSN | 
|  | pre-authentication with nl80211 interface and drivers that handle | 
|  | roaming internally. | 
|  | * dbus: | 
|  | - Add a DBus signal for EAP SM requests, emitted on the Interface | 
|  | object. | 
|  | - Export max scan ssids supported by the driver as MaxScanSSID. | 
|  | - Add signal Certification for information about server certification. | 
|  | - Add BSSExpireAge and BSSExpireCount interface properties and | 
|  | support set/get, which allows for setting BSS cache expiration age | 
|  | and expiration scan count. | 
|  | - Add ConfigFile to AddInterface properties. | 
|  | - Add Interface.Country property and support to get/set the value. | 
|  | - Add DBus property CurrentAuthMode. | 
|  | - P2P DBus API added. | 
|  | - Emit property changed events (for property BSSs) when adding/ | 
|  | removing BSSs. | 
|  | - Treat '' in SSIDs of Interface.Scan as a request for broadcast | 
|  | scan, instead of ignoring it. | 
|  | - Add DBus getter/setter for FastReauth. | 
|  | - Raise PropertiesChanged on org.freedesktop.DBus.Properties. | 
|  | * wpa_cli: | 
|  | - Send AP-STA-DISCONNECTED event when an AP disconnects a station | 
|  | due to inactivity. | 
|  | - Make second argument to set command optional. This can be used to | 
|  | indicate a zero length value. | 
|  | - Add signal_poll command. | 
|  | - Add bss_expire_age and bss_expire_count commands to set/get BSS | 
|  | cache expiration age and expiration scan count. | 
|  | - Add ability to set scan interval (the time in seconds wpa_s waits | 
|  | before requesting a new scan after failing to find a suitable | 
|  | network in scan results) using scan_interval command. | 
|  | - Add event CTRL-EVENT-ASSOC-REJECT for association rejected. | 
|  | - Add command get version, that returns wpa_supplicant version string. | 
|  | - Add command sta_autoconnect for disabling automatic reconnection | 
|  | on receiving disconnection event. | 
|  | - Setting bssid parameter to an empty string "" or any can now be | 
|  | used to clear the bssid_set flag in a network block, i.e., to remove | 
|  | bssid filtering. | 
|  | - Add tdls_testing command to add a special testing feature for | 
|  | changing TDLS behavior. Build param CONFIG_TDLS_TESTING must be | 
|  | enabled as well. | 
|  | - For interworking, add wpa_cli commands interworking_select, | 
|  | interworking_connect, anqp_get, fetch_anqp, and stop_fetch_anqp. | 
|  | - Many P2P commands were added. See README-P2P. | 
|  | - Many WPS/WPS ER commands - see WPS/WPS ER sections for details. | 
|  | - Allow set command to change global config parameters. | 
|  | - Add log_level command, which can be used to display the current | 
|  | debugging level and to change the log level during run time. | 
|  | - Add note command, which can be used to insert notes to the debug | 
|  | log. | 
|  | - Add internal line edit implementation. CONFIG_WPA_CLI_EDIT=y | 
|  | can now be used to build wpa_cli with internal implementation of | 
|  | line editing and history support. This can be used as a replacement | 
|  | for CONFIG_READLINE=y. | 
|  | * AP mode: Add max_num_sta config option, which can be used to limit | 
|  | the number of stations allowed to connect to the AP. | 
|  | * Add WPA_IGNORE_CONFIG_ERRORS build option to continue in case of bad | 
|  | config file. | 
|  | * wext: Increase scan timeout from 5 to 10 seconds. | 
|  | * Add blacklist command, allowing an external program to | 
|  | manage the BSS blacklist and display its current contents. | 
|  | * WPS: | 
|  | - Add wpa_cli wps_pin get command for generating random PINs. This can | 
|  | be used in a UI to generate a PIN without starting WPS (or P2P) | 
|  | operation. | 
|  | - Set RF bands based on driver capabilities, instead of hardcoding | 
|  | them. | 
|  | - Add mechanism for indicating non-standard WPS errors. | 
|  | - Add CONFIG_WPS_REG_DISABLE_OPEN=y option to disable open networks | 
|  | by default. | 
|  | - Add wps_ap_pin cli command for wpa_supplicant AP mode. | 
|  | - Add wps_check_pin cli command for processing PIN from user input. | 
|  | UIs can use this command to process a PIN entered by a user and to | 
|  | validate the checksum digit (if present). | 
|  | - Cancel WPS operation on PBC session overlap detection. | 
|  | - New wps_cancel command in wpa_cli will cancel a pending WPS | 
|  | operation. | 
|  | - wpa_cli action: Add WPS_EVENT_SUCCESS and WPS_EVENT_FAIL handlers. | 
|  | - Trigger WPS config update on Manufacturer, Model Name, Model | 
|  | Number, and Serial Number changes. | 
|  | - Fragment size is now configurable for EAP-WSC peer. Use | 
|  | wpa_cli set wps_fragment_size <val>. | 
|  | - Disable AP PIN after 10 consecutive failures. Slow down attacks on | 
|  | failures up to 10. | 
|  | - Allow AP to start in Enrollee mode without AP PIN for probing, to | 
|  | be compatible with Windows 7. | 
|  | - Add Config Error into WPS-FAIL events to provide more info to the | 
|  | user on how to resolve the issue. | 
|  | - Label and Display config methods are not allowed to be enabled | 
|  | at the same time, since it is unclear which PIN to use if both | 
|  | methods are advertised. | 
|  | - When controlling multiple interfaces: | 
|  | - apply WPS commands to all interfaces configured to use WPS | 
|  | - apply WPS config changes to all interfaces that use WPS | 
|  | - when an attack is detected on any interface, disable AP PIN on | 
|  | all interfaces | 
|  | * WPS ER: | 
|  | - Add special AP Setup Locked mode to allow read only ER. | 
|  | ap_setup_locked=2 can now be used to enable a special mode where | 
|  | WPS ER can learn the current AP settings, but cannot change them. | 
|  | - Show SetSelectedRegistrar events as ctrl_iface events | 
|  | - Add wps_er_set_config to enroll a network based on a local | 
|  | network configuration block instead of having to (re-)learn the | 
|  | current AP settings with wps_er_learn. | 
|  | - Allow AP filtering based on IP address, add ctrl_iface event for | 
|  | learned AP settings, add wps_er_config command to configure an AP. | 
|  | * WPS 2.0: Add support for WPS 2.0 (CONFIG_WPS2) | 
|  | - Add build option CONFIG_WPS_EXTENSIBILITY_TESTING to enable tool | 
|  | for testing protocol extensibility. | 
|  | - Add build option CONFIG_WPS_STRICT to allow disabling of WPS | 
|  | workarounds. | 
|  | - Add support for AuthorizedMACs attribute. | 
|  | * TDLS: | 
|  | - Propogate TDLS related nl80211 capability flags from kernel and | 
|  | add them as driver capability flags. If the driver doesn't support | 
|  | capabilities, assume TDLS is supported internally. When TDLS is | 
|  | explicitly not supported, disable all user facing TDLS operations. | 
|  | - Allow TDLS to be disabled at runtime (mostly for testing). | 
|  | Use set tdls_disabled. | 
|  | - Honor AP TDLS settings that prohibit/allow TDLS. | 
|  | - Add a special testing feature for changing TDLS behavior. Use | 
|  | CONFIG_TDLS_TESTING build param to enable. Configure at runtime | 
|  | with tdls_testing cli command. | 
|  | - Add support for TDLS 802.11z. | 
|  | * wlantest: Add a tool wlantest for IEEE802.11 protocol testing. | 
|  | wlantest can be used to capture frames from a monitor interface | 
|  | for realtime capturing or from pcap files for offline analysis. | 
|  | * Interworking: Support added for 802.11u. Enable in .config with | 
|  | CONFIG_INTERWORKING. See wpa_supplicant.conf for config parameters | 
|  | for interworking. wpa_cli commands added to support this are | 
|  | interworking_select, interworking_connect, anqp_get, fetch_anqp, | 
|  | and stop_fetch_anqp. | 
|  | * Android: Add build and runtime support for Android wpa_supplicant. | 
|  | * bgscan learn: Add new bgscan that learns BSS information based on | 
|  | previous scans, and uses that information to dynamically generate | 
|  | the list of channels for background scans. | 
|  | * Add a new debug message level for excessive information. Use | 
|  | -ddd to enable. | 
|  | * TLS: Add support for tls_disable_time_checks=1 in client mode. | 
|  | * Internal TLS: | 
|  | - Add support for TLS v1.1 (RFC 4346). Enable with build parameter | 
|  | CONFIG_TLSV11. | 
|  | - Add domainComponent parser for X.509 names. | 
|  | * Linux: Add RFKill support by adding an interface state "disabled". | 
|  | * Reorder some IEs to get closer to IEEE 802.11 standard. Move | 
|  | WMM into end of Beacon, Probe Resp and (Re)Assoc Resp frames. | 
|  | Move HT IEs to be later in (Re)Assoc Resp. | 
|  | * Solaris: Add support for wired 802.1X client. | 
|  | * Wi-Fi Direct support. See README-P2P for more information. | 
|  | * Many bugfixes. | 
|  |  | 
|  | 2010-04-18 - v0.7.2 | 
|  | * nl80211: fixed number of issues with roaming | 
|  | * avoid unnecessary roaming if multiple APs with similar signal | 
|  | strength are present in scan results | 
|  | * add TLS client events and server probing to ease design of | 
|  | automatic detection of EAP parameters | 
|  | * add option for server certificate matching (SHA256 hash of the | 
|  | certificate) instead of trusted CA certificate configuration | 
|  | * bsd: Cleaned up driver wrapper and added various low-level | 
|  | configuration options | 
|  | * wpa_gui-qt4: do not show too frequent WPS AP available events as | 
|  | tray messages | 
|  | * TNC: fixed issues with fragmentation | 
|  | * EAP-TNC: add Flags field into fragment acknowledgement (needed to | 
|  | interoperate with other implementations; may potentially breaks | 
|  | compatibility with older wpa_supplicant/hostapd versions) | 
|  | * wpa_cli: added option for using a separate process to receive event | 
|  | messages to reduce latency in showing these | 
|  | (CFLAGS += -DCONFIG_WPA_CLI_FORK=y in .config to enable this) | 
|  | * maximum BSS table size can now be configured (bss_max_count) | 
|  | * BSSes to be included in the BSS table can be filtered based on | 
|  | configured SSIDs to save memory (filter_ssids) | 
|  | * fix number of issues with IEEE 802.11r/FT; this version is not | 
|  | backwards compatible with old versions | 
|  | * nl80211: add support for IEEE 802.11r/FT protocol (both over-the-air | 
|  | and over-the-DS) | 
|  | * add freq_list network configuration parameter to allow the AP | 
|  | selection to filter out entries based on the operating channel | 
|  | * add signal strength change events for bgscan; this allows more | 
|  | dynamic changes to background scanning interval based on changes in | 
|  | the signal strength with the current AP; this improves roaming within | 
|  | ESS quite a bit, e.g., with bgscan="simple:30:-45:300" in the network | 
|  | configuration block to request background scans less frequently when | 
|  | signal strength remains good and to automatically trigger background | 
|  | scans whenever signal strength drops noticeably | 
|  | (this is currently only available with nl80211) | 
|  | * add BSSID and reason code (if available) to disconnect event messages | 
|  | * wpa_gui-qt4: more complete support for translating the GUI with | 
|  | linguist and add German translation | 
|  | * fix DH padding with internal crypto code (mainly, for WPS) | 
|  | * do not trigger initial scan automatically anymore if there are no | 
|  | enabled networks | 
|  |  | 
|  | 2010-01-16 - v0.7.1 | 
|  | * cleaned up driver wrapper API (struct wpa_driver_ops); the new API | 
|  | is not fully backwards compatible, so out-of-tree driver wrappers | 
|  | will need modifications | 
|  | * cleaned up various module interfaces | 
|  | * merge hostapd and wpa_supplicant developers' documentation into a | 
|  | single document | 
|  | * nl80211: use explicit deauthentication to clear cfg80211 state to | 
|  | avoid issues when roaming between APs | 
|  | * dbus: major design changes in the new D-Bus API | 
|  | (fi.w1.wpa_supplicant1) | 
|  | * nl80211: added support for IBSS networks | 
|  | * added internal debugging mechanism with backtrace support and memory | 
|  | allocation/freeing validation, etc. tests (CONFIG_WPA_TRACE=y) | 
|  | * added WPS ER unsubscription command to more cleanly unregister from | 
|  | receiving UPnP events when ER is terminated | 
|  | * cleaned up AP mode operations to avoid need for virtual driver_ops | 
|  | wrapper | 
|  | * added BSS table to maintain more complete scan result information | 
|  | over multiple scans (that may include only partial results) | 
|  | * wpa_gui-qt4: update Peers dialog information more dynamically while | 
|  | the dialog is kept open | 
|  | * fixed PKCS#12 use with OpenSSL 1.0.0 | 
|  | * driver_wext: Added cfg80211-specific optimization to avoid some | 
|  | unnecessary scans and to speed up association | 
|  |  | 
|  | 2009-11-21 - v0.7.0 | 
|  | * increased wpa_cli ping interval to 5 seconds and made this | 
|  | configurable with a new command line options (-G<seconds>) | 
|  | * fixed scan buffer processing with WEXT to handle up to 65535 | 
|  | byte result buffer (previously, limited to 32768 bytes) | 
|  | * allow multiple driver wrappers to be specified on command line | 
|  | (e.g., -Dnl80211,wext); the first one that is able to initialize the | 
|  | interface will be used | 
|  | * added support for multiple SSIDs per scan request to optimize | 
|  | scan_ssid=1 operations in ap_scan=1 mode (i.e., search for hidden | 
|  | SSIDs); this requires driver support and can currently be used only | 
|  | with nl80211 | 
|  | * added support for WPS USBA out-of-band mechanism with USB Flash | 
|  | Drives (UFD) (CONFIG_WPS_UFD=y) | 
|  | * driver_ndis: add PAE group address to the multicast address list to | 
|  | fix wired IEEE 802.1X authentication | 
|  | * fixed IEEE 802.11r key derivation function to match with the standard | 
|  | (note: this breaks interoperability with previous version) [Bug 303] | 
|  | * added better support for drivers that allow separate authentication | 
|  | and association commands (e.g., mac80211-based Linux drivers with | 
|  | nl80211; SME in wpa_supplicant); this allows over-the-air FT protocol | 
|  | to be used (IEEE 802.11r) | 
|  | * fixed SHA-256 based key derivation function to match with the | 
|  | standard when using CCMP (for IEEE 802.11r and IEEE 802.11w) | 
|  | (note: this breaks interoperability with previous version) [Bug 307] | 
|  | * use shared driver wrapper files with hostapd | 
|  | * added AP mode functionality (CONFIG_AP=y) with mode=2 in the network | 
|  | block; this can be used for open and WPA2-Personal networks | 
|  | (optionally, with WPS); this links in parts of hostapd functionality | 
|  | into wpa_supplicant | 
|  | * wpa_gui-qt4: added new Peers dialog to show information about peers | 
|  | (other devices, including APs and stations, etc. in the neighborhood) | 
|  | * added support for WPS External Registrar functionality (configure APs | 
|  | and enroll new devices); can be used with wpa_gui-qt4 Peers dialog | 
|  | and wpa_cli commands wps_er_start, wps_er_stop, wps_er_pin, | 
|  | wps_er_pbc, wps_er_learn | 
|  | (this can also be used with a new 'none' driver wrapper if no | 
|  | wireless device or IEEE 802.1X on wired is needed) | 
|  | * driver_nl80211: multiple updates to provide support for new Linux | 
|  | nl80211/mac80211 functionality | 
|  | * updated management frame protection to use IEEE Std 802.11w-2009 | 
|  | * fixed number of small WPS issues and added workarounds to | 
|  | interoperate with common deployed broken implementations | 
|  | * added support for NFC out-of-band mechanism with WPS | 
|  | * driver_ndis: fixed wired IEEE 802.1X authentication with PAE group | 
|  | address frames | 
|  | * added preliminary support for IEEE 802.11r RIC processing | 
|  | * added support for specifying subset of enabled frequencies to scan | 
|  | (scan_freq option in the network configuration block); this can speed | 
|  | up scanning process considerably if it is known that only a small | 
|  | subset of channels is actually used in the network (this is currently | 
|  | supported only with -Dnl80211) | 
|  | * added a workaround for race condition between receiving the | 
|  | association event and the following EAPOL-Key | 
|  | * added background scan and roaming infrastructure to allow | 
|  | network-specific optimizations to be used to improve roaming within | 
|  | an ESS (same SSID) | 
|  | * added new DBus interface (fi.w1.wpa_supplicant1) | 
|  |  | 
|  | 2009-01-06 - v0.6.7 | 
|  | * added support for Wi-Fi Protected Setup (WPS) | 
|  | (wpa_supplicant can now be configured to act as a WPS Enrollee to | 
|  | enroll credentials for a network using PIN and PBC methods; in | 
|  | addition, wpa_supplicant can act as a wireless WPS Registrar to | 
|  | configure an AP); WPS support can be enabled by adding CONFIG_WPS=y | 
|  | into .config and setting the runtime configuration variables in | 
|  | wpa_supplicant.conf (see WPS section in the example configuration | 
|  | file); new wpa_cli commands wps_pin, wps_pbc, and wps_reg are used to | 
|  | manage WPS negotiation; see README-WPS for more details | 
|  | * added support for EAP-AKA' (draft-arkko-eap-aka-kdf) | 
|  | * added support for using driver_test over UDP socket | 
|  | * fixed PEAPv0 Cryptobinding interoperability issue with Windows Server | 
|  | 2008 NPS; optional cryptobinding is now enabled (again) by default | 
|  | * fixed PSK editing in wpa_gui | 
|  | * changed EAP-GPSK to use the IANA assigned EAP method type 51 | 
|  | * added a Windows installer that includes WinPcap and all the needed | 
|  | DLLs; in addition, it set up the registry automatically so that user | 
|  | will only need start wpa_gui to get prompted to start the wpasvc | 
|  | servide and add a new interface if needed through wpa_gui dialog | 
|  | * updated management frame protection to use IEEE 802.11w/D7.0 | 
|  |  | 
|  | 2008-11-23 - v0.6.6 | 
|  | * added Milenage SIM/USIM emulator for EAP-SIM/EAP-AKA | 
|  | (can be used to simulate test SIM/USIM card with a known private key; | 
|  | enable with CONFIG_SIM_SIMULATOR=y/CONFIG_USIM_SIMULATOR=y in .config | 
|  | and password="Ki:OPc"/password="Ki:OPc:SQN" in network configuration) | 
|  | * added a new network configuration option, wpa_ptk_rekey, that can be | 
|  | used to enforce frequent PTK rekeying, e.g., to mitigate some attacks | 
|  | against TKIP deficiencies | 
|  | * 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; this can be enabled with a build option | 
|  | CONFIG_DELAYED_MIC_ERROR_REPORT=y in .config | 
|  | * fixed EAP-AKA to use RES Length field in AT_RES as length in bits, | 
|  | not bytes | 
|  | * 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) | 
|  | * updated userspace MLME instructions to match with the current Linux | 
|  | mac80211 implementation; please also note that this can only be used | 
|  | with driver_nl80211.c (the old code from driver_wext.c was removed) | 
|  | * added support (Linux only) for RoboSwitch chipsets (often found in | 
|  | consumer grade routers); driver interface 'roboswitch' | 
|  | * fixed canceling of PMKSA caching when using drivers that generate | 
|  | RSN IE and refuse to drop PMKIDs that wpa_supplicant does not know | 
|  | about | 
|  |  | 
|  | 2008-11-01 - v0.6.5 | 
|  | * added support for SHA-256 as X.509 certificate digest when using the | 
|  | internal X.509/TLSv1 implementation | 
|  | * updated management frame protection to use IEEE 802.11w/D6.0 | 
|  | * added support for using SHA256-based stronger key derivation for WPA2 | 
|  | (IEEE 802.11w) | 
|  | * fixed FT (IEEE 802.11r) authentication after a failed association to | 
|  | use correct FTIE | 
|  | * added support for configuring Phase 2 (inner/tunneled) authentication | 
|  | method with wpa_gui-qt4 | 
|  |  | 
|  | 2008-08-10 - v0.6.4 | 
|  | * added support for EAP Sequences in EAP-FAST Phase 2 | 
|  | * added support for using TNC with EAP-FAST | 
|  | * added driver_ps3 for the PS3 Linux wireless driver | 
|  | * added support for optional cryptobinding with PEAPv0 | 
|  | * fixed the OpenSSL patches (0.9.8g and 0.9.9) for EAP-FAST to | 
|  | allow fallback to full handshake if server rejects PAC-Opaque | 
|  | * added fragmentation support for EAP-TNC | 
|  | * added support for parsing PKCS #8 formatted private keys into the | 
|  | internal TLS implementation (both PKCS #1 RSA key and PKCS #8 | 
|  | encapsulated RSA key can now be used) | 
|  | * added option of using faster, but larger, routines in the internal | 
|  | LibTomMath (for internal TLS implementation) to speed up DH and RSA | 
|  | calculations (CONFIG_INTERNAL_LIBTOMMATH_FAST=y) | 
|  | * fixed race condition between disassociation event and group key | 
|  | handshake to avoid getting stuck in incorrect state [Bug 261] | 
|  | * fixed opportunistic key caching (proactive_key_caching) | 
|  |  | 
|  | 2008-02-22 - v0.6.3 | 
|  | * removed 'nai' and 'eappsk' network configuration variables that were | 
|  | previously used for configuring user identity and key for EAP-PSK, | 
|  | EAP-PAX, EAP-SAKE, and EAP-GPSK. 'identity' field is now used as the | 
|  | replacement for 'nai' (if old configuration used a separate | 
|  | 'identity' value, that would now be configured as | 
|  | 'anonymous_identity'). 'password' field is now used as the | 
|  | replacement for 'eappsk' (it can also be set using hexstring to | 
|  | present random binary data) | 
|  | * removed '-w' command line parameter (wait for interface to be added, | 
|  | if needed); cleaner way of handling this functionality is to use an | 
|  | external mechanism (e.g., hotplug scripts) that start wpa_supplicant | 
|  | when an interface is added | 
|  | * updated FT support to use the latest draft, IEEE 802.11r/D9.0 | 
|  | * added ctrl_iface monitor event (CTRL-EVENT-SCAN-RESULTS) for | 
|  | indicating when new scan results become available | 
|  | * added new ctrl_iface command, BSS, to allow scan results to be | 
|  | fetched without hitting the message size limits (this command | 
|  | can be used to iterate through the scan results one BSS at the time) | 
|  | * fixed EAP-SIM not to include AT_NONCE_MT and AT_SELECTED_VERSION | 
|  | attributes in EAP-SIM Start/Response when using fast reauthentication | 
|  | * fixed EAPOL not to end up in infinite loop when processing dynamic | 
|  | WEP keys with IEEE 802.1X | 
|  | * fixed problems in getting NDIS events from WMI on Windows 2000 | 
|  |  | 
|  | 2008-01-01 - v0.6.2 | 
|  | * added support for Makefile builds to include debug-log-to-a-file | 
|  | functionality (CONFIG_DEBUG_FILE=y and -f<path> on command line) | 
|  | * fixed EAP-SIM and EAP-AKA message parser to validate attribute | 
|  | lengths properly to avoid potential crash caused by invalid messages | 
|  | * added data structure for storing allocated buffers (struct wpabuf); | 
|  | this does not affect wpa_supplicant usage, but many of the APIs | 
|  | changed and various interfaces (e.g., EAP) is not compatible with old | 
|  | versions | 
|  | * added support for protecting EAP-AKA/Identity messages with | 
|  | AT_CHECKCODE (optional feature in RFC 4187) | 
|  | * added support for protected result indication with AT_RESULT_IND for | 
|  | EAP-SIM and EAP-AKA (phase1="result_ind=1") | 
|  | * added driver_wext workaround for race condition between scanning and | 
|  | association with drivers that take very long time to scan all | 
|  | channels (e.g., madwifi with dual-band cards); wpa_supplicant is now | 
|  | using a longer hardcoded timeout for the scan if the driver supports | 
|  | notifications for scan completion (SIOCGIWSCAN event); this helps, | 
|  | e.g., in cases where wpa_supplicant and madwifi driver ended up in | 
|  | loop where the driver did not even try to associate | 
|  | * stop EAPOL timer tick when no timers are in use in order to reduce | 
|  | power consumption (no need to wake up the process once per second) | 
|  | [Bug 237] | 
|  | * added support for privilege separation (run only minimal part of | 
|  | wpa_supplicant functionality as root and rest as unprivileged, | 
|  | non-root process); see 'Privilege separation' in README for details; | 
|  | this is disabled by default and can be enabled with CONFIG_PRIVSEP=y | 
|  | in .config | 
|  | * changed scan results data structure to include all information | 
|  | elements to make it easier to support new IEs; old get_scan_result() | 
|  | driver_ops is still supported for backwards compatibility (results | 
|  | are converted internally to the new format), but all drivers should | 
|  | start using the new get_scan_results2() to make them more likely to | 
|  | work with new features | 
|  | * Qt4 version of wpa_gui (wpa_gui-qt4 subdirectory) is now native Qt4 | 
|  | application, i.e., it does not require Qt3Support anymore; Windows | 
|  | binary of wpa_gui.exe is now from this directory and only requires | 
|  | QtCore4.dll and QtGui4.dll libraries | 
|  | * updated Windows binary build to use Qt 4.3.3 and made Qt DLLs | 
|  | available as a separate package to make wpa_gui installation easier: | 
|  | http://w1.fi/wpa_supplicant/qt4/wpa_gui-qt433-windows-dll.zip | 
|  | * added support for EAP-IKEv2 (draft-tschofenig-eap-ikev2-15.txt); | 
|  | only shared key/password authentication is supported in this version | 
|  |  | 
|  | 2007-11-24 - v0.6.1 | 
|  | * added support for configuring password as NtPasswordHash | 
|  | (16-byte MD4 hash of password) in hash:<32 hex digits> format | 
|  | * added support for fallback from abbreviated TLS handshake to | 
|  | full handshake when using EAP-FAST (e.g., due to an expired | 
|  | PAC-Opaque) | 
|  | * updated EAP Generalized Pre-Shared Key (EAP-GPSK) to use the latest | 
|  | draft (draft-ietf-emu-eap-gpsk-07.txt) | 
|  | * added support for drivers that take care of RSN 4-way handshake | 
|  | internally (WPA_DRIVER_FLAGS_4WAY_HANDSHAKE in get_capa flags and | 
|  | WPA_ALG_PMK in set_key) | 
|  | * added an experimental port for Mac OS X (CONFIG_DRIVER_OSX=y in | 
|  | .config); this version supports only ap_scan=2 mode and allow the | 
|  | driver to take care of the 4-way handshake | 
|  | * fixed a buffer overflow in parsing TSF from scan results when using | 
|  | driver_wext.c with a driver that includes the TSF (e.g., iwl4965) | 
|  | [Bug 232] | 
|  | * updated FT support to use the latest draft, IEEE 802.11r/D8.0 | 
|  | * fixed an integer overflow issue in the ASN.1 parser used by the | 
|  | (experimental) internal TLS implementation to avoid a potential | 
|  | buffer read overflow | 
|  | * fixed a race condition with -W option (wait for a control interface | 
|  | monitor before starting) that could have caused the first messages to | 
|  | be lost | 
|  | * added support for processing TNCC-TNCS-Messages to report | 
|  | recommendation (allow/none/isolate) when using TNC [Bug 243] | 
|  |  | 
|  | 2007-05-28 - v0.6.0 | 
|  | * added network configuration parameter 'frequency' for setting | 
|  | initial channel for IBSS (adhoc) networks | 
|  | * added experimental IEEE 802.11r/D6.0 support | 
|  | * updated EAP-SAKE to RFC 4763 and the IANA-allocated EAP type 48 | 
|  | * updated EAP-PSK to use the IANA-allocated EAP type 47 | 
|  | * fixed EAP-PAX key derivation | 
|  | * fixed EAP-PSK bit ordering of the Flags field | 
|  | * fixed EAP-PEAP/TTLS/FAST to use the correct EAP identifier in | 
|  | tunnelled identity request (previously, the identifier from the outer | 
|  | method was used, not the tunnelled identifier which could be | 
|  | different) | 
|  | * added support for fragmentation of outer TLS packets during Phase 2 | 
|  | of EAP-PEAP/TTLS/FAST | 
|  | * fixed EAP-TTLS AVP parser processing for too short AVP lengths | 
|  | * added support for EAP-FAST authentication with inner methods that | 
|  | generate MSK (e.g., EAP-MSCHAPv2 that was previously only supported | 
|  | for PAC provisioning) | 
|  | * added support for authenticated EAP-FAST provisioning | 
|  | * added support for configuring maximum number of EAP-FAST PACs to | 
|  | store in a PAC list (fast_max_pac_list_len=<max> in phase1 string) | 
|  | * added support for storing EAP-FAST PACs in binary format | 
|  | (fast_pac_format=binary in phase1 string) | 
|  | * fixed dbus ctrl_iface to validate message interface before | 
|  | dispatching to avoid a possible segfault [Bug 190] | 
|  | * fixed PeerKey key derivation to use the correct PRF label | 
|  | * updated Windows binary build to link against OpenSSL 0.9.8d and | 
|  | added support for EAP-FAST | 
|  | * updated EAP Generalized Pre-Shared Key (EAP-GPSK) to use the latest | 
|  | draft (draft-ietf-emu-eap-gpsk-04.txt) | 
|  | * fixed EAP-AKA Notification processing to allow Notification to be | 
|  | processed after AKA Challenge response has been sent | 
|  | * updated to use IEEE 802.11w/D2.0 for management frame protection | 
|  | (still experimental) | 
|  | * fixed EAP-TTLS implementation not to crash on use of freed memory | 
|  | if TLS library initialization fails | 
|  | * added support for EAP-TNC (Trusted Network Connect) | 
|  | (this version implements the EAP-TNC method and EAP-TTLS changes | 
|  | needed to run two methods in sequence (IF-T) and the IF-IMC and | 
|  | IF-TNCCS interfaces from TNCC) | 
|  |  | 
|  | 2006-11-24 - v0.5.6 | 
|  | * added experimental, integrated TLSv1 client implementation with the | 
|  | needed X.509/ASN.1/RSA/bignum processing (this can be enabled by | 
|  | setting CONFIG_TLS=internal and CONFIG_INTERNAL_LIBTOMMATH=y in | 
|  | .config); this can be useful, e.g., if the target system does not | 
|  | have a suitable TLS library and a minimal code size is required | 
|  | (total size of this internal TLS/crypto code is bit under 50 kB on | 
|  | x86 and the crypto code is shared by rest of the supplicant so some | 
|  | of it was already required; TLSv1/X.509/ASN.1/RSA added about 25 kB) | 
|  | * removed STAKey handshake since PeerKey handshake has replaced it in | 
|  | IEEE 802.11ma and there are no known deployments of STAKey | 
|  | * updated EAP Generalized Pre-Shared Key (EAP-GPSK) to use the latest | 
|  | draft (draft-ietf-emu-eap-gpsk-01.txt) | 
|  | * added preliminary implementation of IEEE 802.11w/D1.0 (management | 
|  | frame protection) | 
|  | (Note: this requires driver support to work properly.) | 
|  | (Note2: IEEE 802.11w is an unapproved draft and subject to change.) | 
|  | * fixed Windows named pipes ctrl_iface to not stop listening for | 
|  | commands if client program opens a named pipe and closes it | 
|  | immediately without sending a command | 
|  | * fixed USIM PIN status determination for the case that PIN is not | 
|  | needed (this allows EAP-AKA to be used with USIM cards that do not | 
|  | use PIN) | 
|  | * added support for reading 3G USIM AID from EF_DIR to allow EAP-AKA to | 
|  | be used with cards that do not support file selection based on | 
|  | partial AID | 
|  | * added support for matching the subjectAltName of the authentication | 
|  | server certificate against multiple name components (e.g., | 
|  | altsubject_match="DNS:server.example.com;DNS:server2.example.com") | 
|  | * fixed EAP-SIM/AKA key derivation for re-authentication case (only | 
|  | affects IEEE 802.1X with dynamic WEP keys) | 
|  | * changed ctrl_iface network configuration 'get' operations to not | 
|  | return password/key material; if these fields are requested, "*" | 
|  | will be returned if the password/key is set, but the value of the | 
|  | parameter is not exposed | 
|  |  | 
|  | 2006-08-27 - v0.5.5 | 
|  | * added support for building Windows version with UNICODE defined | 
|  | (wide-char functions) | 
|  | * driver_ndis: fixed static WEP configuration to avoid race condition | 
|  | issues with some NDIS drivers between association and setting WEP | 
|  | keys | 
|  | * driver_ndis: added validation for IELength value in scan results to | 
|  | avoid crashes when using buggy NDIS drivers [Bug 165] | 
|  | * fixed Release|Win32 target in the Visual Studio project files | 
|  | (previously, only Debug|Win32 target was set properly) | 
|  | * changed control interface API call wpa_ctrl_pending() to allow it to | 
|  | return -1 on error (e.g., connection lost); control interface clients | 
|  | will need to make sure that they verify that the value is indeed >0 | 
|  | when determining whether there are pending messages | 
|  | * added an alternative control interface backend for Windows targets: | 
|  | Named Pipe (CONFIG_CTRL_IFACE=named_pipe); this is now the default | 
|  | control interface mechanism for Windows builds (previously, UDP to | 
|  | localhost was used) | 
|  | * changed ctrl_interface configuration for UNIX domain sockets: | 
|  | - deprecated ctrl_interface_group variable (it may be removed in | 
|  | future versions) | 
|  | - allow both directory and group be configured with ctrl_interface | 
|  | in following format: DIR=/var/run/wpa_supplicant GROUP=wheel | 
|  | - ctrl_interface=/var/run/wpa_supplicant is still supported for the | 
|  | case when group is not changed | 
|  | * added support for controlling more than one interface per process in | 
|  | Windows version | 
|  | * added a workaround for a case where the AP is using unknown address | 
|  | (e.g., MAC address of the wired interface) as the source address for | 
|  | EAPOL-Key frames; previously, that source address was used as the | 
|  | destination for EAPOL-Key frames and in key derivation; now, BSSID is | 
|  | used even if the source address does not match with it | 
|  | (this resolves an interoperability issue with Thomson SpeedTouch 580) | 
|  | * added a workaround for UDP-based control interface (which was used in | 
|  | Windows builds before this release) to prevent packets with forged | 
|  | addresses from being accepted as local control requests | 
|  | * removed ndis_events.cpp and possibility of using external | 
|  | ndis_events.exe; C version (ndis_events.c) is fully functional and | 
|  | there is no desire to maintain two separate versions of this | 
|  | implementation | 
|  | * ndis_events: Changed NDIS event notification design to use WMI to | 
|  | learn the adapter description through Win32_PnPEntity class; this | 
|  | should fix some cases where the adapter name was not recognized | 
|  | correctly (e.g., with some USB WLAN adapters, e.g., Ralink RT2500 | 
|  | USB) [Bug 113] | 
|  | * fixed selection of the first network in ap_scan=2 mode; previously, | 
|  | wpa_supplicant could get stuck in SCANNING state when only the first | 
|  | network for enabled (e.g., after 'wpa_cli select_network 0') | 
|  | * winsvc: added support for configuring ctrl_interface parameters in | 
|  | registry (ctrl_interface string value in | 
|  | HKLM\SOFTWARE\wpa_supplicant\interfaces\0000 key); this new value is | 
|  | required to enable control interface (previously, this was hardcoded | 
|  | to be enabled) | 
|  | * allow wpa_gui subdirectory to be built with both Qt3 and Qt4 | 
|  | * converted wpa_gui-qt4 subdirectory to use Qt4 specific project format | 
|  |  | 
|  | 2006-06-20 - v0.5.4 | 
|  | * fixed build with CONFIG_STAKEY=y [Bug 143] | 
|  | * added support for doing MLME (IEEE 802.11 management frame | 
|  | processing) in wpa_supplicant when using Devicescape IEEE 802.11 | 
|  | stack (wireless-dev.git tree) | 
|  | * added a new network block configuration option, fragment_size, to | 
|  | configure the maximum EAP fragment size | 
|  | * driver_ndis: Disable WZC automatically for the selected interface to | 
|  | avoid conflicts with two programs trying to control the radio; WZC | 
|  | will be re-enabled (if it was enabled originally) when wpa_supplicant | 
|  | is terminated | 
|  | * added an experimental TLSv1 client implementation | 
|  | (CONFIG_TLS=internal) that can be used instead of an external TLS | 
|  | library, e.g., to reduce total size requirement on systems that do | 
|  | not include any TLS library by default (this is not yet complete; | 
|  | basic functionality is there, but certificate validation is not yet | 
|  | included) | 
|  | * added PeerKey handshake implementation for IEEE 802.11e | 
|  | direct link setup (DLS) to replace STAKey handshake | 
|  | * fixed WPA PSK update through ctrl_iface for the case where the old | 
|  | PSK was derived from an ASCII passphrase and the new PSK is set as | 
|  | a raw PSK (hex string) | 
|  | * added new configuration option for identifying which network block | 
|  | was used (id_str in wpa_supplicant.conf; included on | 
|  | WPA_EVENT_CONNECT monitor event and as WPA_ID_STR environmental | 
|  | variable in wpa_cli action scripts; in addition WPA_ID variable is | 
|  | set to the current unique identifier that wpa_supplicant assigned | 
|  | automatically for the network and that can be used with | 
|  | GET_NETWORK/SET_NETWORK ctrl_iface commands) | 
|  | * wpa_cli action script is now called only when the connect/disconnect | 
|  | status changes or when associating with a different network | 
|  | * fixed configuration parser not to remove CCMP from group cipher list | 
|  | if WPA-None (adhoc) is used (pairwise=NONE in that case) | 
|  | * fixed integrated NDIS events processing not to hang the process due | 
|  | to a missed change in eloop_win.c API in v0.5.3 [Bug 155] | 
|  | * added support for EAP Generalized Pre-Shared Key (EAP-GPSK, | 
|  | draft-clancy-emu-eap-shared-secret-00.txt) | 
|  | * added Microsoft Visual Studio 2005 solution and project files for | 
|  | build wpa_supplicant for Windows (see vs2005 subdirectory) | 
|  | * eloop_win: fixed unregistration of Windows events | 
|  | * l2_packet_winpcap: fixed a deadlock in deinitializing l2_packet | 
|  | at the end of RSN pre-authentication and added unregistration of | 
|  | a Windows event to avoid getting eloop_win stuck with an invalid | 
|  | handle | 
|  | * driver_ndis: added support for selecting AP based on BSSID | 
|  | * added new environmental variable for wpa_cli action scripts: | 
|  | WPA_CTRL_DIR is the current control interface directory | 
|  | * driver_ndis: added support for using NDISUIO instead of WinPcap for | 
|  | OID set/query operations (CONFIG_USE_NDISUIO=y in .config); with new | 
|  | l2_packet_ndis (CONFIG_L2_PACKET=ndis), this can be used to build | 
|  | wpa_supplicant without requiring WinPcap; note that using NDISUIO | 
|  | requires that WZC is disabled (net stop wzcsvc) since NDISUIO allows | 
|  | only one application to open the device | 
|  | * changed NDIS driver naming to only include device GUID, e.g., | 
|  | {7EE3EFE5-C165-472F-986D-F6FBEDFE8C8D}, instead of including WinPcap | 
|  | specific \Device\NPF_ prefix before the GUID; the prefix is still | 
|  | allowed for backwards compatibility, but it is not required anymore | 
|  | when specifying the interface | 
|  | * driver_ndis: re-initialize driver interface is the adapter is removed | 
|  | and re-inserted [Bug 159] | 
|  | * driver_madwifi: fixed TKIP and CCMP sequence number configuration on | 
|  | big endian hosts [Bug 146] | 
|  |  | 
|  | 2006-04-27 - v0.5.3 | 
|  | * fixed EAP-GTC response to include correct user identity when run as | 
|  | phase 2 method of EAP-FAST (i.e., EAP-FAST did not work in v0.5.2) | 
|  | * driver_ndis: Fixed encryption mode configuration for unencrypted | 
|  | networks (some NDIS drivers ignored this, but others, e.g., Broadcom, | 
|  | refused to associate with open networks) [Bug 106] | 
|  | * driver_ndis: use BSSID OID polling to detect when IBSS network is | 
|  | formed even when ndis_events code is included since some NDIS drivers | 
|  | do not generate media connect events in IBSS mode | 
|  | * config_winreg: allow global ctrl_interface parameter to be configured | 
|  | in Windows registry | 
|  | * config_winreg: added support for saving configuration data into | 
|  | Windows registry | 
|  | * added support for controlling network device operational state | 
|  | (dormant/up) for Linux 2.6.17 to improve DHCP processing (see | 
|  | http://www.flamewarmaster.de/software/dhcpclient/ for a DHCP client | 
|  | that can use this information) | 
|  | * driver_wext: added support for WE-21 change to SSID configuration | 
|  | * driver_wext: fixed privacy configuration for static WEP keys mode | 
|  | [Bug 140] | 
|  | * added an optional driver_ops callback for MLME-SETPROTECTION.request | 
|  | primitive | 
|  | * added support for EAP-SAKE (no EAP method number allocated yet, so | 
|  | this is using the same experimental type 255 as EAP-PSK) | 
|  | * added support for dynamically loading EAP methods (.so files) instead | 
|  | of requiring them to be statically linked in; this is disabled by | 
|  | default (see CONFIG_DYNAMIC_EAP_METHODS in defconfig for information | 
|  | on how to use this) | 
|  |  | 
|  | 2006-03-19 - v0.5.2 | 
|  | * do not try to use USIM APDUs when initializing PC/SC for SIM card | 
|  | access for a network that has not enabled EAP-AKA | 
|  | * fixed EAP phase 2 Nak for EAP-{PEAP,TTLS,FAST} (this was broken in | 
|  | v0.5.1 due to the new support for expanded EAP types) | 
|  | * added support for generating EAP Expanded Nak | 
|  | * try to fetch scan results once before requesting new scan when | 
|  | starting up in ap_scan=1 mode (this can speed up initial association | 
|  | a lot with, e.g., madwifi-ng driver) | 
|  | * added support for receiving EAPOL frames from a Linux bridge | 
|  | interface (-bbr0 on command line) | 
|  | * fixed EAPOL re-authentication for sessions that used PMKSA caching | 
|  | * changed EAP method registration to use a dynamic list of methods | 
|  | instead of a static list generated at build time | 
|  | * fixed PMKSA cache deinitialization not to use freed memory when | 
|  | removing PMKSA entries | 
|  | * fixed a memory leak in EAP-TTLS re-authentication | 
|  | * reject WPA/WPA2 message 3/4 if it does not include any valid | 
|  | WPA/RSN IE | 
|  | * driver_wext: added fallback to use SIOCSIWENCODE for setting auth_alg | 
|  | if the driver does not support SIOCSIWAUTH | 
|  |  | 
|  | 2006-01-29 - v0.5.1 | 
|  | * driver_test: added better support for multiple APs and STAs by using | 
|  | a directory with sockets that include MAC address for each device in | 
|  | the name (driver_param=test_dir=/tmp/test) | 
|  | * added support for EAP expanded type (vendor specific EAP methods) | 
|  | * added AP_SCAN command into ctrl_iface so that ap_scan configuration | 
|  | option can be changed if needed | 
|  | * wpa_cli/wpa_gui: skip non-socket files in control directory when | 
|  | using UNIX domain sockets; this avoids selecting an incorrect | 
|  | interface (e.g., a PID file could be in this directory, even though | 
|  | use of this directory for something else than socket files is not | 
|  | recommended) | 
|  | * fixed TLS library deinitialization after RSN pre-authentication not | 
|  | to disable TLS library for normal authentication | 
|  | * driver_wext: Remove null-termination from SSID length if the driver | 
|  | used it; some Linux drivers do this and they were causing problems in | 
|  | wpa_supplicant not finding matching configuration block. This change | 
|  | would break a case where the SSID actually ends in '\0', but that is | 
|  | not likely to happen in real use. | 
|  | * fixed PMKSA cache processing not to trigger deauthentication if the | 
|  | current PMKSA cache entry is replaced with a valid new entry | 
|  | * fixed PC/SC initialization for ap_scan != 1 modes (this fixes | 
|  | EAP-SIM and EAP-AKA with real SIM/USIM card when using ap_scan=0 or | 
|  | ap_scan=2) | 
|  |  | 
|  | 2005-12-18 - v0.5.0 (beginning of 0.5.x development releases) | 
|  | * added experimental STAKey handshake implementation for IEEE 802.11e | 
|  | direct link setup (DLS); note: this is disabled by default in both | 
|  | build and runtime configuration (can be enabled with CONFIG_STAKEY=y | 
|  | and stakey=1) | 
|  | * fixed EAP-SIM and EAP-AKA pseudonym and fast re-authentication to | 
|  | decrypt AT_ENCR_DATA attributes correctly | 
|  | * fixed EAP-AKA to allow resynchronization within the same session | 
|  | * made code closer to ANSI C89 standard to make it easier to port to | 
|  | other C libraries and compilers | 
|  | * started moving operating system or C library specific functions into | 
|  | wrapper functions defined in os.h and implemented in os_*.c to make | 
|  | code more portable | 
|  | * wpa_supplicant can now be built with Microsoft Visual C++ | 
|  | (e.g., with the freely available Toolkit 2003 version or Visual | 
|  | C++ 2005 Express Edition and Platform SDK); see nmake.mak for an | 
|  | example makefile for nmake | 
|  | * added support for using Windows registry for command line parameters | 
|  | (CONFIG_MAIN=main_winsvc) and configuration data | 
|  | (CONFIG_BACKEND=winreg); see win_example.reg for an example registry | 
|  | contents; this version can be run both as a Windows service and as a | 
|  | normal application; 'wpasvc.exe app' to start as applicant, | 
|  | 'wpasvc.exe reg <full path to wpasvc.exe>' to register a service, | 
|  | 'net start wpasvc' to start the service, 'wpasvc.exe unreg' to | 
|  | unregister a service | 
|  | * made it possible to link ndis_events.exe functionality into | 
|  | wpa_supplicant.exe by defining CONFIG_NDIS_EVENTS_INTEGRATED | 
|  | * added better support for multiple control interface backends | 
|  | (CONFIG_CTRL_IFACE option); currently, 'unix' and 'udp' are supported | 
|  | * fixed PC/SC code to use correct length for GSM AUTH command buffer | 
|  | and to not use pioRecvPci with SCardTransmit() calls; these were not | 
|  | causing visible problems with pcsc-lite, but Windows Winscard.dll | 
|  | refused the previously used parameters; this fixes EAP-SIM and | 
|  | EAP-AKA authentication using SIM/USIM card under Windows | 
|  | * added new event loop implementation for Windows using | 
|  | WaitForMultipleObject() instead of select() in order to allow waiting | 
|  | for non-socket objects; this can be selected with | 
|  | CONFIG_ELOOP=eloop_win in .config | 
|  | * added support for selecting l2_packet implementation in .config | 
|  | (CONFIG_L2_PACKET; following options are available now: linux, pcap, | 
|  | winpcap, freebsd, none) | 
|  | * added new l2_packet implementation for WinPcap | 
|  | (CONFIG_L2_PACKET=winpcap) that uses a separate receive thread to | 
|  | reduce latency in EAPOL receive processing from about 100 ms to about | 
|  | 3 ms | 
|  | * added support for EAP-FAST key derivation using other ciphers than | 
|  | RC4-128-SHA for authentication and AES128-SHA for provisioning | 
|  | * added support for configuring CA certificate as DER file and as a | 
|  | configuration blob | 
|  | * fixed private key configuration as configuration blob and added | 
|  | support for using PKCS#12 as a blob | 
|  | * tls_gnutls: added support for using PKCS#12 files; added support for | 
|  | session resumption | 
|  | * added support for loading trusted CA certificates from Windows | 
|  | certificate store: ca_cert="cert_store://<name>", where <name> is | 
|  | likely CA (Intermediate CA certificates) or ROOT (root certificates) | 
|  | * added C version of ndis_events.cpp and made it possible to build this | 
|  | with MinGW so that CONFIG_NDIS_EVENTS_INTEGRATED can be used more | 
|  | easily on cross-compilation builds | 
|  | * added wpasvc.exe into Windows binary release; this is an alternative | 
|  | version of wpa_supplicant.exe with configuration backend using | 
|  | Windows registry and with the entry point designed to run as a | 
|  | Windows service | 
|  | * integrated ndis_events.exe functionality into wpa_supplicant.exe and | 
|  | wpasvc.exe and removed this additional tool from the Windows binary | 
|  | release since it is not needed anymore | 
|  | * load winscard.dll functions dynamically when building with MinGW | 
|  | since MinGW does not yet include winscard library | 
|  |  | 
|  | 2005-11-20 - v0.4.7 (beginning of 0.4.x stable releases) | 
|  | * l2_packet_pcap: fixed wired IEEE 802.1X authentication with libpcap | 
|  | and WinPcap to receive frames sent to PAE group address | 
|  | * disable EAP state machine when IEEE 802.1X authentication is not used | 
|  | in order to get rid of bogus "EAP failed" messages | 
|  | * fixed OpenSSL error reporting to go through all pending errors to | 
|  | avoid confusing reports of old errors being reported at later point | 
|  | during handshake | 
|  | * fixed configuration file updating to not write empty variables | 
|  | (e.g., proto or key_mgmt) that the file parser would not accept | 
|  | * fixed ADD_NETWORK ctrl_iface command to use the same default values | 
|  | for variables as empty network definitions read from config file | 
|  | would get | 
|  | * fixed EAP state machine to not discard EAP-Failure messages in many | 
|  | cases (e.g., during TLS handshake) | 
|  | * fixed a infinite loop in private key reading if the configured file | 
|  | cannot be parsed successfully | 
|  | * driver_madwifi: added support for madwifi-ng | 
|  | * wpa_gui: do not display password/PSK field contents | 
|  | * wpa_gui: added CA certificate configuration | 
|  | * driver_ndis: fixed scan request in ap_scan=2 mode not to change SSID | 
|  | * driver_ndis: include Beacon IEs in AssocInfo in order to notice if | 
|  | the new AP is using different WPA/RSN IE | 
|  | * use longer timeout for IEEE 802.11 association to avoid problems with | 
|  | drivers that may take more than five second to associate | 
|  |  | 
|  | 2005-10-27 - v0.4.6 | 
|  | * allow fallback to WPA, if mixed WPA+WPA2 networks have mismatch in | 
|  | RSN IE, but WPA IE would match with wpa_supplicant configuration | 
|  | * added support for named configuration blobs in order to avoid having | 
|  | to use file system for external files (e.g., certificates); | 
|  | variables can be set to "blob://<blob name>" instead of file path to | 
|  | use a named blob; supported fields: pac_file, client_cert, | 
|  | private_key | 
|  | * fixed RSN pre-authentication (it was broken in the clean up of WPA | 
|  | state machine interface in v0.4.5) | 
|  | * driver_madwifi: set IEEE80211_KEY_GROUP flag for group keys to make | 
|  | sure the driver configures broadcast decryption correctly | 
|  | * added ca_path (and ca_path2) configuration variables that can be used | 
|  | to configure OpenSSL CA path, e.g., /etc/ssl/certs, for using the | 
|  | system-wide trusted CA list | 
|  | * added support for starting wpa_supplicant without a configuration | 
|  | file (-C argument must be used to set ctrl_interface parameter for | 
|  | this case; in addition, -p argument can be used to provide | 
|  | driver_param; these new arguments can also be used with a | 
|  | configuration to override the values from the configuration) | 
|  | * added global control interface that can be optionally used for adding | 
|  | and removing network interfaces dynamically (-g command line argument | 
|  | for both wpa_supplicant and wpa_cli) without having to restart | 
|  | wpa_supplicant process | 
|  | * wpa_gui: | 
|  | - try to save configuration whenever something is modified | 
|  | - added WEP key configuration | 
|  | - added possibility to edit the current network configuration | 
|  | * driver_ndis: fixed driver polling not to increase frequency on each | 
|  | received EAPOL frame due to incorrectly cancelled timeout | 
|  | * added simple configuration file examples (in examples subdirectory) | 
|  | * fixed driver_wext.c to filter wireless events based on ifindex to | 
|  | avoid interfaces receiving events from other interfaces | 
|  | * delay sending initial EAPOL-Start couple of seconds to speed up | 
|  | authentication for the most common case of Authenticator starting | 
|  | EAP authentication immediately after association | 
|  |  | 
|  | 2005-09-25 - v0.4.5 | 
|  | * added a workaround for clearing keys with ndiswrapper to allow | 
|  | roaming from WPA enabled AP to plaintext one | 
|  | * added docbook documentation (doc/docbook) that can be used to | 
|  | generate, e.g., man pages | 
|  | * l2_packet_linux: use socket type SOCK_DGRAM instead of SOCK_RAW for | 
|  | PF_PACKET in order to prepare for network devices that do not use | 
|  | Ethernet headers (e.g., network stack with native IEEE 802.11 frames) | 
|  | * use receipt of EAPOL-Key frame as a lower layer success indication | 
|  | for EAP state machine to allow recovery from dropped EAP-Success | 
|  | frame | 
|  | * cleaned up internal EAPOL frame processing by not including link | 
|  | layer (Ethernet) header during WPA and EAPOL/EAP processing; this | 
|  | header is added only when transmitted the frame; this makes it easier | 
|  | to use wpa_supplicant on link layers that use different header than | 
|  | Ethernet | 
|  | * updated EAP-PSK to use draft 9 by default since this can now be | 
|  | tested with hostapd; removed support for draft 3, including | 
|  | server_nai configuration option from network blocks | 
|  | * driver_wired: add PAE address to the multicast address list in order | 
|  | to be able to receive EAPOL frames with drivers that do not include | 
|  | these multicast addresses by default | 
|  | * driver_wext: add support for WE-19 | 
|  | * added support for multiple configuration backends (CONFIG_BACKEND | 
|  | option); currently, only 'file' is supported (i.e., the format used | 
|  | in wpa_supplicant.conf) | 
|  | * added support for updating configuration ('wpa_cli save_config'); | 
|  | this is disabled by default and can be enabled with global | 
|  | update_config=1 variable in wpa_supplicant.conf; this allows wpa_cli | 
|  | and wpa_gui to store the configuration changes in a permanent store | 
|  | * added GET_NETWORK ctrl_iface command | 
|  | (e.g., 'wpa_cli get_network 0 ssid') | 
|  |  | 
|  | 2005-08-21 - v0.4.4 | 
|  | * replaced OpenSSL patch for EAP-FAST support | 
|  | (openssl-tls-extensions.patch) with a more generic and correct | 
|  | patch (the new patch is not compatible with the previous one, so the | 
|  | OpenSSL library will need to be patched with the new patch in order | 
|  | to be able to build wpa_supplicant with EAP-FAST support) | 
|  | * added support for using Windows certificate store (through CryptoAPI) | 
|  | for client certificate and private key operations (EAP-TLS) | 
|  | (see wpa_supplicant.conf for more information on how to configure | 
|  | this with private_key) | 
|  | * ported wpa_gui to Windows | 
|  | * added Qt4 version of wpa_gui (wpa_gui-qt4 directory); this can be | 
|  | built with the open source version of the Qt4 for Windows | 
|  | * allow non-WPA modes (e.g., IEEE 802.1X with dynamic WEP) to be used | 
|  | with drivers that do not support WPA | 
|  | * ndis_events: fixed Windows 2000 support | 
|  | * added support for enabling/disabling networks from the list of all | 
|  | configured networks ('wpa_cli enable_network <network id>' and | 
|  | 'wpa_cli disable_network <network id>') | 
|  | * added support for adding and removing network from the current | 
|  | configuration ('wpa_cli add_network' and 'wpa_cli remove_network | 
|  | <network id>'); added networks are disabled by default and they can | 
|  | be enabled with enable_network command once the configuration is done | 
|  | for the new network; note: configuration file is not yet updated, so | 
|  | these new networks are lost when wpa_supplicant is restarted | 
|  | * added support for setting network configuration parameters through | 
|  | the control interface, for example: | 
|  | wpa_cli set_network 0 ssid "\"my network\"" | 
|  | * fixed parsing of strings that include both " and # within double | 
|  | quoted area (e.g., "start"#end") | 
|  | * added EAP workaround for PEAP session resumption: allow outer, | 
|  | i.e., not tunneled, EAP-Success to terminate session since; this can | 
|  | be disabled with eap_workaround=0 | 
|  | (this was allowed for PEAPv1 before, but now it is also allowed for | 
|  | PEAPv0 since at least one RADIUS authentication server seems to be | 
|  | doing this for PEAPv0, too) | 
|  | * wpa_gui: added preliminary support for adding new networks to the | 
|  | wpa_supplicant configuration (double click on the scan results to | 
|  | open network configuration) | 
|  |  | 
|  | 2005-06-26 - v0.4.3 | 
|  | * removed interface for external EAPOL/EAP supplicant (e.g., | 
|  | Xsupplicant), (CONFIG_XSUPPLICANT_IFACE) since it is not required | 
|  | anymore and is unlikely to be used by anyone | 
|  | * driver_ndis: fixed WinPcap 3.0 support | 
|  | * fixed build with CONFIG_DNET_PCAP=y on Linux | 
|  | * l2_packet: moved different implementations into separate files | 
|  | (l2_packet_*.c) | 
|  |  | 
|  | 2005-06-12 - v0.4.2 | 
|  | * driver_ipw: updated driver structures to match with ipw2200-1.0.4 | 
|  | (note: ipw2100-1.1.0 is likely to require an update to work with | 
|  | this) | 
|  | * added support for using ap_scan=2 mode with multiple network blocks; | 
|  | wpa_supplicant will go through the networks one by one until the | 
|  | driver reports a successful association; this uses the same order for | 
|  | networks as scan_ssid=1 scans, i.e., the priority field is ignored | 
|  | and the network block order in the file is used instead | 
|  | * fixed a potential issue in RSN pre-authentication ending up using | 
|  | freed memory if pre-authentication times out | 
|  | * added support for matching alternative subject name extensions of the | 
|  | authentication server certificate; new configuration variables | 
|  | altsubject_match and altsubject_match2 | 
|  | * driver_ndis: added support for IEEE 802.1X authentication with wired | 
|  | NDIS drivers | 
|  | * added support for querying private key password (EAP-TLS) through the | 
|  | control interface (wpa_cli/wpa_gui) if one is not included in the | 
|  | configuration file | 
|  | * driver_broadcom: fixed couple of memory leaks in scan result | 
|  | processing | 
|  | * EAP-PAX is now registered as EAP type 46 | 
|  | * fixed EAP-PAX MAC calculation | 
|  | * fixed EAP-PAX CK and ICK key derivation | 
|  | * added support for using password with EAP-PAX (as an alternative to | 
|  | entering key with eappsk); SHA-1 hash of the password will be used as | 
|  | the key in this case | 
|  | * added support for arbitrary driver interface parameters through the | 
|  | configuration file with a new driver_param field; this adds a new | 
|  | driver_ops function set_param() | 
|  | * added possibility to override l2_packet module with driver interface | 
|  | API (new send_eapol handler); this can be used to implement driver | 
|  | specific TX/RX functions for EAPOL frames | 
|  | * fixed ctrl_interface_group processing for the case where gid is | 
|  | entered as a number, not group name | 
|  | * driver_test: added support for testing hostapd with wpa_supplicant | 
|  | by using test driver interface without any kernel drivers or network | 
|  | cards | 
|  |  | 
|  | 2005-05-22 - v0.4.1 | 
|  | * driver_madwifi: fixed WPA/WPA2 mode configuration to allow EAPOL | 
|  | packets to be encrypted; this was apparently broken by the changed | 
|  | ioctl order in v0.4.0 | 
|  | * driver_madwifi: added preliminary support for compiling against 'BSD' | 
|  | branch of madwifi CVS tree | 
|  | * added support for EAP-MSCHAPv2 password retries within the same EAP | 
|  | authentication session | 
|  | * added support for password changes with EAP-MSCHAPv2 (used when the | 
|  | password has expired) | 
|  | * added support for reading additional certificates from PKCS#12 files | 
|  | and adding them to the certificate chain | 
|  | * fixed association with IEEE 802.1X (no WPA) when dynamic WEP keys | 
|  | were used | 
|  | * fixed a possible double free in EAP-TTLS fast-reauthentication when | 
|  | identity or password is entered through control interface | 
|  | * display EAP Notification messages to user through control interface | 
|  | with "CTRL-EVENT-EAP-NOTIFICATION" prefix | 
|  | * added GUI version of wpa_cli, wpa_gui; this is not build | 
|  | automatically with 'make'; use 'make wpa_gui' to build (this requires | 
|  | Qt development tools) | 
|  | * added 'disconnect' command to control interface for setting | 
|  | wpa_supplicant in state where it will not associate before | 
|  | 'reassociate' command has been used | 
|  | * added support for selecting a network from the list of all configured | 
|  | networks ('wpa_cli select_network <network id>'; this disabled all | 
|  | other networks; to re-enable, 'wpa_cli select_network any') | 
|  | * added support for getting scan results through control interface | 
|  | * added EAP workaround for PEAPv1 session resumption: allow outer, | 
|  | i.e., not tunneled, EAP-Success to terminate session since; this can | 
|  | be disabled with eap_workaround=0 | 
|  |  | 
|  | 2005-04-25 - v0.4.0 (beginning of 0.4.x development releases) | 
|  | * added a new build time option, CONFIG_NO_STDOUT_DEBUG, that can be | 
|  | used to reduce the size of the wpa_supplicant considerably if | 
|  | debugging code is not needed | 
|  | * fixed EAPOL-Key validation to drop packets with invalid Key Data | 
|  | Length; such frames could have crashed wpa_supplicant due to buffer | 
|  | overflow | 
|  | * added support for wired authentication (IEEE 802.1X on wired | 
|  | Ethernet); driver interface 'wired' | 
|  | * obsoleted set_wpa() handler in the driver interface API (it can be | 
|  | replaced by moving enable/disable functionality into init()/deinit()) | 
|  | (calls to set_wpa() are still present for backwards compatibility, | 
|  | but they may be removed in the future) | 
|  | * driver_madwifi: fixed association in plaintext mode | 
|  | * modified the EAP workaround that accepts EAP-Success with incorrect | 
|  | Identifier to be even less strict about verification in order to | 
|  | interoperate with some authentication servers | 
|  | * added support for sending TLS alerts | 
|  | * added support for 'any' SSID wildcard; if ssid is not configured or | 
|  | is set to an empty string, any SSID will be accepted for non-WPA AP | 
|  | * added support for asking PIN (for SIM) from frontends (e.g., | 
|  | wpa_cli); if a PIN is needed, but not included in the configuration | 
|  | file, a control interface request is sent and EAP processing is | 
|  | delayed until the PIN is available | 
|  | * added support for using external devices (e.g., a smartcard) for | 
|  | private key operations in EAP-TLS (CONFIG_SMARTCARD=y in .config); | 
|  | new wpa_supplicant.conf variables: | 
|  | - global: opensc_engine_path, pkcs11_engine_path, pkcs11_module_path | 
|  | - network: engine, engine_id, key_id | 
|  | * added experimental support for EAP-PAX | 
|  | * added monitor mode for wpa_cli (-a<path to a program to run>) that | 
|  | allows external commands (e.g., shell scripts) to be run based on | 
|  | wpa_supplicant events, e.g., when authentication has been completed | 
|  | and data connection is ready; other related wpa_cli arguments: | 
|  | -B (run in background), -P (write PID file); wpa_supplicant has a new | 
|  | command line argument (-W) that can be used to make it wait until a | 
|  | control interface command is received in order to avoid missing | 
|  | events | 
|  | * added support for opportunistic WPA2 PMKSA key caching (disabled by | 
|  | default, can be enabled with proactive_key_caching=1) | 
|  | * fixed RSN IE in 4-Way Handshake message 2/4 for the case where | 
|  | Authenticator rejects PMKSA caching attempt and the driver is not | 
|  | using assoc_info events | 
|  | * added -P<pid file> argument for wpa_supplicant to write the current | 
|  | process id into a file | 
|  |  | 
|  | 2005-02-12 - v0.3.7 (beginning of 0.3.x stable releases) | 
|  | * added new phase1 option parameter, include_tls_length=1, to force | 
|  | wpa_supplicant to add TLS Message Length field to all TLS messages | 
|  | even if the packet is not fragmented; this may be needed with some | 
|  | authentication servers | 
|  | * fixed WPA/RSN IE verification in message 3 of 4-Way Handshake when | 
|  | using drivers that take care of AP selection (e.g., when using | 
|  | ap_scan=2) | 
|  | * fixed reprocessing of pending request after ctrl_iface requests for | 
|  | identity/password/otp | 
|  | * fixed ctrl_iface requests for identity/password/otp in Phase 2 of | 
|  | EAP-PEAP and EAP-TTLS | 
|  | * all drivers using driver_wext: set interface up and select Managed | 
|  | mode when starting wpa_supplicant; set interface down when exiting | 
|  | * renamed driver_ipw2100.c to driver_ipw.c since it now supports both | 
|  | ipw2100 and ipw2200; please note that this also changed the | 
|  | configuration variable in .config to CONFIG_DRIVER_IPW | 
|  |  | 
|  | 2005-01-24 - v0.3.6 | 
|  | * fixed a busy loop introduced in v0.3.5 for scan result processing | 
|  | when no matching AP is found | 
|  |  | 
|  | 2005-01-23 - v0.3.5 | 
|  | * added a workaround for an interoperability issue with a Cisco AP | 
|  | when using WPA2-PSK | 
|  | * fixed non-WPA IEEE 802.1X to use the same authentication timeout as | 
|  | WPA with IEEE 802.1X (i.e., timeout 10 -> 70 sec to allow | 
|  | retransmission of dropped frames) | 
|  | * fixed issues with 64-bit CPUs and SHA1 cleanup in previous version | 
|  | (e.g., segfault when processing EAPOL-Key frames) | 
|  | * fixed EAP workaround and fast reauthentication configuration for | 
|  | RSN pre-authentication; previously these were disabled and | 
|  | pre-authentication would fail if the used authentication server | 
|  | requires EAP workarounds | 
|  | * added support for blacklisting APs that fail or timeout | 
|  | authentication in ap_scan=1 mode so that all APs are tried in cases | 
|  | where the ones with strongest signal level are failing authentication | 
|  | * fixed CA certificate loading after a failed EAP-TLS/PEAP/TTLS | 
|  | authentication attempt | 
|  | * allow EAP-PEAP/TTLS fast reauthentication only if Phase 2 succeeded | 
|  | in the previous authentication (previously, only Phase 1 success was | 
|  | verified) | 
|  |  | 
|  | 2005-01-09 - v0.3.4 | 
|  | * added preliminary support for IBSS (ad-hoc) mode configuration | 
|  | (mode=1 in network block); this included a new key_mgmt mode | 
|  | WPA-NONE, i.e., TKIP or CCMP with a fixed key (based on psk) and no | 
|  | key management; see wpa_supplicant.conf for more details and an | 
|  | example on how to configure this (note: this is currently implemented | 
|  | only for driver_hostapd.c, but the changes should be trivial to add | 
|  | in associate() handler for other drivers, too (assuming the driver | 
|  | supports WPA-None) | 
|  | * added preliminary port for native Windows (i.e., no cygwin) using | 
|  | mingw | 
|  |  | 
|  | 2005-01-02 - v0.3.3 | 
|  | * added optional support for GNU Readline and History Libraries for | 
|  | wpa_cli (CONFIG_READLINE) | 
|  | * cleaned up EAP state machine <-> method interface and number of | 
|  | small problems with error case processing not terminating on | 
|  | EAP-Failure but waiting for timeout | 
|  | * added couple of workarounds for interoperability issues with a | 
|  | Cisco AP when using WPA2 | 
|  | * added support for EAP-FAST (draft-cam-winget-eap-fast-00.txt); | 
|  | Note: This requires a patch for openssl to add support for TLS | 
|  | extensions and number of workarounds for operations without | 
|  | certificates. Proof of concept type of experimental patch is | 
|  | included in openssl-tls-extensions.patch. | 
|  |  | 
|  | 2004-12-19 - v0.3.2 | 
|  | * fixed private key loading for cases where passphrase is not set | 
|  | * fixed Windows/cygwin L2 packet handler freeing; previous version | 
|  | could cause a segfault when RSN pre-authentication was completed | 
|  | * added support for PMKSA caching with drivers that generate RSN IEs | 
|  | (e.g., NDIS); currently, this is only implemented in driver_ndis.c, | 
|  | but similar code can be easily added to driver_ndiswrapper.c once | 
|  | ndiswrapper gets full support for RSN PMKSA caching | 
|  | * improved recovery from PMKID mismatches by requesting full EAP | 
|  | authentication in case of failed PMKSA caching attempt | 
|  | * driver_ndis: added support for NDIS NdisMIncidateStatus() events | 
|  | (this requires that ndis_events is ran while wpa_supplicant is | 
|  | running) | 
|  | * driver_ndis: use ADD_WEP/REMOVE_WEP when configuring WEP keys | 
|  | * added support for driver interfaces to replace the interface name | 
|  | based on driver/OS specific mapping, e.g., in case of driver_ndis, | 
|  | this allows the beginning of the adapter description to be used as | 
|  | the interface name | 
|  | * added support for CR+LF (Windows-style) line ends in configuration | 
|  | file | 
|  | * driver_ndis: enable radio before starting scanning, disable radio | 
|  | when exiting | 
|  | * modified association event handler to set portEnabled = FALSE before | 
|  | clearing port Valid in order to reset EAP state machine and avoid | 
|  | problems with new authentication getting ignored because of state | 
|  | machines ending up in AUTHENTICATED/SUCCESS state based on old | 
|  | information | 
|  | * added support for driver events to add PMKID candidates in order to | 
|  | allow drivers to give priority to most likely roaming candidates | 
|  | * driver_hostap: moved PrivacyInvoked configuration to associate() | 
|  | function so that this will not be set for plaintext connections | 
|  | * added KEY_MGMT_802_1X_NO_WPA as a new key_mgmt type so that driver | 
|  | interface can distinguish plaintext and IEEE 802.1X (no WPA) | 
|  | authentication | 
|  | * fixed static WEP key configuration to use broadcast/default type for | 
|  | all keys (previously, the default TX key was configured as pairwise/ | 
|  | unicast key) | 
|  | * driver_ndis: added legacy WPA capability detection for non-WPA2 | 
|  | drivers | 
|  | * added support for setting static WEP keys for IEEE 802.1X without | 
|  | dynamic WEP keying (eapol_flags=0) | 
|  |  | 
|  | 2004-12-12 - v0.3.1 | 
|  | * added support for reading PKCS#12 (PFX) files (as a replacement for | 
|  | PEM/DER) to get certificate and private key (CONFIG_PKCS12) | 
|  | * fixed compilation with CONFIG_PCSC=y | 
|  | * added new ap_scan mode, ap_scan=2, for drivers that take care of | 
|  | association, but need to be configured with security policy and SSID, | 
|  | e.g., ndiswrapper and NDIS driver; this mode should allow such | 
|  | drivers to work with hidden SSIDs and optimized roaming; when | 
|  | ap_scan=2 is used, only the first network block in the configuration | 
|  | file is used and this configuration should have explicit security | 
|  | policy (i.e., only one option in the lists) for key_mgmt, pairwise, | 
|  | group, proto variables | 
|  | * added experimental port of wpa_supplicant for Windows | 
|  | - driver_ndis.c driver interface (NDIS OIDs) | 
|  | - currently, this requires cygwin and WinPcap | 
|  | - small utility, win_if_list, can be used to get interface name | 
|  | * control interface can now be removed at build time; add | 
|  | CONFIG_CTRL_IFACE=y to .config to maintain old functionality | 
|  | * optional Xsupplicant interface can now be removed at build time; | 
|  | (CONFIG_XSUPPLICANT_IFACE=y in .config to bring it back) | 
|  | * added auth_alg to driver interface associate() parameters to make it | 
|  | easier for drivers to configure authentication algorithm as part of | 
|  | the association | 
|  |  | 
|  | 2004-12-05 - v0.3.0 (beginning of 0.3.x development releases) | 
|  | * driver_broadcom: added new driver interface for Broadcom wl.o driver | 
|  | (a generic driver for Broadcom IEEE 802.11a/g cards) | 
|  | * wpa_cli: fixed parsing of -p <path> command line argument | 
|  | * PEAPv1: fixed tunneled EAP-Success reply handling to reply with TLS | 
|  | ACK, not tunneled EAP-Success (of which only the first byte was | 
|  | actually send due to a bug in previous code); this seems to | 
|  | interoperate with most RADIUS servers that implements PEAPv1 | 
|  | * PEAPv1: added support for terminating PEAP authentication on tunneled | 
|  | EAP-Success message; this can be configured by adding | 
|  | peap_outer_success=0 on phase1 parameters in wpa_supplicant.conf | 
|  | (some RADIUS servers require this whereas others require a tunneled | 
|  | reply | 
|  | * PEAPv1: changed phase1 option peaplabel to use default to 0, i.e., to | 
|  | the old label for key derivation; previously, the default was 1, | 
|  | but it looks like most existing PEAPv1 implementations use the old | 
|  | label which is thus more suitable default option | 
|  | * added support for EAP-PSK (draft-bersani-eap-psk-03.txt) | 
|  | * fixed parsing of wep_tx_keyidx | 
|  | * added support for configuring list of allowed Phase 2 EAP types | 
|  | (for both EAP-PEAP and EAP-TTLS) instead of only one type | 
|  | * added support for configuring IEEE 802.11 authentication algorithm | 
|  | (auth_alg; mainly for using Shared Key authentication with static | 
|  | WEP keys) | 
|  | * added support for EAP-AKA (with UMTS SIM) | 
|  | * fixed couple of errors in PCSC handling that could have caused | 
|  | random-looking errors for EAP-SIM | 
|  | * added support for EAP-SIM pseudonyms and fast re-authentication | 
|  | * added support for EAP-TLS/PEAP/TTLS fast re-authentication (TLS | 
|  | session resumption) | 
|  | * added support for EAP-SIM with two challanges | 
|  | (phase1="sim_min_num_chal=3" can be used to require three challenges) | 
|  | * added support for configuring DH/DSA parameters for an ephemeral DH | 
|  | key exchange (EAP-TLS/PEAP/TTLS) using new configuration parameters | 
|  | dh_file and dh_file2 (phase 2); this adds support for using DSA keys | 
|  | and optional DH key exchange to achieve forward secracy with RSA keys | 
|  | * added support for matching subject of the authentication server | 
|  | certificate with a substring when using EAP-TLS/PEAP/TTLS; new | 
|  | configuration variables subject_match and subject_match2 | 
|  | * changed SSID configuration in driver_wext.c (used by many driver | 
|  | interfaces) to use ssid_len+1 as the length for SSID since some Linux | 
|  | drivers expect this | 
|  | * fixed couple of unaligned reads in scan result parsing to fix WPA | 
|  | connection on some platforms (e.g., ARM) | 
|  | * added driver interface for Intel ipw2100 driver | 
|  | * added support for LEAP with WPA | 
|  | * added support for larger scan results report (old limit was 4 kB of | 
|  | data, i.e., about 35 or so APs) when using Linux wireless extensions | 
|  | v17 or newer | 
|  | * fixed a bug in PMKSA cache processing: skip sending of EAPOL-Start | 
|  | only if there is a PMKSA cache entry for the current AP | 
|  | * fixed error handling for case where reading of scan results fails: | 
|  | must schedule a new scan or wpa_supplicant will remain waiting | 
|  | forever | 
|  | * changed debug output to remove shared password/key material by | 
|  | default; all key information can be included with -K command line | 
|  | argument to match the previous behavior | 
|  | * added support for timestamping debug log messages (disabled by | 
|  | default, can be enabled with -t command line argument) | 
|  | * set pairwise/group cipher suite for non-WPA IEEE 802.1X to WEP-104 | 
|  | if keys are not configured to be used; this fixes IEEE 802.1X mode | 
|  | with drivers that use this information to configure whether Privacy | 
|  | bit can be in Beacon frames (e.g., ndiswrapper) | 
|  | * avoid clearing driver keys if no keys have been configured since last | 
|  | key clear request; this seems to improve reliability of group key | 
|  | handshake for ndiswrapper & NDIS driver which seems to be suffering | 
|  | of some kind of timing issue when the keys are cleared again after | 
|  | association | 
|  | * changed driver interface API: | 
|  | - WPA_SUPPLICANT_DRIVER_VERSION define can be used to determine which | 
|  | version is being used (now, this is set to 2; previously, it was | 
|  | not defined) | 
|  | - pass pointer to private data structure to all calls | 
|  | - the new API is not backwards compatible; all in-tree driver | 
|  | interfaces has been converted to the new API | 
|  | * added support for controlling multiple interfaces (radios) per | 
|  | wpa_supplicant process; each interface needs to be listed on the | 
|  | command line (-c, -i, -D arguments) with -N as a separator | 
|  | (-cwpa1.conf -iwlan0 -Dhostap -N -cwpa2.conf -iath0 -Dmadwifi) | 
|  | * added a workaround for EAP servers that incorrectly use same Id for | 
|  | sequential EAP packets | 
|  | * changed libpcap/libdnet configuration to use .config variable, | 
|  | CONFIG_DNET_PCAP, instead of requiring Makefile modification | 
|  | * improved downgrade attack detection in IE verification of msg 3/4: | 
|  | verify both WPA and RSN IEs, if present, not only the selected one; | 
|  | reject the AP if an RSN IE is found in msg 3/4, but not in Beacon or | 
|  | Probe Response frame, and RSN is enabled in wpa_supplicant | 
|  | configuration | 
|  | * fixed WPA msg 3/4 processing to allow Key Data field contain other | 
|  | IEs than just one WPA IE | 
|  | * added support for FreeBSD and driver interface for the BSD net80211 | 
|  | layer (CONFIG_DRIVER_BSD=y in .config); please note that some of the | 
|  | required kernel mods have not yet been committed | 
|  | * made EAP workarounds configurable; enabled by default, can be | 
|  | disabled with network block option eap_workaround=0 | 
|  |  | 
|  | 2004-07-17 - v0.2.4 (beginning of 0.2.x stable releases) | 
|  | * resolved couple of interoperability issues with EAP-PEAPv1 and | 
|  | Phase 2 (inner EAP) fragment reassembly | 
|  | * driver_madwifi: fixed WEP key configuration for IEEE 802.1X when the | 
|  | AP is using non-zero key index for the unicast key and key index zero | 
|  | for the broadcast key | 
|  | * driver_hostap: fixed IEEE 802.1X WEP key updates and | 
|  | re-authentication by allowing unencrypted EAPOL frames when not using | 
|  | WPA | 
|  | * added a new driver interface, 'wext', which uses only standard, | 
|  | driver independent functionality in Linux wireless extensions; | 
|  | currently, this can be used only for non-WPA IEEE 802.1X mode, but | 
|  | eventually, this is to be extended to support full WPA/WPA2 once | 
|  | Linux wireless extensions get support for this | 
|  | * added support for mode in which the driver is responsible for AP | 
|  | scanning and selection; this is disabled by default and can be | 
|  | enabled with global ap_scan=0 variable in wpa_supplicant.conf; | 
|  | this mode can be used, e.g., with generic 'wext' driver interface to | 
|  | use wpa_supplicant as IEEE 802.1X Supplicant with any Linux driver | 
|  | supporting wireless extensions. | 
|  | * driver_madwifi: fixed WPA2 configuration and scan_ssid=1 (e.g., | 
|  | operation with an AP that does not include SSID in the Beacon frames) | 
|  | * added support for new EAP authentication methods: | 
|  | EAP-TTLS/EAP-OTP, EAP-PEAPv0/OTP, EAP-PEAPv1/OTP, EAP-OTP | 
|  | * added support for asking one-time-passwords from frontends (e.g., | 
|  | wpa_cli); this 'otp' command works otherwise like 'password' command, | 
|  | but the password is used only once and the frontend will be asked for | 
|  | a new password whenever a request from authenticator requires a | 
|  | password; this can be used with both EAP-OTP and EAP-GTC | 
|  | * changed wpa_cli to automatically re-establish connection so that it | 
|  | does not need to be re-started when wpa_supplicant is terminated and | 
|  | started again | 
|  | * improved user data (identity/password/otp) requests through | 
|  | frontends: process pending EAPOL packets after getting new | 
|  | information so that full authentication does not need to be | 
|  | restarted; in addition, send pending requests again whenever a new | 
|  | frontend is attached | 
|  | * changed control frontends to use a new directory for socket files to | 
|  | make it easier for wpa_cli to automatically select between interfaces | 
|  | and to provide access control for the control interface; | 
|  | wpa_supplicant.conf: ctrl_interface is now a path | 
|  | (/var/run/wpa_supplicant is the recommended path) and | 
|  | ctrl_interface_group can be used to select which group gets access to | 
|  | the control interface; | 
|  | wpa_cli: by default, try to connect to the first interface available | 
|  | in /var/run/wpa_supplicant; this path can be overriden with -p option | 
|  | and an interface can be selected with -i option (i.e., in most common | 
|  | cases, wpa_cli does not need to get any arguments) | 
|  | * added support for LEAP | 
|  | * added driver interface for Linux ndiswrapper | 
|  | * added priority option for network blocks in the configuration file; | 
|  | this allows networks to be grouped based on priority (the scan | 
|  | results are searched for matches with network blocks in this order) | 
|  |  | 
|  | 2004-06-20 - v0.2.3 | 
|  | * sort scan results to improve AP selection | 
|  | * fixed control interface socket removal for some error cases | 
|  | * improved scan requesting and authentication timeout | 
|  | * small improvements/bug fixes for EAP-MSCHAPv2, EAP-PEAP, and | 
|  | TLS processing | 
|  | * PEAP version can now be forced with phase1="peapver=<ver>" | 
|  | (mostly for testing; by default, the highest version supported by | 
|  | both the Supplicant and Authentication Server is selected | 
|  | automatically) | 
|  | * added support for madwifi driver (Atheros ar521x) | 
|  | * added a workaround for cases where AP sets Install Tx/Rx bit for | 
|  | WPA Group Key messages when pairwise keys are used (without this, | 
|  | the Group Key would be used for Tx and the AP would drop frames | 
|  | from the station) | 
|  | * added GSM SIM/USIM interface for GSM authentication algorithm for | 
|  | EAP-SIM; this requires pcsc-lite | 
|  | * added support for ATMEL AT76C5XXx driver | 
|  | * fixed IEEE 802.1X WEP key derivation in the case where Authenticator | 
|  | does not include key data in the EAPOL-Key frame (i.e., part of | 
|  | EAP keying material is used as data encryption key) | 
|  | * added support for using plaintext and static WEP networks | 
|  | (key_mgmt=NONE) | 
|  |  | 
|  | 2004-05-31 - v0.2.2 | 
|  | * added support for new EAP authentication methods: | 
|  | EAP-TTLS/EAP-MD5-Challenge | 
|  | EAP-TTLS/EAP-GTC | 
|  | EAP-TTLS/EAP-MSCHAPv2 | 
|  | EAP-TTLS/EAP-TLS | 
|  | EAP-TTLS/MSCHAPv2 | 
|  | EAP-TTLS/MSCHAP | 
|  | EAP-TTLS/PAP | 
|  | EAP-TTLS/CHAP | 
|  | EAP-PEAP/TLS | 
|  | EAP-PEAP/GTC | 
|  | EAP-PEAP/MD5-Challenge | 
|  | EAP-GTC | 
|  | EAP-SIM (not yet complete; needs GSM/SIM authentication interface) | 
|  | * added support for anonymous identity (to be used when identity is | 
|  | sent in plaintext; real identity will be used within TLS protected | 
|  | tunnel (e.g., with EAP-TTLS) | 
|  | * added event messages from wpa_supplicant to frontends, e.g., wpa_cli | 
|  | * added support for requesting identity and password information using | 
|  | control interface; in other words, the password for EAP-PEAP or | 
|  | EAP-TTLS does not need to be included in the configuration file since | 
|  | a frontand (e.g., wpa_cli) can ask it from the user | 
|  | * improved RSN pre-authentication to use a candidate list and process | 
|  | all candidates from each scan; not only one per scan | 
|  | * fixed RSN IE and WPA IE capabilities field parsing | 
|  | * ignore Tx bit in GTK IE when Pairwise keys are used | 
|  | * avoid making new scan requests during IEEE 802.1X negotiation | 
|  | * use openssl/libcrypto for MD5 and SHA-1 when compiling wpa_supplicant | 
|  | with TLS support (this replaces the included implementation with | 
|  | library code to save about 8 kB since the library code is needed | 
|  | anyway for TLS) | 
|  | * fixed WPA-PSK only mode when compiled without IEEE 802.1X support | 
|  | (i.e., without CONFIG_IEEE8021X_EAPOL=y in .config) | 
|  |  | 
|  | 2004-05-06 - v0.2.1 | 
|  | * added support for internal IEEE 802.1X (actually, IEEE 802.1aa/D6.1) | 
|  | Supplicant | 
|  | - EAPOL state machines for Supplicant [IEEE 802.1aa/D6.1] | 
|  | - EAP peer state machine [draft-ietf-eap-statemachine-02.pdf] | 
|  | - EAP-MD5 (cannot be used with WPA-RADIUS) | 
|  | [draft-ietf-eap-rfc2284bis-09.txt] | 
|  | - EAP-TLS [RFC 2716] | 
|  | - EAP-MSCHAPv2 (currently used only with EAP-PEAP) | 
|  | - EAP-PEAP/MSCHAPv2 [draft-josefsson-pppext-eap-tls-eap-07.txt] | 
|  | [draft-kamath-pppext-eap-mschapv2-00.txt] | 
|  | (PEAP version 0, 1, and parts of 2; only 0 and 1 are enabled by | 
|  | default; tested with FreeRADIUS, Microsoft IAS, and Funk Odyssey) | 
|  | - new configuration file options: eap, identity, password, ca_cert, | 
|  | client_cert, privatekey, private_key_passwd | 
|  | - Xsupplicant is not required anymore, but it can be used by | 
|  | disabling the internal IEEE 802.1X Supplicant with -e command line | 
|  | option | 
|  | - this code is not included in the default build; Makefile need to | 
|  | be edited for this (uncomment lines for selected functionality) | 
|  | - EAP-TLS and EAP-PEAP require openssl libraries | 
|  | * use module prefix in debug messages (WPA, EAP, EAP-TLS, ..) | 
|  | * added support for non-WPA IEEE 802.1X mode with dynamic WEP keys | 
|  | (i.e., complete IEEE 802.1X/EAP authentication and use IEEE 802.1X | 
|  | EAPOL-Key frames instead of WPA key handshakes) | 
|  | * added support for IEEE 802.11i/RSN (WPA2) | 
|  | - improved PTK Key Handshake | 
|  | - PMKSA caching, pre-authentication | 
|  | * fixed wpa_supplicant to ignore possible extra data after WPA | 
|  | EAPOL-Key packets (this fixes 'Invalid EAPOL-Key MIC when using | 
|  | TPTK' error from message 3 of 4-Way Handshake in case the AP | 
|  | includes extra data after the EAPOL-Key) | 
|  | * added interface for external programs (frontends) to control | 
|  | wpa_supplicant | 
|  | - CLI example (wpa_cli) with interactive mode and command line | 
|  | mode | 
|  | - replaced SIGUSR1 status/statistics with the new control interface | 
|  | * made some feature compile time configurable | 
|  | - .config file for make | 
|  | - driver interfaces (hostap, hermes, ..) | 
|  | - EAPOL/EAP functions | 
|  |  | 
|  | 2004-02-15 - v0.2.0 | 
|  | * Initial version of wpa_supplicant |