Commit Graph

286 Commits

Author SHA1 Message Date
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
Denis Kenzior a5d3e583ff unit: Add DH5 pubkey generation test 2016-08-15 10:52:44 -05:00
Denis Kenzior 7a19a10528 eap-wsc: Add skeleton 2016-08-10 16:59:15 -05:00
Mat Martineau b655475385 build: Add symlinks for ell PKCS8 unit test keys
ELL's unit test private keys are also used by iwd's unit tests.
2016-08-10 12:15:06 -05:00
Andrew Zaborowski 377df7662c Add rfkill enable/disable and watch support
Add rfkill.c/rfkill.h to be used for watching per-wiphy RFkill state.
It uses both /dev/rfkill and /sys because /dev/rfkill is the recommended
way of interfacing with rfkill but at the same time it doesn't provide
the information on mapping to wiphy IDs.
2016-07-07 13:21:08 -05:00
Andrew Zaborowski c3f863f2da knownnetworks: Implement KnownNetworks interface
knownnetworks.c/.h implements the KnownNetworks interface and loads the
known networks from storage on startup.  The list of all the networks
including information on whether a network is known is managed in
network.c to avoid having two separate lists of network_info structures
and keeping them in sync.  That turns out to be difficult because the
network.c list is sorted by connected_time and connected_time changes
can be triggered in both network.c or knownnetworks.c.  Both can also
trigger a network_info to be removed completely.
2016-06-21 11:41:37 -05:00
Andrew Zaborowski 15bab067fc dbus: Remove Manager interface, add AgentManager
Move the Agent-related methods to a new interface, AgentManager, and
drop the remaining methods and signals made redundant by the
ObjectManager.
2016-05-23 11:46:59 -05:00
Denis Kenzior 17a8460835 scan: Move scan_ssid_security to iwd.h
Security type is used all over the place, so move it out to a more
common place.
2016-05-11 15:54:14 -05:00
Denis Kenzior f3fc0ea1f9 device: Refactor netdev watches
Turn netdev watches into device watches.  The intent is to refactor out
netdev specific details into its own class and move device specific
logic into device.c away from wiphy.c
2016-05-05 12:14:59 -05:00
Denis Kenzior 525b6708d9 build: add dbus-name-cache.c 2016-04-26 11:41:55 -05:00
Tim Kourt 855035dc6d test-runner: Included into the IWD build 2016-04-20 17:42:40 -05:00
Denis Kenzior fc68ece8d2 build: Make sure linux/kdbus.h is copied 2016-04-13 14:32:11 -05:00
Denis Kenzior 3cbbe2cc42 main: Add backtracing support
Ported from oFono @ commit df5d691c39b0ff41d3d98a01db078f7157eb0250.
2016-04-13 14:08:10 -05:00
Andrew Zaborowski 945b48bfc9 Makefile: Symlinks for missing ell files.
Add the new dbus-filter.c and ell's version of linux/kdbus.h.  Make sure
linux/kdbus.h is under linux/ so the ell code can find it.
2016-04-04 14:31:23 -05:00
Andrew Zaborowski a64030069e dbus: Drop unused linux/kdbus.h src/kdbus.c
Drop the functions that duplicated ell functionality and the now
unneeded kdbus.h copy.
2016-04-04 14:27:26 -05:00
Denis Kenzior d86b8d2b83 build: Add key.[ch] in ell 2016-03-09 13:29:04 -06:00
Denis Kenzior 98b580a224 unit: Add SHA-256 based KDF unit test 2016-02-10 16:31:01 -06:00
Denis Kenzior 3320d31ead sha1: Remove sha1.[ch] 2016-02-10 14:36:14 -06:00
Denis Kenzior ac4a901518 crypto: move pbkdf2_sha1 to crypto.c 2016-02-10 14:32:27 -06:00
Denis Kenzior 6199960b52 crypto: Move + rework prf_sha1 into crypto.c 2016-02-10 14:16:32 -06:00
Denis Kenzior 064f1e0df9 crypto: Move hmac_sha1 to crypto.c 2016-02-10 14:12:46 -06:00
Andrew Zaborowski cddb584501 Makefile: create links to ell test cerificates
This lets iwd use these certificates in its own unit tests.

