Commit Graph

361 Commits

Author SHA1 Message Date
Tim Kourt 20466cd735 resolve: Introduce resolve module
The module is responsible for the configuration of the address
resolution services. It will consist of the multiple service
specific plugins such as: systemd-resolved plugin, dnsmasq
plugin, etc.
2019-07-02 19:09:57 -05:00
James Prestwood a5f2710d05 hotspot: add hotspot module
This module will be in charge of managing Hotspot provisioning files
stored under the .hotspot/ directory. This includes a dir watch to
handle file changes/removal as well as an API to match a network
object to a hotspot provisioning file.
2019-06-26 14:25:11 -05:00
Tim Kourt 4e3e1fbf60 netconfig: Introduce netconfig module
netconfig module will be responsible for the orchestration
of the network configuration with the IP addresses.

iwd creates one netconfig structure per interface index.
The purpose of this struct is to hold all of the interface
related addressing states such as: assigned dhcp
clients, known addresses, routes, etc.
2019-06-26 10:25:57 -05:00
James Prestwood 2ce5277f6d anqp: added utility for parsing ANQP responses
Currently these are geared to support the WiFi Alliance Hotspot 2.0
ANQP elements, which all fall under the vendor specific ANQP element.

anqp_iter_next behaves similar to the genl parsers, where the id, length
and data will be returned as out parameters. Currently there is only
vendor support for Hotspot 2.0. anqp_iter_is_hs20 can be used to setup
the subtype, length, and data pointer to parse any Hotspot 2.0 ANQP
elements. From here the subtype can be checked and a vendor specific
parser for that subtype can be used to parse the data, e.g.
hs20_parse_osu_provider_nai.
2019-06-14 16:09:29 -05:00
Denis Kenzior c80d32a162 ap: Convert to IWD_MODULE 2019-05-28 14:43:42 -05:00
Denis Kenzior eeac3e8f40 adhoc: Convert to IWD_MODULE 2019-05-28 14:24:37 -05:00
Marcel Holtmann cde9933124 build: Generate certificates for unit testing locally 2019-05-11 10:11:12 +02:00
Marcel Holtmann 635ca39096 build: Add missing src/auth-proto.h filename 2019-05-10 10:48:40 +02:00
Marcel Holtmann 02a3f6a146 build: Fix spelling of src/rtnlutil.h filename 2019-05-10 10:44:57 +02:00
James Prestwood 87346212c9 ft: rename ftutil to ft (prep for auth-proto)
Now the 'ft' module, previously ftutil, will be used to drive FT via
the auth-proto virtual class. This renaming is in preparation as
ftutil will become obsolete since all the IE building/processing is
going to be moved out of netdev. The new ft.c module will utilize
the existing ftutil functionality, but since this is now a full blown
auth protocol naming it 'ft' is better suited.
2019-05-07 14:09:08 -05:00
Tim Kourt 5104e6752f rtnlutil: Introduce rtnl utility
The rtnl utility will encapsulate a collection of functions for rtnl ops.
2019-05-06 13:21:15 -05:00
James Prestwood 14ac9e4aeb unit: fix test-sae after auth_proto changes
The SAE unit test needed to be updated to use the handshake_driver,
but in addition all the packet building needed a major overhaul. SAE
was changed to behave more like OWE/FILS, in that netdev passes the
raw mpdu frame into the RX callbacks. Before, only the authentication
data was passed. This requires the unit tests to now build up the
entire authentication frame, and in some cases append the header
to the data coming from the TX functions.
2019-05-03 14:43:35 -05:00
James Prestwood 73c9a126bd fils: implementation for FILS
FILS (Fast Initial Link Setup) allows a station to negotiate a PTK during
authentication and association. This allows for a faster connection as
opposed to doing full EAP and the 4-way. FILS uses ERP (EAP Reauth Protocol)
to achieve this, but encapsulates the ERP data into an IE inside
authenticate frames. Association is then used to verify both sides have
valid keys, as well as delivering the GTK/IGTK.

