Commit Graph

1020 Commits

Author SHA1 Message Date
Denis Kenzior 619448cacc eapol: Sanity check wpa_key_id field a bit more 2015-05-05 22:26:11 -05:00
Denis Kenzior 9793054a0a eapol: Update TODO comment 2015-05-05 22:19:45 -05:00
Denis Kenzior a38b6f1f9a eapol: Add missing newline 2015-05-05 22:18:35 -05:00
Denis Kenzior 2f13c5617b unit: Add call to eapol_verify_gtk_2_of_2 2015-05-05 22:08:06 -05:00
Denis Kenzior 8f3fd6e47d eapol: Add eapol_verify_gtk_2_of_2 2015-05-05 22:04:21 -05:00
Denis Kenzior 2ba7867e9f eapol: Drop unneded check in verify_ptk_4_of_4
Step 4 is always sent without encrypted Key Data according to Section
11.6.6.5.  In the case of WPA, Encrypted Key Data field is reserved, and
should always be 0.  Thus it is safe to drop the !is_wpa condition.
2015-05-05 22:01:53 -05:00
Denis Kenzior bb17f5df94 eapol: Add sanity checking of the install bit 2015-05-05 21:50:35 -05:00
Andrew Zaborowski 30c277f8d6 unit: GTK Handshake tests. 2015-05-05 21:39:19 -05:00
Andrew Zaborowski eae718091d unit: Update to new eapol API 2015-05-05 21:36:52 -05:00
Andrew Zaborowski bb2be272ae unit: Assert eapol_key_validate is valid first
Before running eapol_verify_ptk_2_of_4, assert that eapol_key_validate
did not return NULL.
2015-05-05 21:35:02 -05:00
Andrew Zaborowski 31284bf86b wiphy: If handshake failed check connect_pending
When handling repeated 4-Way Handshakes from the AP there will be no
.Connect() call pending so we need to check that netdev->connect_pending
is non-NULL.  It may be a good idea to check this even during initial
handshake.
2015-05-05 21:22:41 -05:00
Andrew Zaborowski 0ea28ba5ad eapol: Generate new snonce on new 4-Way Handshake
Make sure that we handle PTK rekeying.
2015-05-05 21:22:38 -05:00
Andrew Zaborowski 1d0afbc44c wiphy: Basic WPA support
Legacy WPA will be used with APs that advertise WPA support and
no WPA2 (RSN).  TKIP is not yet supported though, so only CCMP
will work.
2015-05-05 21:22:34 -05:00
Andrew Zaborowski a7846aee85 eapol: WPA-specific handshake quirks
To support WPA allow the legacy EAPOL-Key frame formats.
2015-05-05 21:22:31 -05:00
Andrew Zaborowski a8c0f20510 eapol: Handle the Group Key Handshake 2015-05-05 21:10:07 -05:00
Denis Kenzior 1795105c60 wiphy: Move scan result parsing to scan.c 2015-05-01 17:27:42 -05:00
Denis Kenzior bf43acfd93 scan: Add scan_bss_free 2015-04-30 22:21:31 -05:00
Denis Kenzior 73a26c51b6 scan: Move struct bss to scan_bss in scan.h 2015-04-30 21:38:27 -05:00
Denis Kenzior 348a90ada3 wiphy: Tweak errors returned by Disconnect() 2015-04-30 18:42:55 -05:00
Denis Kenzior 0286dfadd4 wiphy: Handle beacon loss events 2015-04-30 18:42:44 -05:00
Denis Kenzior d127e91ff8 dbus: Add dbus_error_not_connected 2015-04-30 18:41:53 -05:00
Denis Kenzior 778da5b8c4 TODO: Add iwmon group printing task 2015-04-30 18:04:56 -05:00
Denis Kenzior 7744c38ec1 monitor: Add Beacon Loss Event entry 2015-04-30 17:47:23 -05:00
Denis Kenzior efe795b72d wiphy: Fix memory leak
When disconnect is triggered locally, we do not clean up properly.

