Jouni Malinen
3c56f0e275
wlantest: Fix EAPOL-Key Key Data decryption for rekey case
...
KEK from TPTK needs to be used instead of from PTK when processing
rekeying case similarly to what was already done with KCK.
Signed-hostap: Jouni Malinen <j@w1.fi>
2011-12-22 16:39:17 +02:00
Jouni Malinen
219fd441fd
wlantest: Allow MSK/PMK list to be read from a text file
...
A text file with MSK/PMK entries (one key per line in hexdump format)
can be read into wlantest (-f<path to file>) to initialize list of
known PMKs.
Signed-hostap: Jouni Malinen <j@w1.fi>
2011-12-09 00:12:27 +02:00
Jouni Malinen
d0b251d2e8
wlantest: Fix handling of PTK rekeying
...
Use a temporary PTK buffer during 4-way handshake when rekeying PTK
so that the new EAPOL-Key frame MIC values are checked against the
new PTK and frames are decrypted using the old PTK. Take the new
PTK into use once msg 4/4 is processed and clear RSC counters at
that point (including moving of RSC update to avoid setting RSC
based on the msg 4/4).
In addition, add a workaround to handle supplicant implementations that
set Secure bit to one during PTK rekeying 4-way handshake in msg 2/4.
This was previously assumed to be msg 4/4, but the key data contents
can be used to figure out whether this is msg 2/4 even if the Secure
bit is set to one.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
2011-11-14 22:36:02 +02:00
Jouni Malinen
62f05ce9c5
wlantest: Add STA counters for disconnect reason 6/7 RX
...
These can be useful in tests involving association state mismatch
between the AP and the STA (i.e., STA assumes it is still associated
but the AP does not have association state). In such a case, the AP
would be sending out unprotected Deauthentication or Disassociation
frames with reason code 6 or 7 depending on what frame is triggering
this.
2011-10-26 00:06:06 +03:00
Jouni Malinen
6908d459e2
wlantest: Verify that comeback assoc resp includes correct type
...
The Timeout Interval element needs to use Association Comeback time
for the case when (Re)Association Response frame uses Status Code 30.
Verify this before incrementing the (re)assocresp_comeback counters.
2011-09-20 20:13:18 +03:00
Jouni Malinen
02b915f689
wlantest: Allow injection of unprotected frames to unknown BSS
2011-08-28 19:19:38 +03:00
Jouni Malinen
6ca4da6518
wlantest: Use source address of TDLS Setup Confirm failure for matching
...
This is needed to be able to find the correct TDLS entry for the
frame regardless of whether a FromDS or ToDS frame is being processed.
2011-03-14 21:35:40 +02:00
Jouni Malinen
39c147261e
wlantest: Fix source address for FromDS frames
2011-03-14 21:35:14 +02:00
Jouni Malinen
9a994178f1
wlantest: Add command for adding WEP keys during run time
2011-01-28 13:33:21 +02:00
Jouni Malinen
dfaeda0492
Fix couple of compiler warnings about uninitialized variables
2011-01-26 21:29:28 +02:00
Jouni Malinen
4e062e35de
wlantest: Handle missing fields in TDLS Setup Confirm error case
2011-01-24 20:51:28 +02:00
Jouni Malinen
2878cae7a7
wlantest: Handle missing fields in TDLS Setup Response error case
2011-01-24 18:16:26 +02:00
Jouni Malinen
5acf56f6a2
wlantest: Count TDLS Teardown messages
2011-01-24 17:00:28 +02:00
Jouni Malinen
9559a7f882
wlantest: Fix compiler warnings
2011-01-24 16:57:36 +02:00
Jouni Malinen
44a0486607
wlantest: Fix TDLS setup failure counting
...
Need to be able to handle TDLS Setup Response frame with LinkId IE
when non-zero status code is used. In addition, allow finding of a
TDLS entry based on real BSSID instead of the one used in the LinkId
to allow negative testing of different BSS.
2011-01-24 15:25:59 +02:00
Jouni Malinen
244c9303cb
wlantest: Determine ping matches properly for direct link
...
Check ICMP echo request/response matches for both STAs to get proper
counter values for a ping from a one STA to another one using TDLS.
2011-01-24 14:50:51 +02:00
Jouni Malinen
719e7eb28d
wlantest: Set direct links down on deauth/disassoc
2011-01-24 14:34:54 +02:00
Jouni Malinen
0d2e395d74
wlantest: Maintain only a single entry for an active direct link
...
The TDLS link itself is bidirectional, but there is explicit
initiator/responder roles. Remove the other direction of the link if it
exists when processing TDLS Setup Confirm to make sure that the link
counters are stored for the current TDLS entery.
This is also changing the control interface search for TDLS counters
to require initiator/responder addresses in the correct order instead
of matching entries regardless of the role.
2011-01-24 14:34:45 +02:00
Jouni Malinen
eb4923fdae
wlantest: Add counters for TDLS setup frames
2011-01-24 14:03:03 +02:00
Jouni Malinen
8a1cf4be21
wlantest: Add TDLS entry on TDLS Setup Request
...
This will make the TDLS counters available even if setup fails.
2011-01-19 14:00:14 +02:00
Jouni Malinen
2caf69247b
wlantest: Check WPA/RSN IE match between AssocReq and Beacon
...
Note unexpected WPA/RSN IE in AssocReq and ignore them if the last
Beacon/ProbeResp from the AP is not advertising support for
WPA/RSN.
2011-01-17 19:52:35 +02:00
Jouni Malinen
2e479416d1
wlantest: Add support for decrypting WEP frames
2011-01-14 17:43:17 +02:00
Jouni Malinen
3558c41ee7
wlantest: Add more details for CCMP MIC failures
2011-01-14 16:32:59 +02:00
Jouni Malinen
ef44a08bea
wlantest: Fix masking of CCMP AAD QC field
2011-01-14 16:32:14 +02:00
Jouni Malinen
0a9ddd92cd
wlantest: Add STA counter prot_data_tx
2011-01-07 17:09:09 +02:00
Jouni Malinen
e7ba4e2c74
wlantest: Add counters for AP deauth/disassoc while asleep/awake
...
These can be used to check whether the STA is in power save mode
and because of that, is not seeing disconnection notifications.
2011-01-07 16:52:56 +02:00
Jouni Malinen
7e7a57ae3f
wlantest: Track station PS state
2011-01-07 15:54:58 +02:00
Jouni Malinen
01b397dd94
wlantest: Add more details for replay debug messages
...
These make it easier to find the frame in question when looking at
the capture in Wireshark.
2011-01-07 14:17:08 +02:00
Jouni Malinen
62a0255c1f
wlantest: Skip frames inserted by wlantest when reading pcap file
...
This makes debug output clearer when re-reading a file that has
previously been processed and decrypted by wlantest.
2011-01-05 10:41:51 +02:00
Jouni Malinen
fb8f5fc6fd
wlantest: Count number of STA ACK'ed Deauth/Disassoc frames
2011-01-03 19:28:40 +02:00
Jouni Malinen
1da4da6f76
wlantest: Add ping_ok_first_assoc STA counter
...
This can be used to verify whether ping goes through between
clearing of the STA counters and the first (re)association.
2011-01-03 16:54:14 +02:00
Jouni Malinen
a8401116e1
wlantest: Add more debug output for frame injection failures
2010-12-21 12:48:53 +02:00
Jouni Malinen
880a97dc5d
wlantest: Fix management frame injection
...
The TDLS special case was supposed to apply to only Data frames.
2010-12-21 12:48:03 +02:00
Jouni Malinen
71a7e936e1
wlantest: Fix buffer read overflow on CCMP encryption
...
The encryption code may write a full AES block to the end of the
buffer, so make sure the temporary buffer is long enough to fit that
data.
2010-12-17 11:02:56 +02:00
Jouni Malinen
4d00fe48e3
wlantest: Fix error path in TDLS-not-found case
2010-12-17 08:26:39 +02:00
Jouni Malinen
30e09b0d75
wlantest: Avoid aliasing a function parameter by renaming local variable
2010-12-17 08:22:07 +02:00
Jouni Malinen
cb384549e2
wlantest: Remove unnecessary validation code
...
This condition is already checked above when figuring out whether a key
is known and as such, there is no point in keeping this check here.
2010-12-17 08:16:12 +02:00
Jouni Malinen
ef00c78097
wlantest: Replace pcap header directory
...
The use of the pcap subdirectory seems to be limited to some of the
newer Linux distros only, so use the older paths to pcap.h and
pcap-bpf.h to make wlantest bit more easier to compile on older
systems.
2010-12-17 08:06:52 +02:00
Jouni Malinen
0e42fff3de
wlantest: Add counters and AP/direct path validation for TDLS
...
These can be used to write automated test scripts for verifying
that TDLS STAs are using correct data path.
2010-12-16 19:08:49 +02:00
Jouni Malinen
29ec745719
wlantest: Check FTIE MIC in TDLS Teardown messages
2010-12-16 17:08:00 +02:00
Jouni Malinen
b3a6d9d400
wlantest: Add send command for injecting raw frames
...
This can be used by external programs (e.g., wlantest_cli) to inject
raw frames (hex dump of the frame header and body). The data can be
requested to be sent as-is or protected with the current key.
2010-12-16 16:11:54 +02:00
Jouni Malinen
b39f58347d
wlantest: Add support for decrypting TDLS frames
...
Derive TPK based on TDLS TPK Handshake and decrypt frames on the
direct link with TPK-TK.
2010-12-13 11:20:55 +02:00
Jouni Malinen
0f3e4f2a83
wlantest: Add support for reading DLT_IEEE802_11 pcap files
2010-12-04 11:18:21 -08:00
Jouni Malinen
350132bec5
wlantest: Add support for reading pcap files with prism header
2010-12-02 12:56:37 -08:00
Jouni Malinen
38484f69f9
wlantest: Update STA State based on broadcast Deauth/Disassoc
2010-11-23 14:37:21 +02:00
Jouni Malinen
a912dd16c5
wlantest: Implement IEEE 802.11 duplicate detection
...
This cleans up debug logs by avoiding incorrect entries on TKIP/CCMP
replays and some state changes.
2010-11-23 14:27:28 +02:00
Jouni Malinen
107ad4e323
wlantest: Show broadcast Deauth/Disassoc info in debug
2010-11-23 13:16:23 +02:00
Jouni Malinen
f665867bd1
wlantest: Check STA State when validating need for CCMP for mgmt
...
If the STA is in State 1 or 2, Deauth/Disassoc frames are not
protected, so no need to complain about them being sent without CCMP.
2010-11-23 13:15:25 +02:00
Jouni Malinen
783a082ccc
wlantest: Add per-BSS counters for BIP deauth/disassoc
2010-11-21 21:50:28 +02:00
Jouni Malinen
cdd71e307e
wlantest: Add per-STA counter for (Re)AssocResp comeback frames
2010-11-21 21:24:20 +02:00
Jouni Malinen
fc686b1994
wlantest: Use helper functions to parse BSS/STA parameters
2010-11-21 18:18:01 +02:00
Jouni Malinen
2fc0cd54db
wlantest: Add functionality for fetching STA/BSS information
2010-11-21 18:01:18 +02:00
Jouni Malinen
221519dea3
wlantest: Derive PMK to existing BSSes when a new passphrase is added
2010-11-21 13:19:43 +02:00
Jouni Malinen
81d5989176
wlantest: Fix CCMP header generation to include reserved field
2010-11-21 13:18:57 +02:00
Jouni Malinen
0778c8f5ed
wlantest: Add more debugging details for PMK selection
2010-11-21 13:18:02 +02:00
Jouni Malinen
902621e2b0
wlantest: Show encrypted version on injected frame in debug
2010-11-21 13:17:35 +02:00
Jouni Malinen
13b9f3a1f9
wlantest: Add history file for wlantest_cli
2010-11-21 12:09:27 +02:00
Jouni Malinen
8953e9681a
edit: Move history save file specification to caller
2010-11-21 11:43:09 +02:00
Jouni Malinen
ee3b84beb3
wlantest: Parse ICMP echo packet and record STA ping success
2010-11-20 22:34:42 +02:00
Jouni Malinen
161d0339c6
wlantest: Move RX EAPOL processing into its own file
2010-11-20 21:40:04 +02:00
Jouni Malinen
0954399c90
wlantest: Use proper cmd length in fetching STA list
2010-11-20 12:43:16 +02:00
Jouni Malinen
79a670cbf7
wlantest: Add pre-command completion functions
...
This allows the parameters to each command to be completed.
2010-11-20 12:35:11 +02:00
Jouni Malinen
ef49bb80a9
wlantest: Add interactive mode to wlantest_cli
2010-11-20 10:48:32 +02:00
Jouni Malinen
57f7d03f91
wlantest: Do not add new BSS/STA entries based on ctrl commands
...
Introduce bss_find()/sta_find() as an alternative bss_get()/sta_get()
command that do not allocate new BSS/STA entry if no existing entry
is found.
2010-11-19 22:00:10 +02:00
Jouni Malinen
fbdd21327e
wlantest: Add add_passphrase command
...
This can be used to add a new known passphrase without having to
restart wlantest.
2010-11-19 19:31:55 +02:00
Jouni Malinen
a16c859034
wlantest: Add command for fetching wlantest version
2010-11-19 17:45:19 +02:00
Jouni Malinen
990153b4dd
wlantest: Add support for injecting (Re)Association Request frames
2010-11-19 17:09:02 +02:00
Jouni Malinen
2e4c34691b
wlantest: Add support for protecting injected broadcast frames
2010-11-19 16:48:33 +02:00
Jouni Malinen
4adc5e0f0b
wlantest: Add support for injecting Deauth/Disassoc frames
2010-11-19 16:22:44 +02:00
Jouni Malinen
799aa95b23
wlantest: Update SA Query trans id based on injected frame
...
This allows the SA Query transaction id matching code to be used
to verify that a valid response is received for the injected
request.
2010-11-19 16:12:46 +02:00
Jouni Malinen
571ab37b86
wlantest: Add support for CCMP protection for injected frames
2010-11-19 16:09:19 +02:00
Jouni Malinen
7d23e971f0
wlantest: Add preliminary infrastructure for injecting frames
...
This adds new commands for wlantest_cli to request wlantest to
inject frames. This version can only send out Authentication
frames and unprotected SA Query Request frames, but there is
now place to add more frames and encryption with future commits.
2010-11-19 00:35:13 +02:00
Jouni Malinen
6d5ce9fc90
wlantest: Add BSS/STA statistics counters
...
These counters can be cleared and queried from external programs to
script various testing tasks.
2010-11-18 19:05:29 +02:00
Jouni Malinen
d356bd630b
wlantest: Add flush command for dropping all BSS data
2010-11-18 17:36:08 +02:00
Jouni Malinen
6f2346c144
wlantest: Add list_bss and list_sta commands
...
These can be used to list the current BSS and STA information
maintained in wlantest.
2010-11-18 17:17:18 +02:00
Jouni Malinen
a6c1810297
wlantest: Fix wlantest_cli dependency to include wlantest library
2010-11-18 16:27:25 +02:00
Jouni Malinen
644fb8c8a0
wlantest: Add control interface and wlantest_cli
...
This can be used to manage wlantest operation during run time.
2010-11-13 18:38:19 +02:00
Jouni Malinen
77ac47278a
wlantest: Validate EAPOL-Key reserved fields
...
In addition, this handles WPA difference in Key Info for Secure
bit in msg 3/4 and 4/4 (not set, since GTK is not yet available).
2010-11-13 14:09:40 +02:00
Jouni Malinen
ad41bb2ea9
wlantest: Add debug print for ignored group addressed Action frames
2010-11-13 13:18:09 +02:00
Jouni Malinen
f3b9ed70c5
wlantest: Validate MMIE KeyID reserved bits
2010-11-13 13:14:09 +02:00
Jouni Malinen
16b8b6eadf
wlantest: Validate reserved bits in TKIP/CCMP header
2010-11-13 13:03:21 +02:00
Jouni Malinen
20062114cd
wlantest: Verify that TKIP/CCMP frames set ExtIV=1
2010-11-13 12:54:07 +02:00
Jouni Malinen
4dac84539e
wlantest: Implement TKIP replay detection
2010-11-13 12:40:36 +02:00
Jouni Malinen
6c9c513783
wlantest: Add support for WPA key handshakes
...
The Key Data field is handled differently in msg 3/4 and 1/2 in WPA,
so add separate code for processing non-RSN case.
2010-11-13 11:59:43 +02:00
Jouni Malinen
2924b0eb79
wlantest: Add support for TKIP decryption
2010-11-13 11:36:37 +02:00
Jouni Malinen
a9dd29d3e1
wlantest: Use negotiated AKM/cipher to select PMK-to-PTK parameters
2010-11-12 23:33:42 +02:00
Jouni Malinen
42e79f82dc
wlantest: Fix mgmt CCMP decrypt to not crash on failures
2010-11-12 23:28:43 +02:00
Jouni Malinen
2102ecf0b5
wlantest: Verify that unicast robust mgmt frames are protected
2010-11-12 23:17:20 +02:00
Jouni Malinen
070d6173e2
wlantest: Verify MFP use in association with MFPR BSS
2010-11-12 23:16:38 +02:00
Jouni Malinen
994d6a88c5
wlantest: Use MFPC field instead of igtk_set to check if BIP is needed
2010-11-12 23:01:56 +02:00
Jouni Malinen
9bb6cdaaaf
wlantest: Verify that WPA/RSN IE matches in EAPOL-Key and mgmt frames
...
Verify that WPA/RSN IE in (Re)Association Request is identical to the
one used in EAPOL-Key message 2/4.
Verify that WPA/RSN IE in Beacon/Probe Response is identical to the
one(s) used in EAPOL-Key message 3/4.
2010-11-12 22:54:28 +02:00
Jouni Malinen
327f71604c
wlantest: Parse WPA/RSN IE and store info for BSS/STA
...
In addition, verify that the parameters that the STA is requesting
match with what is enabled in the BSS.
2010-11-12 22:40:59 +02:00
Jouni Malinen
8c2cfd973a
wlantest: Dump decrypted Key Data from Group Handshake msg 1/2
2010-11-12 01:02:45 +02:00
Jouni Malinen
64f45d070b
wlantest: Add option for writing a PCAP dump file
...
The output file includes all the capture (or read from wireless PCAP
file) frames in their original contents and another copy of each
frame that is decrypted in wlantest (including EAPOL-Key Key Data
field).
2010-11-12 01:00:31 +02:00
Jouni Malinen
5db8cf314e
wlantest: Add Group Key handshake processing
...
Decrypt GTK/IGTK updates in Group Key message 1/2 and update the
keys. In addition, verify the MIC on both Group Key handshake
messages.
2010-11-11 22:04:38 +02:00
Jouni Malinen
30febd7001
wlantest: Fix Mgmt CCMP replay detection to use correct PN offset
2010-11-11 21:35:30 +02:00
Jouni Malinen
0819b65b17
wlantest: Process Action frames
...
Parse Action frames and verify SA Query transactions.
2010-11-11 21:34:06 +02:00
Jouni Malinen
47fe6880ed
wlantest: Decrypt CCMP protected unicast Robust Management frames
2010-11-11 20:46:15 +02:00
Jouni Malinen
2edd5c23ad
wlantest: Add replay detection for CCMP
2010-11-11 20:21:11 +02:00
Jouni Malinen
07d0a5be45
wlantest: Decrypt group addressed Data frames
2010-11-11 19:53:12 +02:00
Jouni Malinen
d318c534da
wlantest: Add support for decrypting CCMP protected unicast Data frames
2010-11-11 01:29:30 +02:00
Jouni Malinen
4d4c29158d
wlantest: Fix BIP replay detection
2010-11-10 16:59:45 +02:00
Jouni Malinen
bacc31286c
wlantest: Validate MMIE MIC
2010-11-10 02:06:59 +02:00
Jouni Malinen
f0a782979d
wlantest: Parse KDEs from message 2/4
2010-11-10 01:16:32 +02:00
Jouni Malinen
c09caa5882
wlantest: Use more consistent debug levels for keys
2010-11-09 20:35:24 +02:00
Jouni Malinen
4d9f9ee7e5
wlantest: Parse Key Data KDEs and store GTK and IGTK
2010-11-09 20:29:12 +02:00
Jouni Malinen
8672562b04
wlantest: Decrypt EAPOL-Key 3/4 Key Data
2010-11-09 00:39:43 +02:00
Jouni Malinen
d06df64d14
wlantest: Derive PMK from RADIUS exchange
...
Decrypt MPPE keys and derive PMK from RADIUS exchange if RADIUS
shared secret is known. Use the derived PMK when trying to derive
PTK during 4-Way Handshake.
2010-11-07 23:29:02 +02:00
Jouni Malinen
3215df77ee
wlantest: Add capturing and parsing of RADIUS messages
...
Another interface (-I) or pcap file (-R) can now be specified as a
source of RADIUS packets. These packets are now parsed, but the
MSK is not yet derived for PMK use.
2010-11-07 23:29:02 +02:00
Jouni Malinen
4bc82fc7ae
wlantest: Fix LLC debug print
2010-11-07 23:29:01 +02:00
Jouni Malinen
53650bcab4
wlantest: Add PTK derivation based on passphrases
...
Allow pre-configuration of passphrases (-p<passphrase>) to provide
enough information for wlantest to be able to derive PMK for each
BSS and PTK for each STA going through 4-Way Handshake (at least
message 2 and 3 needs to be received).
2010-11-07 23:29:01 +02:00
Jouni Malinen
32234bba52
wlantest: Parse EAPOL-Key frames
2010-11-07 23:29:01 +02:00
Jouni Malinen
021a6fe499
wlantest: Maintain a copy of WPA/RSN IE from (Re)AssocReq
2010-11-07 23:29:01 +02:00
Jouni Malinen
2d73f0a875
wlantest: Move Mgmt and Data frame processing into their own files
2010-11-07 23:29:01 +02:00
Jouni Malinen
b50111fbb2
wlantest: Move bss_update() into bss.c
2010-11-07 23:29:00 +02:00
Jouni Malinen
d30edf54b8
wlantest: Maintain STA state based on auth/assoc/deauth/disassoc
2010-11-07 23:29:00 +02:00
Jouni Malinen
422ef7d205
wlantest: Create station list for each BSS
2010-11-07 23:29:00 +02:00
Jouni Malinen
d84d389351
wlantest: Maintain table of BSS information
...
Whenever a Beacon or Probe Response frame is observed, add or update
a BSS entry to maintain current information about the active BSSes.
2010-11-07 23:29:00 +02:00
Jouni Malinen
a149fcc77d
wlantest: Add preliminary version of IEEE 802.11 protocol testing tool
...
This tool can be used to capture IEEE 802.11 frames either from a
monitor interface for realtime capturing or from pcap files for
offline analysis. This version is only adding basic infrastructure for
going through the frames and parsing their headers.
2010-11-07 23:29:00 +02:00