libeap.git
15 years agoWPS: Fixed deinit code for freeing config and registrar data
Jouni Malinen [Wed, 17 Dec 2008 23:06:06 +0000 (01:06 +0200)]
WPS: Fixed deinit code for freeing config and registrar data

We need to be a bit more careful when removing the WPS configuration
block since wpa_s->current_ssid may still be pointing at it. In
addition, registrar pointer in wps_context will need to be cleared
since the context data is now maintained over multiple EAP-WSC runs.
Without this, certain WPS operations could have used freed memory.

15 years agoDo not allow HT with WPA/WPA2 to be enabled without CCMP
Jouni Malinen [Wed, 17 Dec 2008 10:16:13 +0000 (12:16 +0200)]
Do not allow HT with WPA/WPA2 to be enabled without CCMP

IEEE 802.11n does not allow HT STAs to use TKIP between themselves, so
do do allow a configuration that would force this to happen if HT is
used.

15 years agoWPS: Added wpa_gui-qt4 support for BSS selection and AP PIN use
Jouni Malinen [Tue, 16 Dec 2008 21:43:08 +0000 (23:43 +0200)]
WPS: Added wpa_gui-qt4 support for BSS selection and AP PIN use

The specific AP (BSSID) can now be selected through scan results for
WPS (WPS pushbutton on the network configuration dialog). When a BSSID
is selected, AP device PIN (e.g., from a label) can be used to configure
the AP by acting as a Registrar.

15 years agoWPS: Improved error processing to use NACK correctly
Jouni Malinen [Tue, 16 Dec 2008 20:37:55 +0000 (22:37 +0200)]
WPS: Improved error processing to use NACK correctly

Instead of sending out EAP-Failure on errors (on AP) or stopping (on
Supplicant), send a NACK message based on the allowed EAP state machine
transitions for EAP-WSC.

15 years agoUse less frequent polling when wpa_gui is hidden
Jouni Malinen [Tue, 16 Dec 2008 19:25:44 +0000 (21:25 +0200)]
Use less frequent polling when wpa_gui is hidden

15 years agoFixed EAP-AKA build in case EAP-AKA' is disabled
Jouni Malinen [Tue, 16 Dec 2008 16:57:49 +0000 (18:57 +0200)]
Fixed EAP-AKA build in case EAP-AKA' is disabled

15 years agoImprove EAPOL-Key handshake stability with retransmitted frames
Jouni Malinen [Tue, 16 Dec 2008 12:17:33 +0000 (14:17 +0200)]
Improve EAPOL-Key handshake stability with retransmitted frames

Accept response to any pending request, not just the last one. This
gives the Supplicant more time to reply since hostapd will now allow up
to three seconds for the reply to the first EAPOL-Key frame transmission
(and two seconds for the first retry and one second for the last) while
the previous version invalidated any old request immediately when
sending a retransmitted frame.

If the Supplicant replies to more than one request, only the first reply
to arrive at the Authenticator will be processed. As far as the
Supplicant is concerned, this behavior does not differ from the previous
one except for being less likely to cause unneeded retransmissions of
EAPOL-Key frames.

This can help in cases where power saving is used when the group key is
rekeyed or when there is excessive traffic on the channel that can delay
(or drop) EAPOL-Key frames.

15 years agoWPS: Added WPS support into wpa_gui-qt4
Jouni Malinen [Mon, 15 Dec 2008 20:36:42 +0000 (22:36 +0200)]
WPS: Added WPS support into wpa_gui-qt4

Currently, only Enrollee operations (both PBC and PIN) are supported.

15 years agoUse a fixed wps_msg prefix with WPS creds notification
Jouni Malinen [Mon, 15 Dec 2008 20:32:45 +0000 (22:32 +0200)]
Use a fixed wps_msg prefix with WPS creds notification

15 years agoWPS: Added control interface notification for available WPS APs
Jouni Malinen [Mon, 15 Dec 2008 18:09:57 +0000 (20:09 +0200)]
WPS: Added control interface notification for available WPS APs

Whenever new scan results include WPS AP(s) and the client is not
associated, send a notification message to control interface monitors.
This makes it easier for GUIs to notify the user about possible WPS
availability without having to go through the scan results.