==4336==    at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4336==    by 0x40CEED: l_malloc (util.c:62)
==4336==    by 0x40F46A: l_settings_new (settings.c:82)
==4336==    by 0x40CE2E: storage_network_open (storage.c:180)
==4336==    by 0x40498E: network_connect_psk (wiphy.c:307)
==4336==    by 0x40498E: network_connect (wiphy.c:359)
==4336==    by 0x41D7EE: _dbus_object_tree_dispatch (dbus-service.c:845)
==4336==    by 0x416A16: message_read_handler (dbus.c:297)
==4336==    by 0x411984: io_callback (io.c:120)
==4336==    by 0x410FC2: l_main_run (main.c:346)
==4336==    by 0x40253E: main (main.c:171)
2015-04-30 17:01:20 -05:00
Denis Kenzior 341b69ce7c wiphy: Fix memory leak
This happens when connecting / disconnecting successfully multiple
times.

==4336== 64 bytes in 2 blocks are definitely lost in loss record 9 of 11
==4336==    at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4336==    by 0x40CEED: l_malloc (util.c:62)
==4336==    by 0x40D6D9: l_util_from_hexstring (util.c:493)
==4336==    by 0x4049C6: network_connect_psk (wiphy.c:315)
==4336==    by 0x4049C6: network_connect (wiphy.c:359)
==4336==    by 0x41D7EE: _dbus_object_tree_dispatch (dbus-service.c:845)
==4336==    by 0x416A16: message_read_handler (dbus.c:297)
==4336==    by 0x411984: io_callback (io.c:120)
==4336==    by 0x410FC2: l_main_run (main.c:346)
==4336==    by 0x40253E: main (main.c:171)
2015-04-30 17:00:38 -05:00
Denis Kenzior 5137d8b855 wiphy: Ensure connected_bss is always valid 2015-04-30 16:21:56 -05:00
Denis Kenzior 15620721b0 wiphy: Store connected_network on netdev object
Instead of storing the network pointer for each BSS, store it on the
netdev object.  This saves space inside struct bss and makes longer term
refactoring simpler.
2015-04-30 16:21:56 -05:00
Denis Kenzior 67a895c95f wiphy: Simplify code that removes lost networks
The current code is quite complicated and can be made simpler by using
the newly introduced l_hashmap_foreach_remove function.
2015-04-30 16:21:56 -05:00
Denis Kenzior 4c11845198 wiphy: Fix memory leak
==4249== 231 (32 direct, 199 indirect) bytes in 1 blocks are definitely
lost in loss record 10 of 10
==4249==    at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4249==    by 0x40CF5D: l_malloc (util.c:62)
==4249==    by 0x40F4DA: l_settings_new (settings.c:82)
==4249==    by 0x40CE9E: storage_network_open (storage.c:180)
==4249==    by 0x40499E: network_connect_psk (wiphy.c:307)
==4249==    by 0x40499E: network_connect (wiphy.c:359)
==4249==    by 0x41D85E: _dbus_object_tree_dispatch (dbus-service.c:845)
==4249==    by 0x416A86: message_read_handler (dbus.c:297)
==4249==    by 0x4119F4: io_callback (io.c:120)
==4249==    by 0x411032: l_main_run (main.c:346)
==4249==    by 0x40253E: main (main.c:171)
2015-04-30 16:21:56 -05:00
Denis Kenzior 251f5904d4 TODO: Add tasks dealing with esoteric ciphers 2015-04-29 12:13:16 -05:00
Andrew Zaborowski 169aa04570 eapol: Free eapol_sm even if callback is null
If deauthenticate callback was not provided, the state machine was not
being freed / removed.
2015-04-29 08:54:53 -05:00
Andrew Zaborowski 4a27563b5a eapol: Fix key-IV check in EAPOL-Key verification
The comment correctly states the IV is 0 for version 2, but the
check was actually for version 1.
2015-04-29 08:54:47 -05:00
Denis Kenzior 93aaf21459 wiphy: Add initial preference management
This patch saves off the PSK generated based on the passphrase provided
by the agent/user.  The PSK is saved only if the connection is
successful.

