Commit Graph

2300 Commits

Author SHA1 Message Date
Marcel Holtmann c31244ddec build: Add support for installing systemd service unit 2018-02-10 18:42:43 +01:00
Marcel Holtmann 90aafba6d4 build: Check for readline only if client utility has been enabled 2018-02-10 11:10:26 +01:00
Marcel Holtmann e0b5680543 build: Fall back to D-Bus sysconfdir if datadir is not available 2018-02-10 11:05:58 +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
James Prestwood 41936468ed netdev: basic support for receiving SA Query requests 2018-02-08 10:34:53 -06:00
Tim Kourt 0afdd64db5 t-runner: refactor logic for output hiding 2018-02-07 11:33:23 -06:00
Tim Kourt 290f4e24d4 t-runner: fix 'new line' usage for non-verbose mode 2018-02-07 11:33:19 -06:00
Tim Kourt d450b25b07 auto-t: reflect name change of the config file in autotests 2018-02-07 11:32:11 -06:00
James Prestwood fc9fe34ba0 test-runner: remove unneeded argument parsing
There was an unnecessary l_strsplit call when parsing the verbose
options for test-runner. The verbose options get parsed inside
qemu already, so this call was removed.
2018-02-02 14:38:23 -06:00
Tim Kourt 8c1b175b8b peap: derive and install eap key material 2018-02-02 14:27:05 -06:00
Tim Kourt c5ec12e0e4 peap: response fragmentation support 2018-02-02 12:58:28 -06:00
Tim Kourt 71ebb7c1d5 peap: send response pkts 2018-02-01 22:09:12 -06:00
Tim Kourt 84be0eb8d3 peap: handle fragmented request 2018-02-01 22:08:13 -06:00
James Prestwood bcf9ec5922 tools: add valgrind option to test-runner
Can now pass -V, --valgrind to test-runner to run valgrind on
iwd during autotests. Note: the verbose option for iwd must
also be passed in order to see output (-v iwd).
2018-02-01 13:21:55 -06:00
James Prestwood f3cc96499c netdev: added support for SA Query
SA Query procedure is used when an unprotected disassociate frame
is received (with frame protection enabled). There are two code
paths that can occur when this disassociate frame is received:

1. Send out SA Query and receive a response from the AP within a
   timeout. This means that the disassociate frame was not sent
   from the AP and can be ignored.

2. Send out SA Query and receive no response. In this case it is
   assumed that the AP went down ungracefully and is now back up.
   Since frame protection is enabled, you must re-associate with
   the AP.
2018-02-01 11:33:47 -06:00
Tim Kourt 362771577b peap: introduce basic request-response flow 2018-02-01 10:47:26 -06:00
Tim Kourt 40898deb8b peap: handle Start flag 2018-02-01 10:43:16 -06:00
James Prestwood d25e88cd8d t-runner: Fixed crash
test-runner would segfault if no verbose option was passed.
2018-02-01 10:30:48 -06:00
James Prestwood 1491ebe877 auto-t: add SA Query tests
Two autotests:

1. Tests SA Query procedure when the AP goes down. In this case the AP
   goes down ungracefully, now allowing it to send out any deauth
   frames. When the AP comes back up, IWD still thinks its connected.
   The AP will then send unprotected disassociate frames so the client
   can re-connect. This kicks off the SA Query procedure, which the AP
   will not respond to. At this point we can deauth and reconnect to
   the AP.

2. Test SA Query procedure when a disassociate frame has been spoofed.
   In this case we receive an unprotected disassociate frame and start
   SA Query. The AP should then respond to the SA query within the
   timeout. We then know the frame was spoofed and can remain
   connected.