15 years agoFixed memory leak in WPS PBC overlap detection
Jouni Malinen [Mon, 15 Dec 2008 17:50:53 +0000 (19:50 +0200)]
Fixed memory leak in WPS PBC overlap detection

15 years agoFixed interoperability issue with PEAPv0 cryptobinding and NPS
Jouni Malinen [Sun, 14 Dec 2008 22:15:54 +0000 (00:15 +0200)]
Fixed interoperability issue with PEAPv0 cryptobinding and NPS

Windows Server 2008 NPS gets very confused if the TLS Message Length is
not included in the Phase 1 messages even if fragmentation is not used.
If the TLS Message Length field is not included in ClientHello message,
NPS seems to decide to use the ClientHello data (excluding first six
octets, i.e., EAP header, type, Flags) as the OuterTLVs data in
Cryptobinding Compound_MAC calculation (per PEAPv2; not MS-PEAP)..

Lets add the TLS Message Length to PEAPv0 Phase 1 messages to get rid of
this issue. This seems to fix Cryptobinding issues with NPS and PEAPv0
is now using optional Cryptobinding by default (again) since there are
no known interop issues with it anymore.

15 years agoCleaned up EAP-MSCHAPv2 key derivation
Jouni Malinen [Sun, 14 Dec 2008 11:12:20 +0000 (13:12 +0200)]
Cleaned up EAP-MSCHAPv2 key derivation

Changed peer to derive the full key (both MS-MPPE-Recv-Key and
MS-MPPE-Send-Key for total of 32 octets) to match with server
implementation.

Swapped the order of MPPE keys in MSK derivation since server
MS-MPPE-Recv-Key | MS-MPPE-Send-Key matches with the order specified for
EAP-TLS MSK derivation. This means that PEAPv0 cryptobinding is now
using EAP-MSCHAPv2 MSK as-is for ISK while EAP-FAST will need to swap
the order of the MPPE keys to get ISK in a way that interoperates with
Cisco EAP-FAST implementation.

15 years agoAdded INT_RANGE parser for global configuration variables
Jouni Malinen [Sat, 13 Dec 2008 16:21:16 +0000 (18:21 +0200)]
Added INT_RANGE parser for global configuration variables

15 years agoUse shared string parser for global configuration fields
Jouni Malinen [Sat, 13 Dec 2008 16:17:27 +0000 (18:17 +0200)]
Use shared string parser for global configuration fields

15 years agoShare the same global config parser function for integer values
Jouni Malinen [Sat, 13 Dec 2008 16:04:43 +0000 (18:04 +0200)]
Share the same global config parser function for integer values

15 years agoFirst step in cleaning up global config parser: use parse_data array
Jouni Malinen [Sat, 13 Dec 2008 15:57:17 +0000 (17:57 +0200)]
First step in cleaning up global config parser: use parse_data array

15 years agoAdded configuration of WPS device parameters for wpa_supplicant
Jouni Malinen [Sat, 13 Dec 2008 15:20:46 +0000 (17:20 +0200)]
Added configuration of WPS device parameters for wpa_supplicant

15 years agodriver_test: Handle WPS IE in non-MLME test
Jouni Malinen [Fri, 12 Dec 2008 20:52:56 +0000 (22:52 +0200)]
driver_test: Handle WPS IE in non-MLME test

15 years agoPorted driver_test to Windows (only UDP socket available)
Jouni Malinen [Fri, 12 Dec 2008 20:41:18 +0000 (22:41 +0200)]
Ported driver_test to Windows (only UDP socket available)

15 years agodriver_test: Optional support for using UDP socket
Jouni Malinen [Fri, 12 Dec 2008 19:35:22 +0000 (21:35 +0200)]
driver_test: Optional support for using UDP socket

driver_test can now be used either over UNIX domain socket or UDP
socket. This makes it possible to run the test over network and makes it
easier to port driver_test to Windows.

hostapd configuration: test_socket=UDP:<listen port>
wpa_supplicant configuration: driver_param=test_udp=<dst IP addr>:<port>

15 years agoComment out dynamic CertEnumCertificatesInStore loading by default
Jouni Malinen [Wed, 10 Dec 2008 22:57:15 +0000 (00:57 +0200)]
Comment out dynamic CertEnumCertificatesInStore loading by default

This is now available in MinGW header files, so the loading code is
triggering conflicts.