FILS will work similar to SAE/OWE/FT where netdev registers a fils_sm, and
then forwards all Auth/Assoc frame data to and from the FILS module.
2019-04-22 14:55:02 -05:00
Denis Kenzior b768e26f1d Revert "mschaputil: use util_get_username"
This reverts commit 1e337259ce.

Using util_get_username was wrong in this context.  MSCHAPv2 expects us
to only strip the domain name from identities of the form
domain\identity.  util_get_username would also strip identities of the
form username@domain.com.
2019-04-18 10:46:56 -05:00
James Prestwood 61ab1d4f5f make: add erp files to unit test recipes 2019-04-17 17:06:25 -05:00
James Prestwood d938d362b2 erp: ERP implementation and key cache move
ERP (EAP Reauthentication Protocol) allows a station to quickly
reauthenticate using keys from a previous EAP authentication.

This change both implements ERP as well as moves the key cache into
the ERP module.

ERP in its current form is here to only support FILS. ERP is likely not
widespread and there is no easy way to determine if an AP supports ERP
without trying it. Attempting ERP with a non-ERP enabled AP will actually
result in longer connection times since ERP must fail and then full EAP
is done afterwards. For this reason ERP was separated from EAP and a
separate ERP state machine must be created. As it stands now, ERP cannot
be used on its own, only with FILS.
2019-04-17 17:06:25 -05:00
Andrew Zaborowski 530a449337 manager: Add new file for wiphy/interface management
Add manager.c, a new file where the wiphy and interface creation/removal
will be handled and interface use policies will be implemented.  Since
not all kernel-side nl80211 interfaces are tied to kernel-side netdevs,
netdev.c can't manage all of the interfaces that we will be using, so
the logic is being moved to a common place where all interfaces on a
wiphy will be managed according to the policy, device support for things
like P2P and user enabling/disabling/connecting with P2P which require
interfaces to be dynamically added and removed.
2019-04-11 11:17:52 -05:00
James Prestwood 5df84a6933 erpcache: implementation for ERP key cache
This allows IWD to cache ERP keys after a full EAP run. Caching
allows IWD to quickly connect to the network later on using ERP or
FILS.

The cache will contain the EAP Identity, Session ID, EMSK, SSID and
optionally the ERP domain. For the time being, the cache entry
lifetimes are hard coded to 24 hours. Eventually the cache should
be written to disk to allow ERP/FILS to work after a reboot or
IWD restart.
2019-04-10 13:58:13 -05:00
James Prestwood 27f7a523b4 unit: add tests for util_get_{domain,username}
test-ssid-to-utf8 was hijacked and renamed to test-util, and
two tests were added for the new utility functions.
2019-04-08 16:30:41 -05:00
James Prestwood 1e337259ce mschaputil: use util_get_username 2019-04-08 16:28:56 -05:00
Marcel Holtmann ac2cbd325f build: Add src/pkcs8.conf to the distribution 2019-04-04 07:12:24 +02:00
Marcel Holtmann ea074ffe67 build: Create ELL_UNIT_TEST_DATA define for certificate directory 2019-04-03 19:16:29 +02:00
Marcel Holtmann 10db2d60d6 build: Add src/missing.h to the distribution 2019-04-03 18:37:10 +02:00
James Prestwood ed6f5ea55a blacklist: add blacklist.[ch] to build and main
This will allow for blacklisting a BSS if the connection fails. The
actual blacklist module is simple and must be driven by station. All
it does is add BSS addresses, a timestamp, and a timeout to a queue.
Entries can also be removed, or checked if they exist. The blacklist
timeout is configuratble in main.conf, as well as the blacklist
timeout multiplier and maximum timeout. The multiplier is used after
a blacklisted BSS timeout expires but we still fail to connect on the
next connection attempt. We multiply the current timeout by the
multiplier so the BSS remains in the blacklist for a larger growing
amount of time until it reaches the maximum (24 hours by default).
2019-01-24 17:29:15 -06:00
James Prestwood 425cb2aa49 build: added ell/time.[ch] to Makefile.am 2019-01-24 12:29:35 -06:00
Marcel Holtmann 39ee15dbc3 build: Provide modules-load.d for loading pkcs8_key_parser module 2019-01-23 18:22:11 +01:00
Tim Kourt 58f7b06c01 unit: Switch eap-mschapv2 test to use mschaputil 2019-01-10 17:04:57 -06:00
Denis Kenzior 9b722197ba ecc: Remove remaining ECC/ECDH files
ECC primitives have now been fully converted / moved to ell.
2019-01-10 16:27:09 -06:00
Marcel Holtmann a44969f837 build: Add ell/tls-suites.c and ell/tls-extensions.c 2019-01-05 21:24:29 +01:00
James Prestwood c2094c5e04 ecdh: remove ECDH and unit tests
ECDH was moved into ell and is no longer needed in IWD
2018-12-12 11:12:27 -06:00
James Prestwood 82ac1e0ba5 build: added ecc/ecdh into ell headers and sources 2018-12-12 10:55:39 -06:00
Martin Hundebøll c4803d3b12 build: make client unit test conditional on --{enable,disable}-client
The iwctl client and its unit test depends on readline. If building on a
host without readline installed, default make target succeeds when
configured with --disable-client, but the following make check target
fails.