2018-02-01 10:29:44 -06:00
James Prestwood ce0d5858da util: added macros to print mac addresses 2018-02-01 10:12:09 -06:00
James Prestwood 62bdf6c482 auto-t: hwsim fixup
Changed disassociate reason to 0x07 when spoofing a disassociate
frame. This along with 0x06 are the only two reason codes that
should be accepted in an unprotected disassociate frame.
2018-02-01 10:12:09 -06:00
James Prestwood 13429f8f2d auto-t: add spoofing frame support to hwsim util
Using the hwsim dbus interface ".Interface" under the radios
object you can now send an arbitrary frame out from that radio.
Two methods have been added, spoof_frame and spoof_disassociate.
2018-01-30 23:03:55 -06:00
James Prestwood fe616fbfa5 auto-t: hostapd util get_config_value and get_freq
The hwsim SendFrame method requires the radio frequency which
is obtained from the hostapd config file. This adds a generic
API to get any config value from the hostapd config, as well
as a get_freq API that converts the channel number to a
frequency.
2018-01-30 23:03:51 -06:00
Denis Kenzior 17f55f3b4a hwsim: Fix leak of send_frame_info->user_data
In case the genl object is cleaned up prior to the callback being
called, the DBus message might get leaked.  Can only happen in bizarre
cases.
2018-01-30 23:03:07 -06:00
James Prestwood f22ec55efb hwsim: add spoofing frame support
Added a new method SendFrame() under the radios .Interface
interface. This method takes two byte arrays as parameters,
first is the station address to send the frame to, and the
second is the raw frame data.
2018-01-30 22:59:32 -06:00
James Prestwood 5447ba482a docs: documentation for SendFrame method 2018-01-29 14:06:32 -06:00
James Prestwood 0db0ce43b8 auto-t: add ungraceful restart to hostapd util
For testing SA Query, the autotest needs the ablility to force
kill (and restart) hostapd without giving it time to deauth its
stations gracefully. A method was added to the HostapdCLI class
which does a killall -9 hostapd, resets the wlnX interface,
and restarts hostapd with the same arguments as it had before.
2018-01-29 14:05:57 -06:00
Marcel Holtmann f82eb13f65 build: Make the manual pages creation optional 2018-01-29 03:04:17 -08:00
Marcel Holtmann b4c9e63a8b build: Make D-Bus policy configuration install optional 2018-01-29 02:55:54 -08:00
Marcel Holtmann 64dcf11042 main: Rephrase warning when optional configuration file is missing 2018-01-29 02:25:28 -08:00
Marcel Holtmann 47e6bdddf2 linux: update nl80211.h to Linux 4.15 release 2018-01-29 02:22:22 -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
James Prestwood 20fc857afd test-runner: added more verbosity options
The following verbose options can be used:

"unit" - see output from unit tests
"kernel" - see hwsim kernel prints
"pytests" - see prints from python autotests
2018-01-24 17:07:43 -06:00
Tim Kourt 1d1bbb83eb eap-peap: add version validation 2018-01-24 11:23:50 -06:00
Tim Kourt ba8857d2f4 eap-peap: configure Protected EAP 2018-01-24 11:22:16 -06:00
Tim Kourt 20e74e8679 eap-peap: Introduce Protected EAP support 2018-01-24 11:19:56 -06:00
Tim Kourt b33486a7c7 eap: add eap type 25 - peap 2018-01-24 11:19:12 -06:00
James Prestwood 802a8f86ff test-runner: make verbose option -v application specific
The existing verbose option would turn on debug logging for most
processes in the test-runner framework. This change makes the verbose
option more granular. The --verbose or -v option should now be
followed by a comma separated list of the test-runner processes you
want to see debug logging from. Currently iwd, hwsim, ofonod, and
hostapd are valid options to pass to the verbose flag e.g.

-v iwd,hwsim,ofonod,hostapd

Or any single/combination of the above applications.
2018-01-24 11:17:30 -06:00
Denis Kenzior 973b7b4555 unit: Additional support checks for WSC tests 2018-01-24 11:07:36 -06:00
Denis Kenzior 9e0d11f948 unit: pin generation test depends on getrandom
Turn this test off if the kernel doesn't have it
2018-01-24 09:17:00 -06:00
Denis Kenzior f91380c195 unit: Skip EAPoL tests when kernel features are missing 2018-01-23 15:50:35 -06:00
Denis Kenzior b64efb83bc unit: Don't run WSC tests if kernel features missing
WSC uses Diffie-Hellman and AES-CBC, so don't bother running the tests
that need these in case the feature is not present in the kernel.
2018-01-23 15:50:32 -06:00
Denis Kenzior 0565c484d1 build: Add key-private.h from ell to build 2018-01-23 15:27:02 -06:00
Tim Kourt 3230cee2a1 network: add check for autoconnect flag in settings 2018-01-23 14:13:00 -06:00
Tim Kourt 91b6efaf66 eap: add NULL checks
1. Enforce implementation of handle_request function

2. In case of unimplemented handle_retransmit try to use
   handle_request instead and rely on method specific
   mechanism to restart the conversation if necessary

3. Make method->free implementation unrequired
2018-01-23 14:12:24 -06:00
Tim Kourt 4ed442b8b8 eap: add eap type 33 - extensions 2018-01-22 17:12:16 -06:00
Andrew Zaborowski 0ac0c6b129 device: Update Scanning on periodic scan stop
When we call scan_periodic_stop and a periodic scan is in progress (i.e.
the trigger callback has been called already) we get no new callback
from scan.c and the device Scanning property remains True forever so set
it to False.

The change from scan_periodic_stop to periodic_scan_stop looks silly but
it's consistent with our naming :)
2018-01-22 10:35:33 -06:00
Denis Kenzior d98349d201 tools: Remove unused kernel config
CONFIG_CRYPTO_USER_API_AKCIPHER was superceded by the keys API and not
actually used now.
2018-01-22 10:27:50 -06:00