15 years agoWorkaround number of compiler warnings with newer MinGW version
Jouni Malinen [Wed, 10 Dec 2008 22:56:37 +0000 (00:56 +0200)]
Workaround number of compiler warnings with newer MinGW version

15 years agoResolved number of signed/unsigned mismatches and ntddndis.h location
Jouni Malinen [Wed, 10 Dec 2008 22:55:33 +0000 (00:55 +0200)]
Resolved number of signed/unsigned mismatches and ntddndis.h location

15 years agoRename MSG to MESG to avoid conflicts with Windows header files
Jouni Malinen [Wed, 10 Dec 2008 22:54:49 +0000 (00:54 +0200)]
Rename MSG to MESG to avoid conflicts with Windows header files

15 years agoDon't include unused calls to SHA256 functions if EAP-AKA' is not enabled
Jouni Malinen [Wed, 10 Dec 2008 22:49:39 +0000 (00:49 +0200)]
Don't include unused calls to SHA256 functions if EAP-AKA' is not enabled

15 years agoSHA256 is needed for EAP-AKA' and WPS
Jouni Malinen [Wed, 10 Dec 2008 22:48:13 +0000 (00:48 +0200)]
SHA256 is needed for EAP-AKA' and WPS

15 years agoAdded CONFIG_IEEE80211N into defconfig (commented out)
Jouni Malinen [Tue, 9 Dec 2008 22:46:55 +0000 (00:46 +0200)]
Added CONFIG_IEEE80211N into defconfig (commented out)

15 years agoFixed build without CONFIG_IEEE80211N
Jouni Malinen [Tue, 9 Dec 2008 22:45:57 +0000 (00:45 +0200)]
Fixed build without CONFIG_IEEE80211N

15 years agoUpdated the comment about libnl to state that version 1.1 is new enough
Jouni Malinen [Tue, 9 Dec 2008 20:41:01 +0000 (22:41 +0200)]
Updated the comment about libnl to state that version 1.1 is new enough

15 years agoRenamed the 'alpha2' variable to 'country' to match with config string
Jouni Malinen [Tue, 9 Dec 2008 20:15:47 +0000 (22:15 +0200)]
Renamed the 'alpha2' variable to 'country' to match with config string

15 years agoAdded documentation for the new 'country' configuration option
Jouni Malinen [Tue, 9 Dec 2008 20:13:35 +0000 (22:13 +0200)]
Added documentation for the new 'country' configuration option

15 years agowpa_supplicant: Add support for setting of a regulatory domain
Luis R. Rodriguez [Tue, 9 Dec 2008 20:11:14 +0000 (22:11 +0200)]
wpa_supplicant: Add support for setting of a regulatory domain

This adds support for setting of a regulatory domain to wpa_supplicant
drivers. It also adds regulatory domain setting for the nl80211 driver.
We expect an ISO / IEC 3166 alpha2 in the wpa configuration file as a
global.

15 years agowpa_supplicant: print password field only if -K is given
Helmut Schaa [Tue, 9 Dec 2008 19:56:47 +0000 (21:56 +0200)]
wpa_supplicant: print password field only if -K is given

Print the password field only if -K is given by using wpa_hexdump_ascii_key
instead of wpa_hexdump_ascii. Additionally mark the password field as key.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
15 years agoAdded libnl 2.0 compatibility code (CONFIG_LIBNL20=y in .config needed)
Jouni Malinen [Mon, 8 Dec 2008 20:40:58 +0000 (22:40 +0200)]
Added libnl 2.0 compatibility code (CONFIG_LIBNL20=y in .config needed)

Unfortunately, at least the current libnl git snapshot changes the API
in backwards incompatible way and in a way that makes it difficult to
to allow building against the latest libnl code.

15 years agoFixed a typo in wpa_supplicant manpage
Jouni Malinen [Mon, 8 Dec 2008 20:16:15 +0000 (22:16 +0200)]
Fixed a typo in wpa_supplicant manpage

15 years agodriver_test: Added support for testing WPS without use_mlme
Jouni Malinen [Mon, 8 Dec 2008 19:42:01 +0000 (21:42 +0200)]
driver_test: Added support for testing WPS without use_mlme

15 years agoWPS: Added [WPS], [WPS-PIN], [WPS-PBC] flags for scan results
Jouni Malinen [Mon, 8 Dec 2008 18:57:59 +0000 (20:57 +0200)]
WPS: Added [WPS], [WPS-PIN], [WPS-PBC] flags for scan results