Also use $abs_srcdir instead of $top_srcdir.  It looks like $top_srcdir
doesn't exist and that's why the destination path for the symlinks
needed ../.. instead of just ..
2015-11-02 21:51:07 -06:00
Andrew Zaborowski 830161399e eap: Implement the EAP-TTLS method
Only EAP as the inner authentication option is supported.  According to
wikipedia this is the most popular EAP-TTLS use case, with MD5 as the
inner EAP's method.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski f55db6a1c4 eap: Implement EAP-TLS
Add the EAP-TLS authentication method.  Currently, all the credentials
data is read from the provisioning file even though things like the
private key passphrase should possibly be obtained from the dbus agent.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski 3f17fa1159 eap: Add initial EAP API
Adds eap.c/eap.h with the initial EAP API definitions.  No actual EAP
methods are added in this patch.
2015-11-02 09:40:03 -06:00
Denis Kenzior 028fd39bed build: Fix make distcheck 2015-10-02 13:40:59 -05:00
Denis Kenzior d0d509d864 wsc: Add initial PushButton SM 2015-09-28 20:37:07 -05:00
Denis Kenzior e055460709 wsc: Rename wsc.[ch] to wscutil.[ch] 2015-09-10 23:07:34 -05:00
Denis Kenzior 265994edac build: Add ell/uuid.[ch] 2015-08-31 21:32:12 -05:00
Marcel Holtmann fd4d58896e build: Add ell/tls-record.c 2015-08-25 18:36:32 +02:00
Marcel Holtmann 5e86d91697 build: Add ell/ringbuf.[ch] 2015-08-15 04:22:05 +02:00
Marcel Holtmann 64d70c816d build: Add ell/pem.[ch], ell/tls.[ch] and ell/tls-private.h 2015-08-11 04:59:16 +02:00
Marcel Holtmann 6371b5d48c build: Add ell/base64.[ch] and ell/cipher-private.h 2015-08-11 04:58:51 +02:00
Denis Kenzior d9b2d8151a nlmon: Add basic WSC pretty-printing capability 2015-07-23 20:49:29 -05:00
Denis Kenzior 7ed96289f8 unit: Add sanity check for WSC iterators 2015-07-15 12:52:46 -05:00
Denis Kenzior 65c8a29370 wsc: Add WSC attribute iterator 2015-07-15 12:52:23 -05:00
Denis Kenzior 0389c60066 wsc: Add initial enum definitions from the spec 2015-07-01 09:46:43 -05:00
Denis Kenzior d3f0bd5e27 network: Add initial network usage tracking 2015-06-18 05:18:26 -05:00
Denis Kenzior fd15212330 build: Add ell/uintset.[ch] 2015-06-08 09:38:52 -05:00
Denis Kenzior 9d7f3030f0 storage: Add initial set of utilities 2015-04-27 07:55:09 -05:00
Marcel Holtmann 4c5a846abb build: Include ell/genl-private.h header 2015-03-21 17:28:34 +01:00
Jukka Rissanen b46f06a9ad agent: Initial agent support
Init, setup and exit functions.
2015-02-27 09:37:32 -06:00
Denis Kenzior 7f9b8117fd eapol: Add utility to find GTK KDEs 2015-02-24 17:11:56 -06:00
Denis Kenzior ad3e0b6bf2 arc4: Remove and move to src/crypto.c 2015-02-18 21:11:37 -06:00
Denis Kenzior b3e617838d aes: Remove and move to src/crypto.c 2015-02-18 21:02:09 -06:00
Denis Kenzior 260ef5bb9d md5: Remove and move to src/crypto.c 2015-02-18 20:56:18 -06:00
Denis Kenzior 02d101e3d7 sha256: Remove and move to src/crypto.c 2015-02-18 20:45:52 -06:00
Denis Kenzior 88d4b36663 build: Add arc4.[ch] to test-eapol sources 2015-02-17 16:54:15 -06:00
Denis Kenzior ce473bb9d4 build: Add arc4.[ch] to iwmon sources 2015-02-17 16:53:37 -06:00
Denis Kenzior f641fbffb0 unit: Add test-arc4 and populate arc4_skip tests 2015-02-17 16:53:15 -06:00
Denis Kenzior dd56283b11 arc4: Add arc4_skip 2015-02-17 16:53:15 -06:00
Denis Kenzior 6916554918 build: Add aes.[ch] to iwmon 2015-02-13 14:57:40 -06:00
Denis Kenzior 4bee529813 build: Add aes.[ch] to unit/test-eapol 2015-02-13 14:55:46 -06:00
Marcel Holtmann 295ca9cd64 build: Add missing.h from ell 2015-02-11 22:09:18 +01:00
Marcel Holtmann f1f75acdd6 build: Add random.[ch] from ell 2015-02-10 20:45:12 +01:00
Denis Kenzior 735eba83e1 build: Add cipher.[ch] from ell 2015-02-09 09:42:43 -06:00
Jukka Rissanen f7efdeb5e2 unit: Add checking of SSID security settings 2015-01-28 14:15:14 -06:00
Tomasz Bursztyka 9e3cc8bf42 monitor: Print (de)authentication frame info
This patch adds decoding and printing of information contained in
authentication and de-authentication management frames.
2015-01-22 12:24:20 -06:00
Jukka Rissanen 7ec9c468f5 wiphy: Express SSID as an array of chars
Handle SSIDs as if they would contain up to 32 octets of opaque data.
2015-01-16 10:54:28 -06:00
Jukka Rissanen 35d0c519d7 scan: Refactor scan start details to scan.c
Move the implementation details of triggering wifi scans over netlink
to scan.c from wiphy.c.  No functionality is changed by this commit.
2015-01-12 23:09:31 -06:00
Denis Kenzior 096165d142 eapol: Add eapol_calculate_mic 2014-12-27 23:04:14 -06:00
Denis Kenzior 7be2fe7cc8 unit: Add MIC calculation test 2014-12-27 22:34:40 -06:00
Denis Kenzior d10c4ec9da build: Compile right files 2014-12-27 22:34:40 -06:00
Marcel Holtmann 19fa80cb11 unit: Add NIST examples for AES-CMAC hashing function 2014-12-27 23:21:41 +01:00
Marcel Holtmann 1ee81e5854 core: Add support for AES-CMAC hashing function 2014-12-27 23:21:10 +01:00
Marcel Holtmann 1d137ffba0 unit: Add test cases for hmac_md5, hmac_sha1 and hmac_256 functions 2014-12-27 07:02:13 +01:00
Marcel Holtmann 872c0e803a core: Add support for HMAC SHA256 helper function 2014-12-27 06:58:28 +01:00
Marcel Holtmann b615a6f4e0 core: Add support for HMAC MD5 helper function 2014-12-27 06:44:04 +01:00
Patrik Flykt e67d919048 unit: Create unit test for SSID UTF8 pretty-printing
Write a set of tests that check correct and incorrect UTF8 sequences
at the beginning, middle and end of a byte array. Also verify an all
zeros (hidden) SSID of varying length.
2014-12-19 12:31:03 -06:00
Denis Kenzior 89d0df7d1a unit: Add initial unit test for EAPoL 2014-12-18 18:11:12 -06:00
Denis Kenzior 2cc842a302 eapol: Add beginnings of EAPoL utilities 2014-12-18 18:10:10 -06:00
Patrik Flykt bf25abf38d util: Add SSID to UTF8 pretty-print function
Use a static buffer for converting an SSID to an approximate string in
UTF8. Replace each char that is not UTF8 compatible with the UTF8
replacement symbol.
2014-12-18 11:06:48 -06:00
Denis Kenzior 754264fe6a unit: Add basic mpdu unit test 2014-12-17 16:22:39 -06:00
Tomasz Bursztyka 805619fc9d core: Add the preliminary logic to parse 802.11 MPDUs
It currently focuses on parsing management frames, and specifically its
authentication and deauthentication frames.
2014-12-16 10:53:20 -06:00
Denis Kenzior 9e8654976d unit: Add unit/test-crypto test
And move the PSK generation from passphrase unit tests there
2014-11-14 21:41:59 -06:00
Denis Kenzior d87d7d469f crypto: Add passphrase generation utility 2014-11-14 21:41:28 -06:00
Denis Kenzior e51cac7f74 wiphy: Fix uninitialized var warnings 2014-10-30 00:26:49 -05:00
Denis Kenzior 09c29ba3e2 manager: Add manager skeleton 2014-10-06 22:13:40 -05:00
Denis Kenzior 429ea08202 dbus: Add basic D-Bus plumbing 2014-10-06 22:13:37 -05:00
Marcel Holtmann 49f2d90a44 build: Adjust ELL source list for building with hwdb support 2014-08-16 00:55:26 +02:00
Marcel Holtmann 8cdc43f540 build: Check for a2x binary and use its full path if found 2014-08-15 21:10:58 +02:00
Marcel Holtmann 4a84a19b28 build: Fix build issue with ELL and hashing function for bloom filters 2014-08-15 21:04:04 +02:00
Marcel Holtmann c50d624e55 monitor: Decode information elements binary into individual tags 2014-08-10 00:14:29 -07:00
Marcel Holtmann 9635f317c0 monitor: Add support for builtin pager functionality 2014-08-09 19:29:48 -07:00
Marcel Holtmann fda0593b44 build: Add framework for handling manpages in AsciiDoc format 2014-08-08 21:48:53 -07:00
Marcel Holtmann 2d75ab55e7 tools: Add simple utility for interacting with mac80221_hwsim 2014-08-08 15:40:43 -07:00
Marcel Holtmann d0068dcf4c monitor: Add support for reading traces from PCAP files 2014-08-05 22:40:43 +02:00
Marcel Holtmann db60e4d48f monitor: Add initial version of iwmon utitlity 2014-08-03 06:03:53 +02:00
Marcel Holtmann 999ba12f31 core: Add skeleton for nl80211 setup 2014-07-29 21:25:01 +02:00
Jukka Rissanen e12bdd02bd unit: Add information element parser unit test cases 2014-07-15 19:18:08 -05:00
Jukka Rissanen 458ac1aba4 ie: Simple informational element parser
The parsing API goes through the byte stream and parses the
TLV (Type, Length and Value) values and avoids data copying.
2014-07-15 19:18:08 -05:00
Jukka Rissanen eedadd860b ie: Add information element types
IE types are from IEEE Std 802.11 chapter 8.4.2
2014-07-15 15:45:03 -05:00
Marcel Holtmann 37cba460a8 core: Add tracking of network interfaces via RTNL 2014-06-21 13:41:40 +02:00
Marcel Holtmann c1bc53ff4a build: Adjust for building with Generic Netlink from ELL 2014-06-20 13:12:26 +02:00
Marcel Holtmann ad6302830d build: Adjust for including netlink private header from ELL 2014-06-20 11:51:38 +02:00
Marcel Holtmann 5b0f239d84 build: Adjust source files for internal ELL compilation 2014-05-22 18:48:11 -07:00
Marcel Holtmann d0594bb878 build: Fix issue with wrongly linked ELL headers 2014-05-20 21:52:54 -07:00
Marcel Holtmann 0dbb04b93f client: Lookup the private daemon bus 2014-05-20 21:45:03 -07:00
Marcel Holtmann bf7c041b47 core: Add support for creating private bus 2014-05-20 21:44:13 -07:00
Marcel Holtmann 902fda77a6 build: Add copy of kernel kdbus.h public header 2014-05-20 19:54:16 -07:00
Marcel Holtmann abf1eb9494 build: Move nl80211.h public header to separate directory 2014-05-20 19:51:36 -07:00
Marcel Holtmann f70932750e build: Add extra source files from ELL 2014-05-12 12:07:42 -07:00
Marcel Holtmann 6368a3dcbe build: Clean unit test binaries during distribution check 2014-05-11 19:27:23 -07:00
Marcel Holtmann b0cb247d23 build: Add copy of kernel nl80211.h public header 2014-05-11 18:08:33 -07:00
Marcel Holtmann 9b07eb2c48 build: Do not build unit tests without maintainer mode 2014-05-11 16:18:45 -07:00
Marcel Holtmann 2286890184 unit: Add SHA-1 versions of PBKDF2 and PRF test cases 2014-05-11 11:57:04 -07:00
Marcel Holtmann 422fb5ad08 core: Add SHA-1 versions of PBKDF2 and PRF functions 2014-05-11 11:43:42 -07:00
Marcel Holtmann 9bb38e6c55 client: Add skeleton for daemon client utility 2014-05-11 11:01:11 -07:00
Marcel Holtmann 050539e2e3 core: Add skeleton for main daemon 2014-05-11 11:01:11 -07:00
Marcel Holtmann 4639adb1e1 build: Clean out build-aux and ell directories 2014-05-11 11:01:11 -07:00
Marcel Holtmann 6748514804 build: Add support for internal ELL compilation 2014-05-11 11:01:11 -07:00
Marcel Holtmann 344a33268c Initial revision 2014-04-25 17:57:48 -07:00