Commit Graph

627 Commits

Author SHA1 Message Date
Marcel Holtmann 4c5a846abb build: Include ell/genl-private.h header 2015-03-21 17:28:34 +01:00
Denis Kenzior 842eb643eb wiphy: Return an error if agent request fails
If there is no agent registered, then the caller should not be hanging
without a response forever.
2015-03-20 15:42:50 -05:00
Denis Kenzior 141a1831c0 dbus: Add dbus_error_no_agent 2015-03-20 15:42:39 -05:00
Denis Kenzior 709b94587e wiphy: Print an error if PMK generation fails 2015-03-20 15:22:44 -05:00
Denis Kenzior 204964fd8d sha1: Return right away if checksum creation fails
This patch covers pbkdf2_sha1 and prf_sha1
2015-03-20 14:56:27 -05:00
Denis Kenzior 86e7883c74 eapol: Print a message if MIC calculation fails 2015-03-20 14:52:49 -05:00
Denis Kenzior b27c47aa77 sha1: Return right away if l_checksum_new fails 2015-03-20 14:50:57 -05:00
Denis Kenzior d277456852 monitor: Always hexdump the raw PAE frame 2015-03-20 13:48:49 -05:00
Denis Kenzior 9318414f22 monitor: Fix Capabilities Field dump
The capabilities field was not decoded from the appropriate place in the
data file.  This resulted in bogus values being printed.
2015-03-20 13:47:47 -05:00
Denis Kenzior d78883a068 eapol: Add default nonce generator 2015-03-20 12:31:14 -05:00
Denis Kenzior 35e3de9cdf eapol: Add default eapol tx path function 2015-03-20 12:30:56 -05:00
Denis Kenzior 2598a1efed wiphy: call eapol_init and eapol_exit 2015-03-20 12:30:24 -05:00
Denis Kenzior 4c351196a9 wiphy: Print errno if read fails 2015-03-20 12:30:11 -05:00
Denis Kenzior 25af920563 wiphy: Separate out the ell include
To make it clear it is not a system include
2015-03-20 12:29:50 -05:00
Denis Kenzior 656318ed0c eapol: Update eapol_tx_packet_func_t declaration
Use aa and spa instead of aa_addr and sta_addr
2015-03-20 11:43:42 -05:00
Denis Kenzior a2bc325b3b monitor: Fix typo 2015-03-20 11:34:21 -05:00
Patrik Flykt 2129becac8 monitor: Print HT Operation IE
As well as the therein contained MCS field
2015-03-20 11:29:42 -05:00
Marcel Holtmann 2c061e6394 wiphy: Fix compiler warning with sizeof function
CC       src/wiphy.o
src/wiphy.c: In function ‘eapol_read’:
src/wiphy.c:172:24: error: argument to ‘sizeof’ in ‘memset’ call is the same expression as the destination; did you mean to remove the addressof? [-Werror=sizeof-pointer-memaccess]
  memset(&sll, 0, sizeof(&sll));
                        ^
2015-03-20 06:43:54 +01:00
Denis Kenzior 0ee173e23f eapol: Fix PAE socket code
Using SOCK_DGRAM allows us to receive just the frame payload instead
of raw ethernet framing.
2015-03-20 00:28:58 -05:00
Denis Kenzior 96cd2391da wiphy: Start 4-way handshake 2015-03-20 00:27:38 -05:00
Denis Kenzior 2a41fe6dd2 eapol: Add read handler for PAE frames 2015-03-20 00:27:38 -05:00
Denis Kenzior 7835eb8b88 wiphy: Fix style 2015-03-19 23:57:37 -05:00
Jukka Rissanen 24e79280a9 wiphy: DBus reply was sent too early when connecting PSK network
We can give reply to connect DBus call in associating event only
when we are connecting to Open network. For PSK AP, the reply can
only be sent after we have finished 4-way handshaking.
2015-03-19 23:57:37 -05:00
Denis Kenzior b044385cdc unit: Update to the new EAPoL API 2015-03-19 23:57:37 -05:00
Denis Kenzior 19c67c3b3a eapol: Add user_data argument
To __eapol_rx_packet.  The same argument is passed to tx_packet
function.
2015-03-19 23:57:37 -05:00
Denis Kenzior b526df19d6 eapol: Fix __eapol_rx_packet declaration 2015-03-19 23:57:36 -05:00
Denis Kenzior d6d24c9d15 unit: Update to the new eapol API 2015-03-19 23:57:36 -05:00
Denis Kenzior 6b84e0da1f eapol: Rename aa_addr
The use of aa_addr was redundant.  Use 'AA' instead.  802.11 defines
'AA' as 'Authenticator Address'.
2015-03-19 23:57:36 -05:00
Denis Kenzior effe260028 unit: update to the new eapol API 2015-03-19 23:57:36 -05:00
Denis Kenzior b871d904d5 eapol: Rename sta_addr
The use of sta_addr made no sense.  Instead, use the terminology from
802.11: 'Supplicant Address (SPA)'
2015-03-19 23:57:36 -05:00
Denis Kenzior 581f4e298f eapol: Use a queue instead of a hashmap 2015-03-19 23:57:36 -05:00
Denis Kenzior 12d529eddb eapol: Rearrange data structure members
The order follows the rough order of initialization, as information
becomes available from the calling code or via steps of the 4-way
handshake.
2015-03-19 23:57:36 -05:00
Denis Kenzior 31ce761469 test: Make runnable with python3 2015-03-19 23:57:36 -05:00
Denis Kenzior dcb5045d8f iwd.conf: Punch hole for agent 2015-03-19 23:57:36 -05:00
Denis Kenzior 0a8c1e8aa6 unit: Update to the new API 2015-03-19 20:32:09 -05:00
Jukka Rissanen acce7c9034 eapol: Change the interface index data type
The ifindex should be uint32_t instead of int.
2015-03-19 20:18:05 -05:00
Ravi kumar Veeramally 8e6bd7d613 monitor: Fix encrypted key data pretty printing
If key data is encrypted then print only hexdump. If not pass it to
print_ie (key data may contains other IE elements).
2015-03-18 09:04:20 -05:00
Ravi kumar Veeramally c573abf3f3 unit: Unit tests for vendor specific IE 2015-03-16 12:17:07 -05:00
Ravi kumar Veeramally 02b501b4f0 core: Find WPA BSS from scan results
Parse vendor specific IE and BSS scan results, find it AP has
WPA security details.
2015-03-16 12:15:23 -05:00
Denis Kenzior 29a89d2a8b ie: There can be only one group_cipher
So the use of & operation is unneeded.  A more correct way is to use the
equals operator.
2015-03-16 12:12:59 -05:00
Denis Kenzior 8c172f4ec1 ie: Group comments together with relevant code 2015-03-16 12:10:43 -05:00
Ravi kumar Veeramally b9007cbc9a ie: Provide a utility to build WPA IE
Build WPA IE based on vendor specific data.
2015-03-16 12:06:49 -05:00
Ravi kumar Veeramally 50c7346d19 ie: Parse vendor specific IE
Currently it supports Microsoft vendor specific information element
with version and type value 1 only. Typically it contains WPA security
related information.
2015-03-16 12:01:59 -05:00
Ravi kumar Veeramally 7eac75fa69 monitor: Print EAPoL key details
e.g.