15 years agonl80211: Include copy of linux/nl80211.h with hostapd/wpa_supplicant
Jouni Malinen [Mon, 8 Dec 2008 09:04:13 +0000 (11:04 +0200)]
nl80211: Include copy of linux/nl80211.h with hostapd/wpa_supplicant

This makes it easier to build the packages and allows all new features
to be built into the binary regardless of which kernel is currently
used.

15 years agoAdded option to force SoH version 1 (tnc=soh1)
Jouni Malinen [Sun, 7 Dec 2008 19:00:42 +0000 (21:00 +0200)]
Added option to force SoH version 1 (tnc=soh1)

The default version with tnc=soh remains to be 2 which is the currently
recommended version in SoH specification.

15 years agoAdded EAP-FAST interop test results with Radiator 4.3.1
Jouni Malinen [Sun, 7 Dec 2008 18:27:43 +0000 (20:27 +0200)]
Added EAP-FAST interop test results with Radiator 4.3.1

15 years agoMerged EAP-AKA' into eap_aka.c and added it to defconfig/ChangeLog
Jouni Malinen [Sun, 7 Dec 2008 17:24:56 +0000 (19:24 +0200)]
Merged EAP-AKA' into eap_aka.c and added it to defconfig/ChangeLog

15 years agoAdded protection against EAP-AKA' -> EAP-AKA bidding down attacks
Jouni Malinen [Fri, 5 Dec 2008 20:25:47 +0000 (22:25 +0200)]
Added protection against EAP-AKA' -> EAP-AKA bidding down attacks

AT_BIDDING attribute is included in EAP-AKA/Challenge to allow peer to
know whether the server would have preferred EAP-AKA'.

15 years agoFixed a typo in a comment
Jouni Malinen [Thu, 4 Dec 2008 20:15:51 +0000 (22:15 +0200)]
Fixed a typo in a comment

15 years agoEAP-AKA': Added CK',IK' derivation
Jouni Malinen [Thu, 4 Dec 2008 19:50:56 +0000 (21:50 +0200)]
EAP-AKA': Added CK',IK' derivation

This is based on a change request 3GPP TS 33.402 CR 0033 for version
8.1.1. The hardcoded ANID is now 'WLAN' since that is used in
3GPP TS 24.302.

15 years agoEAP-AKA': Comment out EAP-AKA' server KDF negotiation
Jouni Malinen [Thu, 4 Dec 2008 18:32:56 +0000 (20:32 +0200)]
EAP-AKA': Comment out EAP-AKA' server KDF negotiation

Since only one KDF is currently supported, the negotiation is not
allowed and peer must be rejected if it tries to send KDF selection in a
Challenge message. The negotiation code is left in the file and just
commented out since it was tested to work and can be used in the future
if another KDF is added.

15 years agoEAP-AKA': Added processing of AT_KDF and AT_KDF_INPUT attributes
Jouni Malinen [Thu, 4 Dec 2008 18:29:46 +0000 (20:29 +0200)]
EAP-AKA': Added processing of AT_KDF and AT_KDF_INPUT attributes

Network Name is not yet generated and validated based on 3GPP.33.402
(i.e., a hardcoded string is used in server and anything is accepted in
peer).

15 years agoFixed EAP-SIM and EAP-AKA AT_IDENTITY parsing (server only)
Jouni Malinen [Thu, 4 Dec 2008 16:51:42 +0000 (18:51 +0200)]
Fixed EAP-SIM and EAP-AKA AT_IDENTITY parsing (server only)

The attribute uses 'Actual Identity Length' field to indicate the exact
(pre-padding) length of the Identity. This actual length should be used
as the length, not the remaining attribute length.

This was previously worked around by stripping null termination away
from the end of the identity string at EAP-SIM and EAP-AKA server code.
However, it is likely that that workaround is not really needed and the
real problem was in AT_IDENTITY parsing. Anyway, the workaround is left
in just in case it was really needed with some implementations.

15 years agonl80211: Remove the debug print from data frame processing
Jouni Malinen [Thu, 4 Dec 2008 12:20:33 +0000 (14:20 +0200)]
nl80211: Remove the debug print from data frame processing