Fix this by making the test-client target conditional on the
--{enable,disable}-client configure flag.
2018-11-22 15:06:48 +01:00
James Prestwood 007d972046 unit: allow ECDH test vector to run without l_getrandom
Using the gcc wrap feature, l_getrandom was redefined to use a known
good, hardcoded random value. The two other tests were also disabled
if l_getrandom is not supported since these do require randomness
for proper testing.
2018-11-20 17:28:44 -06:00
Denis Kenzior 4f2fe6370f build: Add new cert files from ell 2018-11-19 17:10:53 -06:00
James Prestwood 8978f8c43f owe: added OWE module
This module is similar to SAE in that it communicates over authenticate
and associate frames. Creating a new OWE SM requires registering two TX
functions that handle sending the data out over CMD_AUTHENTICATE/ASSOCIATE,
as well as a complete function.

Once ready, calling owe_start will kick off the OWE process, first by
sending out an authenticate frame. There is nothing special here, since
OWE is done over the associate request/response.

After the authenticate response comes in OWE will send out the associate
frame which includes the ECDH public key, and then receive the AP's
public key via the associate response. From here OWE will use ECDH to
compute the shared secret, and the PMK/PMKID. Both are set into the
handshake object.

Assuming the PMK/PMKID are successfully computed the OWE complete callback
will trigger, meaning the 4-way handshake can begin using the PMK/PMKID
that were set in the handshake object.
2018-11-16 18:06:42 -06:00
James Prestwood dddbf22ab7 unit: added ECDH unit tests 2018-11-16 16:25:20 -06:00
James Prestwood 5811e72940 ecdh: added ECDH module 2018-11-16 16:25:17 -06:00
Marcel Holtmann 30c79d2633 build: Generate ell/ell.h from list of public headers 2018-10-30 20:54:16 +01:00
Marcel Holtmann 5bec514229 build: Include ell/utf8.h and ell/utf8.c into build objects 2018-10-26 21:22:37 +02:00
Marcel Holtmann 4412cbf1b4 build: Include ell/strv.h and ell/strv.c into build objects 2018-10-25 23:24:41 +02:00
Tim Kourt b46376980a mschaputil: Add MS CHAP utilities 2018-10-24 16:28:46 -05:00
Ross Burton 282a9f1a14 build: fix out-of-tree builds
In out-of-tree builds without dependency tracking the src/ directory generally
won't be created before genbuiltin tries to write into it.  Fix the race by
explicitly creating the directory.
2018-10-20 19:19:31 +02:00
Marcel Holtmann c9c5cbcd27 build: Remove fswatch.[ch] files from ELL compilation 2018-10-19 20:12:01 +02:00
Denis Kenzior d22e57c994 treewide: Remove use of key-private.h 2018-10-19 00:31:41 -05:00
Marcel Holtmann 2200b2663e build: Add support for compiling with an external ELL shared library 2018-10-18 20:31:29 +02:00
Marcel Holtmann a3c1fa28da build: Rename nl80211_util.[ch] into nl80211util.[ch] 2018-10-14 05:41:06 +02:00
James Prestwood 04a9315a3c nl80211: introduce nl80211 utility API's
Netdev/AP share several NL80211 commands and each has their own
builder API's. These were moved into a common file nl80211_util.[ch].