Subsequent connection attempts to the known AP use the PSK saved on the
filesystem (default /var/lib/iwd/<ssid>.psk).  If the connection fails,
the agent will again be asked for the passphrase on the next attempt.
2015-04-27 07:55:13 -05:00
Denis Kenzior bd3856e178 bootstrap-configure: Set localstatedir 2015-04-27 07:55:13 -05:00
Denis Kenzior 9d7f3030f0 storage: Add initial set of utilities 2015-04-27 07:55:09 -05:00
Denis Kenzior 85b5ab7560 TODO: Update HW capabilities task & take ownership 2015-04-20 13:53:00 -05:00
Denis Kenzior 267a407a88 TODO: Reset Owner 2015-04-20 13:52:17 -05:00
Denis Kenzior a28f3fa3ec wiphy: Parse ciphers supported by the phy 2015-04-17 13:02:32 -05:00
Denis Kenzior 431cadb7aa wiphy: Optimize storage 2015-04-17 12:49:56 -05:00
Denis Kenzior c8fc79c611 monitor: Print AKM suites 2015-04-17 12:49:54 -05:00
Denis Kenzior 835ae605d9 monitor: Make sure to print attribute type 2015-04-17 12:49:51 -05:00
Denis Kenzior be0cdde4e0 TODO: Update Disconnect() task 2015-04-17 11:19:24 -05:00
Andrzej Zaborowski 92841b4976 hwsim: Don't try l_genl_attr_next if _attr_init fails.
This was causing a segfault.
2015-04-17 10:50:56 -05:00
Andrzej Zaborowski 0a6b6d0ca5 hwsim: Fix #define 2015-04-17 10:50:39 -05:00
Andrzej Zaborowski f424559af5 iwd: Add -K to getopt optstring to fix short option. 2015-04-17 10:45:00 -05:00
Denis Kenzior 300b4b1e7a AUTHORS: Mention Andrew's contributions 2015-04-17 10:40:31 -05:00
Andrzej Zaborowski c22d22f5e5 eapol: Remove eapol_sm's from queue when destroying.
Prevents a double-free.
2015-04-17 10:40:10 -05:00
Denis Kenzior 90c922f2ca monitor: Fix buffer overrun
When printing New Address events, the extra_str buffer is overrun,
resulting in weird stuff happening.

> RTNL: Error (0x02) len 20				> 5.252075
   Flags: 0 (0x000)
   Sequence number: 189 (0x000000bd)
   Port ID: 2116
    ACK: 0
==4080== Invalid read of size 1
==4080==    at 0x4E8000E: vfprintf (in /lib64/libc-2.20.so)
==4080==    by 0x4EA8A24: vsnprintf (in /lib64/libc-2.20.so)
==4080==    by 0x4E86011: snprintf (in /lib64/libc-2.20.so)
==4080==    by 0x403B64: print_packet (nlmon.c:238)
==4080==    by 0x40C8FD: print_nlmsghdr (nlmon.c:3197)
==4080==    by 0x40CD9E: print_rtnl_msg (nlmon.c:3266)
==4080==    by 0x40CE4F: nlmon_print_rtnl (nlmon.c:3298)
==4080==    by 0x40D1CD: nlmon_receive (nlmon.c:3390)
2015-04-12 12:25:55 -05:00
Denis Kenzior bc98bc9ecb eapol: Add functions to set own/ap WPA IEs
If EAPoL is being run for in WPA mode, then instead of RSN elements, the
WPA elements are required.
2015-04-10 23:46:58 -05:00
Denis Kenzior c9f1090380 wiphy: If connection failed, reset the PSK
This allows us to retry the agent for the correct passphrase
2015-04-08 15:07:02 -05:00