Denis Kenzior
b067c08cfe
wiphy: Remove unneeded initialization
2015-02-26 10:03:51 -06:00
Denis Kenzior
e69b21ccdf
wiphy: Don't store rsne unless needed
...
Open networks do not contain a RSN element, so storing a 256 byte buffer
was too expensive.
This patch also has the side-effect of fixing detection of Open
Networks. Prior to this, if the scan results did not contain an RSN IE,
the 'rsne' variable would be set to all zeros. scan_get_ssid_security
would then be called, but instead of a NULL struct ie_rsn_info, a
non-null, but zerod out ie_rsn_info would be passed in. This caused the
code to work, but for the wrong reasons.
2015-02-25 21:13:24 -06:00
Denis Kenzior
458ad2af77
wiphy: Set authentication parameters for WPA2
2015-02-25 20:56:46 -06:00
Ravi kumar Veeramally
19957f1162
wiphy: Remove extra white space
2015-02-25 11:34:42 -06:00
Ravi kumar Veeramally
46cdef5f7b
wiphy: Fix deauthenticate event from AP
...
If AP issued deauthenticate event, netdev->connect_pending is null.
iwd crashes without this check.
2015-02-25 11:23:46 -06:00
Denis Kenzior
97a92a9d02
wiphy: Don't connect to networks we don't support
2015-02-24 23:19:27 -06:00
Denis Kenzior
d77238d5fd
dbus: Add not supported error
2015-02-24 23:19:16 -06:00
Denis Kenzior
41e82fba77
eapol: Optimize out rsne sizes
...
The RSN IEs contain the sizes of the element inside the data, so it is
not necessary to carry a dedicated size element.
2015-02-24 23:15:20 -06:00
Denis Kenzior
975953dd89
wiphy: Store RSN IE inside struct bss
2015-02-24 23:11:48 -06:00
Denis Kenzior
c9bab96237
wiphy: Store ssid in static buffer
...
Instead of mallocing the ssid buffer, use a static array. This removes an
extra couple of malloc/free operations and should result in less memory
utilization on average.
2015-02-24 23:03:15 -06:00
Denis Kenzior
9760bcb5c3
eapol: Add checking that first RSNE is as expected
2015-02-24 22:09:35 -06:00
Denis Kenzior
7f9b8117fd
eapol: Add utility to find GTK KDEs
2015-02-24 17:11:56 -06:00
Denis Kenzior
b1ca41b476
ie: Add length/data/tag inline getters
2015-02-24 17:11:27 -06:00
Denis Kenzior
bfdd4a2328
eapol: Pass decrypted data len
...
to eapol_handle_ptk_3_of_4
2015-02-24 16:03:42 -06:00
Denis Kenzior
c71bfcbb7c
eapol: Decryption of packets changes affects size
2015-02-24 15:59:36 -06:00
Jukka Rissanen
0403be7fee
dbus: Add more error reporting functions
...
Report error for
- invalid dbus arguments
- if object already exists
- if object is not found
2015-02-24 11:19:49 -06:00
Denis Kenzior
f997816a7f
eapol: Handle Step 2 & 4 of the 4-way Handshake
2015-02-24 11:14:11 -06:00
Denis Kenzior
da1180841d
eapol: Handle Step 1 & 2 of 4-way Handshake
2015-02-24 11:13:57 -06:00
Denis Kenzior
9e6cbc5b60
eapol: Add __eapol_rx_packet
2015-02-24 11:13:19 -06:00
Denis Kenzior
4a540526fe
eapol: Add eapol_start
2015-02-24 11:12:22 -06:00
Denis Kenzior
2ee8b8e56e
eapol: Add __eapol_set_protocol_version
2015-02-24 11:11:40 -06:00
Denis Kenzior
87dc9543b2
eapol: Add tx_packet_func and setter
2015-02-24 11:10:42 -06:00
Denis Kenzior
54fa4f29c7
eapol: Add get_nonce func and setter
2015-02-24 11:09:42 -06:00
Denis Kenzior
79bf677e71
eapol: Add eapol_init and eapol_exit
2015-02-24 11:08:03 -06:00
Denis Kenzior
2e1e484f95
eapol: Add eapol_sm_set_own_rsn
2015-02-24 10:58:43 -06:00
Denis Kenzior
08b2980fd6
eapol: Add eapol_sm_set_ap_rsn
2015-02-24 10:58:03 -06:00
Denis Kenzior
f85c860cc3
eapol: Add eapol_sm_set_pmk
2015-02-24 10:57:25 -06:00
Denis Kenzior
ff92e5c5e1
eapol: Add eapol_sm_set_aa_address
2015-02-24 10:56:39 -06:00
Denis Kenzior
122dfe7025
eapol: Add eapol_sm_set_sta_address
2015-02-24 10:55:50 -06:00
Denis Kenzior
2866fbbf91
eapol: Introduce eapol_sm
2015-02-24 10:54:23 -06:00
Denis Kenzior
bf42e3e7a3
eapol: snonce not needed in create_ptk_4_of_4
2015-02-24 10:52:12 -06:00
Denis Kenzior
6ba57c9fa8
eapol: Fix eapol_verify_mic
...
The calculation was using an invalid length
2015-02-24 10:42:20 -06:00
Denis Kenzior
a0bf16c5ca
eapol: Refactor verification functions
...
Use a macro for common checks. Assume that the validate step will be
done separately.
2015-02-23 15:39:26 -06:00
Ravi kumar Veeramally
8f5ca9dc73
wiphy: Implement initial disconnect functionality
...
Adding initial network disconnection implementation. Sends
deauthentication and reply through dbus depends upon its response.
2015-02-20 09:47:50 -06:00
Jukka Rissanen
d6fbb2dcac
dbus: Add agent interface definition
2015-02-19 10:14:47 -06:00
Denis Kenzior
6a4b75cf8d
eapol: Add eapol_verify_mic
2015-02-18 21:13:09 -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
89e4538945
eapol: Rework eapol_decrypt_key_data
...
802.11 uses AES Key Wrap and RC4 with the first 256 bytes skipped. The
IV is also initialized into the RC4 key.
2015-02-17 17:39:47 -06:00
Denis Kenzior
dd56283b11
arc4: Add arc4_skip
2015-02-17 16:53:15 -06:00
Denis Kenzior
6e6783fc11
aes: Add aes_unwrap
2015-02-17 16:53:15 -06:00
Denis Kenzior
cd08cdfd9f
eapol: Add eapol_decrypt_key_data
2015-02-13 20:37:17 -06:00
Denis Kenzior
85e54c66fe
eapol: Add eapol_verify_ptk_4_of_4
2015-02-13 18:38:10 -06:00
Ravi kumar Veeramally
f63b8b2ec9
wiphy: Fix open network connection
...
Authenticate event on wiphy mlme notification does not provide
enough information on which network/bss authentication command
was sent. BSS and network information is required to send associate
command to AP. So cache bss pointer in netdev struct and retrieve
on wiphy mlme notifications.
2015-02-13 17:04:31 -06:00
Ravi kumar Veeramally
b1af2b6fe5
wiphy: Handle scan pending properly in netdev_free
...
If the device scan call reply is pending still on netdev_free call,
reply operation aborted.
2015-02-13 17:01:35 -06:00
Ravi kumar Veeramally
7f56f561c6
dbus: Provide dbus_error aborted and not_available
2015-02-13 17:01:06 -06:00
Denis Kenzior
0570940cd7
eapol: Add eapol_verify_ptk_3_of_4
2015-02-13 16:36:52 -06:00
Denis Kenzior
f9515fbe97
eapol: Add additional sanity checks for step 2
2015-02-13 16:36:24 -06:00
Denis Kenzior
9b746cd3c1
eapol: Update comment
2015-02-13 16:12:43 -06:00
Denis Kenzior
54d4090542
eapol: Tweak API
...
We need to extract quite a bit of information from the EAPoL frames, so
tweak the API to just verify that a frame is of a particular type
2015-02-13 16:08:45 -06:00
Denis Kenzior
7ffe465ab2
sha256: Remove unneeded resets
2015-02-13 15:02:16 -06:00
Denis Kenzior
0abbde0ebb
sha1: Remove unneeded resets
2015-02-13 15:02:04 -06:00
Denis Kenzior
87f775475a
eapol: Handle cmac_aes in eapol_calcuate_mic
2015-02-13 14:53:16 -06:00
Denis Kenzior
63aae17aa8
eapol: Take out unneeded cast
2015-02-13 14:52:24 -06:00
Denis Kenzior
df8d60d7e1
eapol: Add eapol_create_ptk_4_of_4
2015-02-13 14:10:28 -06:00
Denis Kenzior
005fc0c0d1
eapol: Handle key_replay_counter as a uint64_t
2015-02-13 13:54:50 -06:00
Denis Kenzior
fc60014d47
ie: Add ie_build_rsne
2015-02-03 21:45:14 -06:00
Denis Kenzior
51dfb02ade
ie: Add ie_build_akm_suite
2015-02-03 21:44:56 -06:00
Denis Kenzior
5653baa0b9
ie: Add ie_build_cipher_suite
2015-02-03 21:44:35 -06:00
Denis Kenzior
7f5bb70422
ie: Move ieee_oui to toplevel
2015-02-03 21:11:26 -06:00
Jukka Rissanen
3d251562f8
dbus: Remove useless info message print
...
No need for this info any more.
2015-02-03 11:34:16 -06:00
Jukka Rissanen
2fad305d3c
dbus: Remove obsolete debug print
...
This print is quite useless.
2015-02-03 11:34:08 -06:00
Jukka Rissanen
6ddd2b894d
scan: SSID security check was missing values
...
Refactoring SSID security check function to work properly so that
it can differentiate AP security setting correctly.
2015-02-02 15:09:50 -06:00
Denis Kenzior
26010b8459
wiphy: Optimize scanning data structures
...
Instead of storing multiple copies of the same BSS (one hanging off the
netdev object and one hanging off the network object), we instead store
the BSS list only on the netdev object.
The network object gets a pointer to the BSS structure on the netdev
list. As a side effect, the BSS list is always sorted properly.
2015-01-28 21:23:17 -06:00
Denis Kenzior
6f3e4ef594
wiphy: Restructure lost_bss() function
...
- Remove unneeded nesting
- Rework logic slightly
2015-01-28 21:23:17 -06:00
Jukka Rissanen
4c5498d4cd
wiphy: Remove those networks that do not have any BSS
...
If all the BSSs having same SSID and security have disappeared
from network, then the network can be removed also.
2015-01-28 21:23:16 -06:00
Denis Kenzior
c283557215
wiphy: Remove unneeded brackets
2015-01-28 21:23:16 -06:00
Denis Kenzior
1894b75a18
wiphy: Remove unneeded nesting
2015-01-28 21:23:16 -06:00
Denis Kenzior
0303a095aa
wiphy: Remove unneeded variable
...
Instead of always mallocing space for the ssid array, and then freeing
it in most circumstances, do the opposite. Only allocate the array once
it is actually needed. This has the side effect of removing an unneeded
variable and making the code simpler.
2015-01-28 21:23:16 -06:00
Denis Kenzior
9f042ff1b8
wiphy: Ignore BSSes with no SSID
2015-01-28 21:23:16 -06:00
Denis Kenzior
b342f819f9
wiphy: Make const correct
2015-01-28 21:23:16 -06:00
Jukka Rissanen
d27c947209
wiphy: expose network objects instead of BSSes
...
The idea here is that network object will contain a list of BSS
that have the same SSID and security setting. From user point of view,
we will connect to a certain SSID instead of connecting directly to
a BSS. We pick the best BSS automatically from the BSS list when
connecting to a SSID.
2015-01-28 21:23:16 -06:00
Denis Kenzior
ce3ffd732f
scan: Make const correct
2015-01-28 21:23:16 -06:00
Jukka Rissanen
8f73bc825f
scan: Add utility to categorize BSS security type
...
Utility function gets the RSNE information element and
figures out whether the SSID is Open, WEP, PSK or 802.1X
network.
2015-01-28 12:34:01 -06:00
Jukka Rissanen
27b45f926b
ie: Add capability enum
2015-01-28 12:33:47 -06:00
Jukka Rissanen
9e655106fa
wiphy: MLME warning message text incorrect
...
MLME notify function prints error if wiphy or netdev is missing.
The error text in this case talks about scan notification instead
of more proper MLME notification.
2015-01-28 11:49:03 -06:00
Jukka Rissanen
bd6189aef0
main: Remove obsolete -S option
...
As there is no handler for -S option, we can remove it.
2015-01-26 21:53:55 -06:00
Jukka Rissanen
9c380ad95c
main: DBus debug option -B was missing
...
It was not possible to activate DBus debugging.
2015-01-26 21:53:30 -06:00
Denis Kenzior
5247695d56
mpdu: fix transaction_sequence byte-ordering
...
transaction_sequence was not being considered in host CPU byte order
2015-01-22 12:41:10 -06:00
Denis Kenzior
e60b814dc8
mpdu: algorithm was not swapped to host byte-order
2015-01-22 12:41:10 -06:00
Tomasz Bursztyka
8f946c0cdc
eapol: Change function signatures
...
The frame which comes in is an EAPoL-key frame, thus changing the name
accordingly (as well as the parameter names).
Also, returning the cast pointer instead of a boolean is easier to
use as there won't be any need to perform the cast ourselves afterward
2015-01-22 12:18:17 -06:00
Tomasz Bursztyka
e02f02fa69
mpdu: Change the validation function signature
...
What comes in is a frame, and let's set it to uint8_t pointer, which is
semantically better than unsigned char.
Also, returning the cast pointer instead of a boolean is easier to
use as there won't be any need to perform the cast ourselves afterward
2015-01-22 12:14:47 -06:00
Tomasz Bursztyka
55d3283aeb
mpdu: Add member 'ies' for mpdu_deauthentication
...
Even if this will never really be useful, it's better this way rather
than having a todo comment.
2015-01-21 14:37:27 -06:00
Tomasz Bursztyka
3d5fe2fddd
mpdu: Validate beacon mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame
2015-01-21 14:31:26 -06:00
Tomasz Bursztyka
9ce1745ede
mpdu: Validate timing advertisement mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame
2015-01-21 14:30:51 -06:00
Tomasz Bursztyka
8078f18c35
mpdu: Validate probe response mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame
2015-01-21 14:30:12 -06:00
Tomasz Bursztyka
cc1cc64843
mpdu: Validate probe request mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame
2015-01-21 14:29:39 -06:00
Tomasz Bursztyka
142a6a8a0c
mpdu: Validate reassociation response mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame
2015-01-21 14:29:05 -06:00
Tomasz Bursztyka
efcaefc5dd
mpdu: Validate reassociation request mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame.
2015-01-21 14:28:21 -06:00
Tomasz Bursztyka
8353ac445d
mpdu: Validate association response mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame.
2015-01-21 14:28:14 -06:00
Tomasz Bursztyka
5c9f1db01f
mpdu: Validate association request mpdu subtype
...
We do not currently validate the IEs that are following until the end
of the frame.
2015-01-21 14:28:07 -06:00
Tomasz Bursztyka
d1c29daa24
mpdu: Validate disassociation mpdu subtype
...
These own a reason code which is currently the only interesting
information to handle. Let's skip the vendor specific ones for now.
2015-01-21 14:27:59 -06:00
Tomasz Bursztyka
e106033fce
mpdu: Validate ATIM mpdu subtype
...
ATIM management frames have an empty body.
2015-01-21 14:27:38 -06:00
Denis Kenzior
c3aef948db
mpdu: Update offset for authentication frames
...
Offset was not updated properly when validating authentication frames
2015-01-21 14:25:07 -06:00
Denis Kenzior
8a4e135bc8
ie: Add parsine of Group Management Cipher field
2015-01-20 00:30:54 -06:00
Denis Kenzior
e5574d031d
ie: Parse PMKIDs in RSN IE
2015-01-19 23:26:45 -06:00
Jukka Rissanen
275d067123
wiphy: Use l_memdup instead of l_malloc and memcpy
...
Converting l_malloc() and memcpy() function pairs to use new
l_memdup() function.
2015-01-16 10:54:54 -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
Denis Kenzior
02170b200f
ie: Decode RSNE Capabilities field
2015-01-15 23:59:19 -06:00
Denis Kenzior
e90ca652fd
util: Add util_is_bit_set
2015-01-15 23:59:18 -06:00
Denis Kenzior
56f1ccf7f2
util: Add util_bit_field
2015-01-15 23:59:18 -06:00
Denis Kenzior
2be20e6644
ie: Add RSNE parser that works on raw data
2015-01-15 23:59:18 -06:00
Denis Kenzior
2d8f1cca0b
ie: Add initial parser for RSN Elements
...
As found in 802.11 Section 8.4.2.27. Currently the parser does not
handle the Capabilities, Group Management Cipher Suite or PMKID related
fields.
2015-01-15 23:59:18 -06:00
Denis Kenzior
2b7432bddb
ie: Add utility to parse pairwise cipher suites
...
This utility works by validating values that make sense for pairwise
ciphers.
2015-01-15 23:59:18 -06:00
Denis Kenzior
4216cf793b
ie: Add utility to parse group cipher suites
...
This utility works by validating values that make sense for group
ciphers.
2015-01-15 23:59:18 -06:00
Denis Kenzior
d8583424e8
ie: Add utility to parse key management suites
2015-01-15 23:59:18 -06:00
Denis Kenzior
20a02eba6a
ie: Add utility to parse RSN cipher suites
2015-01-15 23:59:18 -06:00
Denis Kenzior
c3e9e2fc9b
ie: Add ie_rsn_akm_suite enum
...
Using values from Table 8-101
2015-01-15 23:59:18 -06:00
Denis Kenzior
155a1f169a
ie: Add ie_rsn_cipher_suite enum
...
Using values from Table 8-99
2015-01-15 23:59:18 -06:00
Jukka Rissanen
cb78798857
scan: Refactor scan result fetching to scan.c
...
No functionality changes by this commit.
2015-01-12 23:09:31 -06:00
Jukka Rissanen
f73708e1d7
scan: Refactor scheduled scan code to scan.c
...
Move the implementation details of triggering scheduled wifi scans
over netlink to scan.c from wiphy.c. No functionality is affected
by this commit.
2015-01-12 23:09:31 -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
Marcel Holtmann
78d21c782c
crypto: Use proper form for making a structure packed
2014-12-28 06:50:51 +01:00
Marcel Holtmann
f25b1442ff
core: Fix output buffer length handling of prf_sha1() function
2014-12-28 06:49:39 +01:00
Denis Kenzior
52ee52f467
crypto: Make packed
2014-12-27 23:35:40 -06:00
Marcel Holtmann
016f701a91
core: Fix handling of digest size argument for all HMAC hash functions
2014-12-28 06:33:44 +01:00
Denis Kenzior
096165d142
eapol: Add eapol_calculate_mic
2014-12-27 23:04:14 -06:00
Denis Kenzior
27d25efc0b
eapol: Add eapol_create_ptk_2_of_4
2014-12-27 23:04:12 -06:00
Denis Kenzior
dc3331a98d
eapol: Add eapol_process_ptk_2_of_4
2014-12-27 22:58:22 -06:00
Denis Kenzior
996e32bf1d
eapol: Add eapol_process_ptk_1_of_4
2014-12-27 22:58:22 -06:00
Denis Kenzior
5e7771ef66
crypto: Add crypto_derive_pairwise_ptk
2014-12-27 22:34:39 -06:00
Denis Kenzior
1c4e3bc774
crypto: Make const correct
2014-12-27 22:34:39 -06:00
Denis Kenzior
dab93ef14a
crypto: Update comment
2014-12-27 22:34:39 -06:00
Denis Kenzior
f647e03166
crypto: Add crypto_cipher_tk_bits
2014-12-27 22:34:39 -06:00
Denis Kenzior
07c8876d9e
crypto: Add crypto_cipher_key_len
2014-12-27 22:34:39 -06:00
Denis Kenzior
0693740731
crypto: Add crypto_derive_ptk
2014-12-27 22:34:39 -06:00
Denis Kenzior
da8e10cc5f
eapol: Verify key_descriptor_version
2014-12-27 22:34:39 -06:00
Denis Kenzior
5da6ca89e4
eapol: Add eapol_verify
2014-12-27 22:34:39 -06:00
Marcel Holtmann
1ee81e5854
core: Add support for AES-CMAC hashing function
2014-12-27 23:21:10 +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
Jukka Rissanen
08d31e3b1b
wiphy: Fixes due to nl80211.h changes
2014-12-22 11:48:26 -06:00
Denis Kenzior
7cf4f7b100
eapol: Add a couple of missing fields
2014-12-19 15:45:17 -06:00
Denis Kenzior
e3729cc0f5
eapol: Fix typo
2014-12-19 14:25:57 -06:00
Denis Kenzior
7b6d8b54cd
mpdu: Fix bitfield use on big endian
2014-12-19 12:26:41 -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
b22f93203c
mpdu: Rework to a zero-copy based framework
2014-12-17 17:44:44 -06:00
Denis Kenzior
d7b6a36db8
mpdu: Rework structure definitions
...
The current setup was not endian safe
2014-12-17 16:22:06 -06:00
Denis Kenzior
3ef0ff1e1a
mpdu: Fix invalid read
...
The cast was being done incorrectly resulting in invalid values being
obtained
2014-12-17 16:21:05 -06:00
Denis Kenzior
ca742bb95d
mpdu: Fix style
2014-12-16 16:57:30 -06:00
Denis Kenzior
b0af0177ac
mpdu: Replace for loop with memcpy
2014-12-16 14:26:33 -06:00
Denis Kenzior
61a44dd485
mpdu: Fix style
2014-12-16 14:23:36 -06:00
Denis Kenzior
6a011f0d92
mpdu: Simplify checks
2014-12-16 14:22:13 -06:00
Denis Kenzior
002290998e
mpdu: Add x-ref in comments for struct definitions
2014-12-16 14:21:18 -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
d2218e81c9
dbus: Fix style
2014-12-12 09:52:12 -06:00
Jukka Rissanen
c5b5d4502b
dbus: Add helper to append a byte array
...
Needed when appending SSID into properties.
2014-12-12 09:51:55 -06:00