A helper was added to AP for building NEW_STATION to make the associate
callback look cleaner (rather than manually building NEW_STATION).
2018-10-08 21:34:58 -05:00
Marcel Holtmann f16e671e62 build: Include ell/dir.h and ell/dir.c into build objects 2018-10-04 22:54:32 +02:00
Tim Kourt 410ee2f6b9 eap-tls-common: introduce utility functions for eap-tls 2018-09-21 12:15:25 -05:00
Marcel Holtmann 004c9ebcd0 build: Fix typo within eap-wsc.h header path 2018-09-19 21:57:28 +02:00
Denis Kenzior 6b46beef45 client: Move properties from Device to Station 2018-09-14 21:12:11 -05:00
Marcel Holtmann 247b2ccc5c wired: Move D-Bus setup into separate source file 2018-09-14 23:29:46 +02:00
Marcel Holtmann b8d45a440a wired: Add initial version of Ethernet authentication daemon 2018-09-14 19:49:10 +02:00
Marcel Holtmann 1e37ef31fe eapol: Move eapol_key_validate() into eapolutil helper 2018-09-14 17:31:42 +02:00
Marcel Holtmann c40be7a7d5 monitor: Add EAP dummy method to keep linker happy 2018-09-14 17:12:47 +02:00
Marcel Holtmann 4a345511a7 wired: Add skeleton for Ethernet device handling and EAP setup 2018-09-14 16:41:05 +02:00
Marcel Holtmann fd181839f7 build: Introduce $(eap_sources) for splitting EAP from daemons 2018-09-14 16:35:04 +02:00
Marcel Holtmann 502aac073f tools: Add configure option and D-Bus policy file for hwsim utility 2018-09-14 15:24:15 +02:00
Marcel Holtmann c9b460f5cc build: Add D-Bus policy for Ethernet authentication daemon 2018-09-14 15:07:30 +02:00
Marcel Holtmann 706f0775c3 build: Add option to disable the wireless daemon binary 2018-09-14 14:36:07 +02:00
Marcel Holtmann 5efc88f3af build: Add systemd service configuration for Ethernet daemon 2018-09-14 14:09:53 +02:00
Marcel Holtmann a053084228 build: Prepare the systemd configuration option for extensions 2018-09-14 14:07:34 +02:00
Marcel Holtmann f81570eb75 build: Enable all optional features during distcheck 2018-09-14 13:53:55 +02:00
Marcel Holtmann 0071ecef8b build: Add skeleton for Ethernet authentication daemon 2018-09-14 13:47:51 +02:00
Marcel Holtmann 8da33905f4 build: Add configuration for building internal utilities 2018-09-14 13:46:55 +02:00
Marcel Holtmann f2d4b9afbd build: Move plugin conditionals closer to the daemon sources 2018-09-14 13:46:15 +02:00
Marcel Holtmann a01bbcfc19 build: Split noinst_PROGRAMS and libexec_PROGRAMS statements 2018-09-14 13:40:21 +02:00
Marcel Holtmann b6720d52ac build: Fix source file entries for hwsim and test-runner 2018-09-14 13:33:08 +02:00
Denis Kenzior 641e71a02f station: Add skeleton 2018-08-31 20:24:15 -05:00
James Prestwood 26246e75c8 unit: tests for SAE 2018-08-15 13:26:58 -05:00
James Prestwood 220fb61128 sae: implementation
SAE (Simultaneous Authentication of Equals) takes place during
authentication, and followed by EAPoL/4-way handshake. This
module handles the entire SAE commit/confirm exchange. This was
done similar to eapol.

SAE begins when sae_register is called. At this point a commit
message will be created and sent out which kicks off the SAE
authentication procedure.