This is currently happening way too frequently (mac80211 monitor
interface sends TX info for every frame) and the end result makes it
difficult to read hostapd debug log if there is large amount of data
traffic.

15 years agoMade 802.11 management frame IE parser aware of vendor HT Capab IE
Jouni Malinen [Thu, 4 Dec 2008 11:42:33 +0000 (13:42 +0200)]
Made 802.11 management frame IE parser aware of vendor HT Capab IE

This IE is not (at least yet) actually used for anything, but parsing it
cleans up verbose debug log a bit since thie previously unknown, but
commonly used, vendor IE was being reported as unknown.

15 years agoFixed WEP authentication (both Open System and Shared Key) with mac80211
Jouni Malinen [Thu, 4 Dec 2008 11:21:35 +0000 (13:21 +0200)]
Fixed WEP authentication (both Open System and Shared Key) with mac80211

Only one of the authentication frame types is encrypted. In order for
static WEP encryption to work properly (i.e., to not encrypt the frame),
we need to tell mac80211 about the frames that must not be encrypted.

15 years agoEAP-AKA': Allow both AKA AKA' to be registed from eap_aka_prime.c
Jouni Malinen [Wed, 3 Dec 2008 17:59:52 +0000 (19:59 +0200)]
EAP-AKA': Allow both AKA AKA' to be registed from eap_aka_prime.c

This allows the same source code file to be shared for both methods. For
now, this is only in eap_aka_prime.c, but eventually, changes in
eap_aka_prime.c are likely to be merged into eap_aka.c at which point
the separate eap_aka_prime.c can be removed.

15 years agoRemoved mac_addr from eapol_ctx to fix the eapol_test build
Jouni Malinen [Wed, 3 Dec 2008 17:53:31 +0000 (19:53 +0200)]
Removed mac_addr from eapol_ctx to fix the eapol_test build

15 years agoEAP-AKA': Derive keys using the new KDF (PRF')
Jouni Malinen [Wed, 3 Dec 2008 17:22:20 +0000 (19:22 +0200)]
EAP-AKA': Derive keys using the new KDF (PRF')

15 years agonl80211: Generate 802.11b mode based on 802.11g information
Jouni Malinen [Wed, 3 Dec 2008 10:42:21 +0000 (12:42 +0200)]
nl80211: Generate 802.11b mode based on 802.11g information

If the phy info from nl80211 does not include 802.11b mode, generate
that mode based on 802.11g information. This allows hw_mode=b to be used
with drivers that support 2.4 GHz band.

15 years agoEAP-AKA': Use HMAC-SHA-256-128 for AT_MAC
Jouni Malinen [Tue, 2 Dec 2008 19:29:26 +0000 (21:29 +0200)]
EAP-AKA': Use HMAC-SHA-256-128 for AT_MAC

15 years agoEAP-AKA': Use SHA256 for AT_CHECKCODE
Jouni Malinen [Tue, 2 Dec 2008 19:05:38 +0000 (21:05 +0200)]
EAP-AKA': Use SHA256 for AT_CHECKCODE

15 years agoUse a variable to store EAP method type for EAP-AKA vs. EAP-AKA'
Jouni Malinen [Tue, 2 Dec 2008 18:27:05 +0000 (20:27 +0200)]
Use a variable to store EAP method type for EAP-AKA vs. EAP-AKA'

This makes it easier to eventually replace EAP-AKA implementation with a
shared implementation that supports both EAP-AKA and EAP-AKA'.

15 years agoAdd a starting point for EAP-AKA' (draft-arkko-eap-aka-kdf-10)
Jouni Malinen [Tue, 2 Dec 2008 18:12:49 +0000 (20:12 +0200)]
Add a starting point for EAP-AKA' (draft-arkko-eap-aka-kdf-10)

This is just making an as-is copy of EAP-AKA server and peer
implementation into a new file and by using the different EAP method
type that is allocated for EAP-AKA' (50). None of the other differences
between EAP-AKA and EAP-AKA' are not yet included.

It is likely that once EAP-AKA' implementation is done and is found to
work correctly, large part of the EAP-AKA and EAP-AKA' code will be
shared. However, it is not reasonable to destabilize EAP-AKA
implementation at this point before it is clearer what the final
differences will be.