< PAE: len 123
    Interface Index: 9
    EAPoL: len 123
        Version: 2 (802.11X-2004)
        Type: 3 (Key)
        Lenth: 119
        Descriptor Type: 2
        Key MIC: true
        Secure: false
        Error: false
        Request: false
        Encrypted Ket Data: false
        SMK Message: false
        Key Descriptor Version: 1 (01)
        Ket Type: true
        Install: false
        Key ACK: false
        Key Length: 0
        Key Replay Counter: 4
        Key NONCE
            af 38 0d 3a 24 1a f7 09 3e ad b9 6e e6 33 02 8b  .8.:$...>..n.3..
            fa 00 f6 40 71 38 e9 d5 d1 e3 ca 3b c2 16 83 d9  ...@q8.....;....
        Key IV
            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        Key RSC
            00 00 00 00 00 00 00 00                          ........
        Key MIC Data
            86 b7 54 45 7c 37 45 c1 31 e7 65 4b 70 c8 43 c0  ..TE|7E.1.eKp.C.
        Key Data: len 24
            dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50  ...P.....P.....P
            f2 02 01 00 00 50 f2 02                          .....P..
        Vendor Specific: len 22
            Microsoft (00:50:f2)
                WPA:
                    Type: 1
                    Version: 1(0001)
                    Group Data Cipher Suite: len 4
                        TKIP (00:50:f2) suite  02
                    Pairwise Cipher Suite: len 4
                        TKIP (00:50:f2) suite  02
                    AKM Suite: len 4
                        PSK; RSNA PSK (00:50:f2) suite  02
2015-03-16 11:56:43 -05:00
Ravi kumar Veeramally b8cc01eedc monitor: Print vendor specific data with more details
Currently it supports Microsoft specific data which has type
and vesion value 1.

e.g.
Vendor specific: len 22
    Microsoft (00:50:f2)
        WPA:
            Type: 1
            Version: 1(0001)
            Group Data Cipher Suite: len 4
                TKIP (00:50:f2) suite  02
            Pairwise Cipher Suite: len 4
                TKIP (00:50:f2) suite  02
            AKM Suite: len 4
                IEEE 802.1X/PMKSA; RSNA/PMKSA caching (00:50:f2) suite  01
2015-03-12 11:29:37 -05:00
Jukka Rissanen 56c4dc1a8c wiphy: Add enumeration of reason codes
When disconnecting, use a properly documented reason code.  These codes
come from the ieee80211.h file which is part of the Linux Kernel.
2015-03-12 11:19:27 -05:00
Tomasz Bursztyka 279ed50441 wiphy: Don't parse attributes of scan reply
The success or not of a scan command is found from the message directly.
There's no need to look for any attribute from the scan netlink answer.
The message is an error message or not, and that tells if the scan has
been started or not.
2015-03-11 10:24:34 -05:00
Tomasz Bursztyka 9c1780c0a1 wiphy: Use dbus object path as network key in hash
Modifying a bit how networks are stored inside the hashtable:
1 - instead of the network id, the network's object path is used
2 - network holds the pointer of the object path
3 - the hashtable does not free the key (network_free() will)

This permits to optimize on:
1 - one memory allocation used for 2 distinct things
2 - remove the need to re-compute the object path (and the id) when it's
needed, it can use dircetly the one stored in the network structure.
2015-03-10 09:32:58 -05:00
Patrik Flykt 6d652fb743 monitor: Support arbitrarily long bitfields
Support arbitrarily long bitfields by providing field and mask values
as arrays with their length measured in bytes. Some of the IE fields
easily reach 80 bits or more, thus easily overrunning any integer sizes
used by the OS architecture.
2015-03-06 13:11:03 -06:00
Patrik Flykt 1637f3519a wiphy: Request passphrase when connecting
Request a passphrase via Agent if none is set at the time network is
being connected. When freeing a network, cancel any outstanding Agent
requests and free allocated memory.
2015-03-06 12:51:51 -06:00