The commit/confirm exchange is very similar to EAP-PWD, so all
the ecc utility functions could be re-used as-is. A few new ecc
utility functions were added to conform to the 80211 'blinding'
technique for computing the password element.
2018-08-13 20:40:59 -05:00
Marcel Holtmann 28573c90d1 build: Add support for systemd D-Bus activation 2018-08-06 22:37:22 +02:00
Tim Kourt efe45e4180 client: add client support for AdHoc 2018-07-30 09:00:57 -05:00
Tim Kourt 0fec184eae client: add client support for AP 2018-07-30 09:00:57 -05:00
Tim Kourt bb1a0adec7 client: introduce proxy property utils
All of the shared functions related to the processing of the
proxy properties will reside in this collection.
2018-07-25 11:21:14 -05:00
Andrew Zaborowski 2ca2d080d5 build: Add fswatch.[ch] from ell 2018-07-23 11:45:29 -05:00
Denis Kenzior c37146d403 wsc: Rework wsc_init & wsc_exit
- wsc module does not need nl80211 any longer, so remove it.
- Move wsc_init & wsc_exit declarations to iwd.h and remove wsc.h
- re-arrange how wsc_init & wsc_exit is called inside main.c.
2018-07-17 19:19:09 -05:00
James Prestwood 55cb9aa2e9 adhoc: adhoc implementation 2018-07-17 16:46:18 -05:00
Denis Kenzior 1d40c6cee7 build: Add util.c to test-eapol
src/eapol.c now uses util_*
2018-06-22 14:40:46 -05:00
Denis Kenzior 180a893c0c unit: Update to the new EAP API 2018-06-14 20:01:22 -05:00
Denis Kenzior a2d8054218 eap: Separate private bits into eap-private.h 2018-06-14 20:01:19 -05:00
Denis Kenzior 5616962bb2 unit: Update scan_get_security usage to new API 2018-05-24 19:22:16 -05:00
Marcel Holtmann 3d69c3b134 build: Remove readline header files from sources listing 2018-05-05 09:19:01 +02:00
Tim Kourt 85a1678147 client: introduce agent 2018-05-03 16:00:23 -05:00
Tim Kourt d1a00d9b34 client: implement agent-manager API 2018-05-03 16:00:23 -05:00
James Prestwood d10369cf60 eap-pwd: core EAP-PWD code 2018-05-03 10:50:30 -05:00
James Prestwood 49d313ab68 unit: Add ECC math sanity tests 2018-05-03 10:48:46 -05:00
James Prestwood fdee72dffc ecc: added ecc implementation for EAP-PWD
The file, src/ecc.c was taken from the bluez project:
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/src/shared/ecc.c