15 years agoFixed non-HT (and GF, 20 MHz) counting
Jouni Malinen [Tue, 2 Dec 2008 12:32:05 +0000 (14:32 +0200)]
Fixed non-HT (and GF, 20 MHz) counting

Must not count the same STA multiple times if it reassociates back to
the same AP without the old STA entry being removed.

15 years agoWPS: Added support for wildcard PINs that work with any UUID-E
Jouni Malinen [Sun, 30 Nov 2008 18:32:03 +0000 (20:32 +0200)]
WPS: Added support for wildcard PINs that work with any UUID-E

Since the Registrar may not yet know the UUID-E when a new PIN is
entered, use of a wildcard PIN that works with any UUID-E can be useful.
Such a PIN will be bound to the first Enrollee trying to use it and it
will be invalidated after the first use.

15 years agoWPS: Added more verbose debug info on authentication type mismatch
Jouni Malinen [Sun, 30 Nov 2008 17:56:11 +0000 (19:56 +0200)]
WPS: Added more verbose debug info on authentication type mismatch

15 years agoWPS: Added note about update_config and added WPS to ChangeLog
Jouni Malinen [Sun, 30 Nov 2008 15:48:45 +0000 (17:48 +0200)]
WPS: Added note about update_config and added WPS to ChangeLog

15 years agoWPS: Added initial documentation on using WPS with wpa_supplicant
Jouni Malinen [Sun, 30 Nov 2008 15:42:58 +0000 (17:42 +0200)]
WPS: Added initial documentation on using WPS with wpa_supplicant

15 years agoClear various flags on re-association to allow key_mgmt changes
Jouni Malinen [Sun, 30 Nov 2008 15:22:51 +0000 (17:22 +0200)]
Clear various flags on re-association to allow key_mgmt changes

If a STA reassociates and changes key_mgmt (e.g., from WPA-PSK to WPS),
hostapd needs to reset some of the existing STA and WPA state machine
variables to allow correct processing for the new association.

15 years agoAlways clear EAP altAccept and altReject variables on new association
Jouni Malinen [Sun, 30 Nov 2008 14:54:16 +0000 (16:54 +0200)]
Always clear EAP altAccept and altReject variables on new association

Previously, this was only done when the new connection is using
WPA-Personal. However, it looks like it was possible to trigger an
infinite busy loop if altAccept or altReject were left set to true and
an EAPOL frame is received (eapolEap is set to true). Clearing altAccept
and altReject for each association prevents this loop from happening in
the beginning of the next association.

15 years agoWPS: Added support for fragmented WPS IE in Beacon and Probe Response
Jouni Malinen [Sat, 29 Nov 2008 20:06:34 +0000 (22:06 +0200)]
WPS: Added support for fragmented WPS IE in Beacon and Probe Response

Fragment WPS IE if needed to fit into the IE length limits in hostapd
and Reassemble WPS IE data from multiple IEs in wpa_supplicant.

In addition, moved WPS code from events.c into wps_supplicant.c to clean
up module interfaces.

15 years agoWPS: Added driver_test debug dump of Beacon/ProbeResp WPS IE
Jouni Malinen [Sat, 29 Nov 2008 19:27:25 +0000 (21:27 +0200)]
WPS: Added driver_test debug dump of Beacon/ProbeResp WPS IE

15 years agoWPS: Add length limits to device attribute strings
Jouni Malinen [Sat, 29 Nov 2008 19:26:07 +0000 (21:26 +0200)]
WPS: Add length limits to device attribute strings

15 years agoWPS: Fixed hostapd to use allocated buffers for device attributes
Jouni Malinen [Sat, 29 Nov 2008 19:12:12 +0000 (21:12 +0200)]
WPS: Fixed hostapd to use allocated buffers for device attributes

Previous version did not handle re-configuration correctly since WPS
context data was pointing to old (now freed) strings.

15 years agoWPS: Get AP PIN from configuration instead of using hardcoded value
Jouni Malinen [Sat, 29 Nov 2008 19:07:35 +0000 (21:07 +0200)]
WPS: Get AP PIN from configuration instead of using hardcoded value

15 years agoWPS: Added WPS into key_mgmt config write handler
Jouni Malinen [Sat, 29 Nov 2008 19:02:14 +0000 (21:02 +0200)]
WPS: Added WPS into key_mgmt config write handler

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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