There were minor changes made, e.g. changing some functions to globals
for access in EAP-PWD as well as removing some unneeded code. There was
also some code appended which allows for point addition, modulus inverse
as well as a function to compute a Y value given an X.
2018-05-03 10:27:53 -05:00
Denis Kenzior ab9c5670f7 build: Add new ell files 2018-04-19 10:23:54 -05:00
Denis Kenzior 6de76f97b4 build: Add net.[ch] from ell 2018-04-10 00:18:11 -05:00
James Prestwood c0739c1965 eap-gtc: add EAP-GTC method implementation 2018-04-04 09:42:28 -05:00
Tim Kourt 7501d9372b unit: network args parser validation 2018-03-28 14:33:00 -05:00
Marcel Holtmann fe3a85ae05 build: Add extra dependency for internal ELL library 2018-02-11 21:03:36 +01:00
Marcel Holtmann c31244ddec build: Add support for installing systemd service unit 2018-02-10 18:42:43 +01:00
Marcel Holtmann 9f19cc3d25 build: Add option to disable monitor and client utilities 2018-02-09 17:14:31 +01:00
Marcel Holtmann 1f7d44056c build: Separate between D-Bus policy and data directory 2018-02-09 17:01:31 +01:00
Marcel Holtmann b4c9e63a8b build: Make D-Bus policy configuration install optional 2018-01-29 02:55:54 -08:00
Marcel Holtmann 0cf589e13d build: Don't provide iwd/main.conf during make install 2018-01-29 02:20:52 -08:00
Marcel Holtmann 980f6f3645 main: Rename iwd/iwd.conf into iwd/main.conf 2018-01-29 02:13:41 -08:00
Tim Kourt 20e74e8679 eap-peap: Introduce Protected EAP support 2018-01-24 11:19:56 -06:00
Denis Kenzior 0565c484d1 build: Add key-private.h from ell to build 2018-01-23 15:27:02 -06:00
James Prestwood 4911ba1e59 unit: updated Makefile to build simauth.c for eap-sim 2017-12-13 17:13:29 -06:00
James Prestwood 5d6118681d plugins: added ofono plugin to build 2017-12-13 11:53:42 -06:00
Denis Kenzior dd867a1e13 build: Add new dbus-client.[ch] files from ell 2017-12-06 15:05:06 -06:00
James Prestwood 074fb7df56 make: added hardcoded SIM plugin to build 2017-12-06 15:04:07 -06:00
James Prestwood 6c95faf88f make: added simauth source to build 2017-11-30 08:49:49 -06:00
James Prestwood 8c6099fb9e plugins: added plugin module to build 2017-11-28 13:30:44 -06:00
James Prestwood 517df48101 make: plugin system for build
Preperation for ell plugins. New plugins can be added to
builtin_sources/builtin_modules, which will be added
to src/builtin.h when it is generated.
2017-11-28 13:20:33 -06:00
Andrew Zaborowski 525ecbb113 unit: Remove pbkdf2_sha1 tests
They can now be moved to ELL.
2017-10-09 14:34:31 -05:00
Andrew Zaborowski 47ae1c2f06 unit: Add IE order tests in test-mpdu 2017-09-22 12:15:37 -05:00
Denis Kenzior ac819aea67 build: Add file.[ch] from ell 2017-09-22 10:07:06 -05:00
Andrew Zaborowski 212bc08104 ap: Add AP mode api
Very basic WPA2-PSK only access point mode API with stubs of the start and
stop functions.
2017-09-12 14:29:34 -05:00
Andrew Zaborowski f05c3c30d1 eapol: Add eapol_frame_watch_add / remove
Allow other files to receive EAPoL frames on specified interfaces.
2017-09-07 16:16:42 -05:00
Marcel Holtmann 5cbd0aa1d9 build: Make sure iwd-dbus.conf gets included in the distribution 2017-08-30 23:37:19 +02:00
Marcel Holtmann aa668df7c9 build: Remove readline/readline.h and readline/history.h from SOURCES 2017-08-30 23:29:18 +02:00
James Prestwood 6aaa917dde aka: EAP-AKA protocol implementation 2017-08-21 18:20:10 -05:00
James Prestwood b2fe7fe230 unit: EAP-SIM unit tests
Several unit tests for EAP-SIM functionality:
 - Get/Add attributes
 - MAC calculation
 - PRNG test
2017-08-21 18:03:13 -05:00
James Prestwood 283717b22f sim: EAP-SIM protocol implementation 2017-08-21 17:43:55 -05:00
Denis Kenzior d67f8acd57 build: Add new files from ell 2017-08-14 16:32:35 -05:00
Tim Kourt 50d04e99a7 Makefile: install iwd-dbus.conf 2017-05-04 18:03:13 -05:00
Tim Kourt cb40e36ea1 client: introduce psk agent manager 2017-05-02 14:11:00 -05:00
Tim Kourt b1d261a790 client: add WSC argument completers 2017-05-01 13:42:21 -05:00
Tim Kourt ee369bacc9 client introduce wsc interface 2017-05-01 13:40:14 -05:00
Tim Kourt 60c4025cdf client: Introduce adapter interface 2017-04-27 15:11:59 -05:00
Tim Kourt 0be4a82946 client: Remove excluded client/device.h 2017-04-21 15:00:57 -05:00
Tim Kourt d35322d347 client: Introduce known networks interface 2017-04-21 15:00:57 -05:00
Tim Kourt a5db4630ec client: Introduce network interface 2017-04-18 17:21:48 -05:00
Tim Kourt 9a8ffc473a client: Add device interface 2017-04-13 13:22:00 -05:00
Tim Kourt db679448bc client: Introduce command files
The purpose of these files is to encapsulate all of
the command processing functionality
2017-04-11 16:48:15 -05:00
Tim Kourt 21bebbd581 client: Introduce display files
The purpose of these files is to encapsulate all of
the display related functionality
2017-03-24 09:06:30 -05:00
Tim Kourt 17013fc5c7 build: Add readline into the build 2017-03-23 17:50:58 -05:00
Tim Kourt f3a60f0182 makefile: Add dbus-proxy into the build 2017-03-23 17:32:13 -05:00
Lukas Rusak 4f090aede3 build: remove kdbus 2017-03-17 22:34:03 -05:00
Marcel Holtmann abca195917 build: Include iwd.conf in distribution 2017-03-07 22:24:59 +01:00
Marcel Holtmann 39483e638d build: Disable manual page generation if a2x is not available 2017-03-07 22:06:50 +01:00
Andrew Zaborowski d03eeb398c hwsim: Refactor radio, wiphy and interface tracking
Read wiphy addresses from sysfs and perform the wiphy name to wiphy idx
mapping using sysfs.  Do this directly on a new radio notification and
stop using new wiphy notifications except for updating the radio names.
Having the wiphy index available synchronously when parsing a new radio
event we store the wiphy index in the radio_info_rec struct directly and
drop struct wiphy_info_rec as there was a 1:1 mapping.  With this, and
knowing that all radio_info data is available when new interface
notifications are received, the tracking is simplified because dbus
objects can be created and destroyed within the notification handlers.
We also now store both the wiphy hardware address data and separately
the interface MAC addresses and can use them more appropriately in the
medium implementation.
2017-03-03 11:56:50 -06:00
Andrew Zaborowski 335ee0c31e hwsim: Add daemon mode with radio information tracking
Add a daemon mode that is entered when no action was specified on the
command line.  In this mode hwsim tracks information on radios through
the netlink events.  The interface to make use of the information is
added in the next patch.
2017-02-23 11:21:18 -06:00
Andrew Zaborowski 0854b90687 netdev: Handle the FT Authentication Response message
Parse the second message of the FT transition, validate and build the
third message, the Reassociation Request.
2017-01-12 10:33:40 -06:00
Markus Ongyerth 9afe21f86f eap-mschapv2: add code for eap method 2016-12-14 22:56:56 -06:00
Markus Ongyerth dfc852dd3e unit: Add tests for eap-mschapv2 functions 2016-12-14 22:47:00 -06:00
Markus Ongyerth 1baa6ec04c eap-mschap: Add crypto functions for mschapv2
Add the key-derivation and hash functions required for mschapv2.
The eap-mschapv2 protocol can be implemented on top of these functions.
2016-12-14 22:46:18 -06:00
Denis Kenzior c78d6fda26 build: Add eap-md5.c to test-eapol requirements
Otherwise the EAP-MD5 driver is not found and we get the following
output:

TEST: EAPoL/8021x EAP-TTLS+EAP-MD5 & 4-Way Handshake
Error initializing EAP for ifindex 1

Program received signal SIGSEGV, Segmentation fault.
2016-12-01 13:41:36 -06:00
Tim Kourt fe25198af6 build: Include eap-md5.c 2016-11-21 11:08:56 -06:00
Andrew Zaborowski 061dad2ff5 Add handshake_state object
struct handshake_state is an object that stores all the key data and other
authentication state and does the low level operations on the keys.  Together
with the next patch this mostly just splits eapol.c into two layers
so that the key operations can also be used in Fast Transitions which don't
use eapol.
2016-11-03 10:23:41 -05:00
Tim Kourt 301caff89e makefile: Install iwd.conf into /etc 2016-11-02 15:44:43 -05:00
Marcel Holtmann 88909947e2 build: Remove support for usage of kdbus 2016-10-16 19:41:27 +02:00
Mat Martineau 8642b70b82 build: Remove old ELL private header 2016-10-05 14:58:57 -05:00
Denis Kenzior 6d410b0bec watchlist: Add watchlist utilities 2016-09-14 20:26:49 -05:00
Denis Kenzior 4518394b0e eap-wsc: Send credential obtained events 2016-09-13 13:32:47 -05:00
Denis Kenzior be1b2a3281 unit: Add end-to-end WSC handshake test
This only checks M1 & M3 message generation for now
2016-08-30 09:22:35 -05:00