path: root/wlantest
Commit message (Collapse)AuthorAgeFilesLines
* FILS: Add DHss into FILS-Key-Data derivation when using FILS SK+PFSJouni Malinen2017-09-131-1/+2
| | | | | | | | | | | | | | | | | This part is missing from IEEE Std 802.11ai-2016, but the lack of DHss here means there would not be proper PFS for the case where PMKSA caching is used with FILS SK+PFS authentication. This was not really the intent of the FILS design and that issue was fixed during REVmd work with the changes proposed in https://mentor.ieee.org/802.11/dcn/17/11-17-0906-04-000m-fils-fixes.docx that add DHss into FILS-Key-Data (and PTK, in practice) derivation for the PMKSA caching case so that a unique ICK, KEK, and TK are derived even when using the same PMK. Note: This is not backwards compatible, i.e., this breaks PMKSA caching with FILS SK+PFS if only STA or AP side implementation is updated. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: FILS keys and (Re)Association Request/Response framesJouni Malinen2017-09-052-8/+313
| | | | | | | | | | | | Try to derive PTK when FILS shared key authentication is used without PFS. The list of available PMKs is interpreted as rMSK for this purpose and PMK and PTK is derived from that. If the resulting PTK (KEK) can be used to decrypt the encrypted parts of (Re)Association Request/Response frames, mark the PTK as derived so that encrypted frames during the association can be decrypted. In addition, write a decrypted version of the (Re)Association Request/Response frames into the output file. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Support variable length PMKJouni Malinen2017-09-055-24/+37
| | | | | | | This is needed to be able to handle key derivation for FILS authentication. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Build helper files with FILS support includedJouni Malinen2017-09-051-0/+1
| | | | | | | wlantest needs this for being able to decrypt FILS (Re)Association Request/Response frames. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* DPP: Add new AKMJouni Malinen2017-06-191-6/+6
| | | | | | | | | | This new AKM is used with DPP when using the signed Connector to derive a PMK. Since the KCK, KEK, and MIC lengths are variable within a single AKM, this needs number of additional changes to get the PMK length delivered to places that need to figure out the lengths of the PTK components. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Fix pcapng writer to include decrypted EAPOL-Key Key DataJouni Malinen2017-03-261-2/+2
| | | | | | | | This was only written to pcapng files if both pcap and pcapng writing was requested. Fix this for the case where only a pcapng file is being written. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Fix EAPOL-Key Key Data padding removalJouni Malinen2017-03-261-0/+7
| | | | Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Add initial support for FT-EAP decryptionJouni Malinen2017-03-261-0/+11
| | | | | | Add second half of MSK as XXKey for FT-EAP. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Fix EAPOL buffer length with variable MIC lengthJouni Malinen2017-03-261-4/+6
| | | | | | | struct wpa_eapol_key does not include the MIC field anymore, so need to add it explicitly. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* Use os_memdup()Johannes Berg2017-03-072-6/+3
| | | | | | | | | | | | | | | | | | | | | | This leads to cleaner code overall, and also reduces the size of the hostapd and wpa_supplicant binaries (in hwsim test build on x86_64) by about 2.5 and 3.5KiB respectively. The mechanical conversions all over the code were done with the following spatch: @@ expression SIZE, SRC; expression a; @@ -a = os_malloc(SIZE); +a = os_memdup(SRC, SIZE); <... if (!a) {...} ...> -os_memcpy(a, SRC, SIZE); Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* Remove trailing whitespaceJouni Malinen2016-12-281-1/+1
| | | | Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Recognize EAPOL-Key frames without MIC bit for FILSJouni Malinen2016-10-101-0/+5
| | | | | | | | The new AEAD AKM option in FILS sets the MIC bit in EAPOL-Key frames to 0 for some ciphers, so the determination of EAPOL-Key frame types needs changes to work with these cases. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* Make struct wpa_eapol_key easier to use with variable length MICJouni Malinen2016-10-103-37/+75
| | | | | | | | | | | | | | | | | | Suite B 192-bit addition from IEEE Std 802.11ac-2013 replaced the previous fixed length Key MIC field with a variable length field. That change was addressed with an addition of a new struct defined for the second MIC length. This is not really scalable and with FILS coming up with a zero-length MIC case for AEAD, a more thorough change to support variable length MIC is needed. Remove the Key MIC and Key Data Length fields from the struct wpa_eapol_key and find their location based on the MIC length information (which is determined by the AKMP). This change allows the separate struct wpa_eapol_key_192 to be removed since struct wpa_eapol_key will now include only the fixed length fields that are shared with all EAPOL-Key cases in IEEE Std 802.11. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* Move CRC-32 routine from wlantest to src/utilsJouni Malinen2016-10-097-87/+4
| | | | | | | This allows the CRC-32 routine to be shared for other purposes in addition to the WEP/TKIP/FCS within wlantest. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* IEEE P802.11ah/D10.0 PV1 CCMP test vectorsJouni Malinen2016-09-233-0/+312
| | | | | | | Extend wlantest test_vectors to calculate test vectors for P802.11ah Annex J.6.4. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Use local ETH_P_IP define instead of linux/if_ether.hJouni Malinen2016-03-261-1/+0
| | | | | | | | There is no strong need for pulling in linux/if_ether.h here since all that is needed if ETH_P_IP and we already cover multiple other ETH_P_* values in utils/common.h. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Fix bip_protect() memory allocationJouni Malinen2016-03-141-1/+1
| | | | | | | | | The addition operator is of higher precedence than the ternary conditional and the construction here needs to use parentheses to calculate the buffer length properly when generating test frames with BIP protection. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Add -N command line argument to remove write bufferingJouni Malinen2015-11-264-2/+18
| | | | | | | | | This makes it easier to do live parsing of captured pcap files from wlantest without having to rename and restart the capture file. Packet writes are flushed to disk after each packet if -N is included in the command line. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Add support for FT-PSK initial association key derivationJouni Malinen2015-08-064-7/+58
| | | | | | | This adds minimal support for deriving keys for FT-PSK to allow the initial mobility domain association to be analyzed in more detail. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Fix a copy-paste error in a debug messageJouni Malinen2015-05-241-2/+1
| | | | Signed-off-by: Jouni Malinen <j@w1.fi>
* Declare all read only data structures as constMikael Kanstrup2015-04-253-8/+8
| | | | | | | | By analysing objdump output some read only structures were found in .data section. To help compiler further optimize code declare these as const. Signed-off-by: Mikael Kanstrup <mikael.kanstrup@sonymobile.com>
* Simplify Timeout Interval element parsingJouni Malinen2015-04-222-5/+3
| | | | | | | Remove the length field from struct ieee802_11_elems since the only allowed element length is five and that is checked by the parser. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Verify FTIE length before checking MICJouni Malinen2015-04-221-2/+4
| | | | | | | | | tdls_verify_mic() and tdls_verify_mic_teardown() could have tried to read the 16-octet FTIE MIC when processing a TDLS frame even if the received FTIE is truncated. At least in theory, this could result in reading couple of octets beyond the frame buffer. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Fix Beacon and Probe Response frame parserJouni Malinen2015-04-221-4/+10
| | | | | | | | These functions did not verify that the received frame is long enough to contain the beginning of the variable length IE area. A truncated frame could have caused a segmentation fault due to reading beyond the buffer. Signed-off-by: Jouni Malinen <j@w1.fi>
* Add Suite B 192-bit AKMJouni Malinen2015-01-262-3/+8
| | | | | | | WPA-EAP-SUITE-B-192 can now be used to select 192-bit level Suite B into use as the key management method. Signed-off-by: Jouni Malinen <j@w1.fi>
* Preparations for variable length KCK and KEKJouni Malinen2015-01-265-66/+82
| | | | | | | | This modifies struct wpa_ptk to allow the length of KCK and KEK to be stored. This is needed to allow longer keys to be used, e.g., with Suite B 192-bit level. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Extend BIP validation to support GMAC-128 and GMAC-256Jouni Malinen2015-01-241-12/+33
| | | | Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: New mgmt_group_cipher values for BSS info and debug logJouni Malinen2015-01-242-3/+19
| | | | | | | This adds BIP-GMAC-128, BIP-GMAC-256, and BIP-CMAC-256 to info_bss command and debug log. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Extend BIP support to cover BIP-CMAC-256Jouni Malinen2015-01-246-28/+74
| | | | Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* Add QUIET=1 option for makeJouni Malinen2014-12-291-0/+4
| | | | | | This can be used to reduce verbosity for build messages. Signed-off-by: Jouni Malinen <j@w1.fi>
* Clean up debug prints to use wpa_printf()Jouni Malinen2014-12-261-1/+1
| | | | | | | This converts most of the remaining perror() and printf() calls from hostapd and wpa_supplicant to use wpa_printf(). Signed-off-by: Jouni Malinen <j@w1.fi>
* Suite B: Select EAPOL-Key integrity and key-wrap algorithms based on AKMJouni Malinen2014-11-161-9/+16
| | | | | | | | | This adds support for AKM 00-0F-AC:11 to specify the integrity and key-wrap algorithms for EAPOL-Key frames using the new design where descriptor version is set to 0 and algorithms are determined based on AKM. Signed-off-by: Jouni Malinen <j@w1.fi>
* Suite B: Add AKM 00-0F-AC:11Jouni Malinen2014-11-162-1/+6
| | | | | | | | This adds definitions for the 128-bit level Suite B AKM 00-0F-AC:11. The functionality itself is not yet complete, i.e., this commit only includes parts to negotiate the new AKM. Signed-off-by: Jouni Malinen <j@w1.fi>
* AES: Extend key wrap design to support longer AES keysJouni Malinen2014-10-071-1/+1
| | | | | | | | | | | This adds kek_len argument to aes_wrap() and aes_unwrap() functions and allows AES to be initialized with 192 and 256 bit KEK in addition to the previously supported 128 bit KEK. The test vectors in test-aes.c are extended to cover all the test vectors from RFC 3394. Signed-off-by: Jouni Malinen <j@w1.fi>
* wlantest: Add decryption of CCMP-256, GCMP, GCMP-256Ashok Kumar Ponnaiah2014-09-034-14/+56
| | | | | | This extends wlantest support for decrypting the new cipher suites. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Indicate if a TKIP/CCMP replay has Retry=1Ashok Kumar Ponnaiah2014-09-032-6/+12
| | | | Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Recognize CCMP-256, GCMP, and GCMP-256 ciphersAshok Kumar Ponnaiah2014-09-032-3/+16
| | | | | | | This adds support for displaying whether a BSS or STA is using one of the newer cipher suites. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Add support for OSENJouni Malinen2014-05-155-8/+63
| | | | | | | | This allows Hotspot 2.0 OSEN connection to be analyzed more conveniently. The frames from an OSEN association can now be decrypted using an MSK file. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
* wlantest: Tag and ignore generated packetsJohannes Berg2014-04-132-7/+13
| | | | | | | | Rather than ignoring packets with a minimal 8-byte radiotap header, which may occur elsewhere, tag generated (decrypted) packets with an empty vendor namespace tag and ignore those. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* radiotap: Update radiotap parser to library versionJohannes Berg2014-04-131-4/+4
| | | | | | | | Update the radiotap parser to the latest version of the http://git.sipsolutions.net/radiotap.git/ library to get parsing for vendor namespaces. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* Declare wpa_debug_* variables in src/utils/wpa_debug.hJouni Malinen2013-12-314-13/+0
| | | | | | | | | These were somewhat more hidden to avoid direct use, but there are now numerous places where these are needed and more justification to make the extern int declarations available from wpa_debug.h. In addition, this avoids some warnings from sparse. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Add a BSS probe_response counterJouni Malinen2013-12-263-0/+3
| | | | | | | This can be used to verify whether an AP replies to a Probe Request frame. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Add per-TID RX/TX countersJouni Malinen2013-12-245-2/+239
| | | | Signed-hostap: Jouni Malinen <j@w1.fi>
* Use monotonic clock for relative time for eloop if availableJohannes Berg2013-11-201-1/+3
| | | | | | | | | | | | | | | Relative time shouldn't be calculated based on gettimeofday because that clock can jump (e.g., when the time is adjusted by the system administrator.) On systems where that is available, use CLOCK_BOOTTIME (on fairly recent Linux systems, this clock takes into account the time spend suspended) or CLOCK_MONOTONIC (on Linux and some POSIX systems, this clock is just freely running with no adjustments.) Reported-by: Holger Schurig <holgerschurig@gmail.com> Signed-hostap: Johannes Berg <johannes.berg@intel.com>
* wlantest: Add more pcapng notes on EAPOL processingJouni Malinen2013-11-171-28/+32
| | | | | | | | Some of the MIC validation steps were not logged in the pcapng notes. Add these to make the entries more consistent and to provide more information to ease debugging. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Allow additional PTKs to be specified from a fileJouni Malinen2013-11-174-5/+154
| | | | | | | | | | A text file with a hexdump of PTK (KCK|KEK=TK with 48 octets for CCMP or 64 octets for TKIP or alternative 16 or 32 octet TK for CCMP/TKIP) can now be read from a file specified with the -T command line argument. If the current known PTK fails to decrypt a frame (or if no current PTK is known) all listed PTKs are iterated to see if any of them matches. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Add support for debug log timestampsJouni Malinen2013-11-171-2/+6
| | | | | | | The new command line argument -t can now be used to request wlantest to include a timestamp in the log entries. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Add support for log output into a fileJouni Malinen2013-11-172-2/+14
| | | | | | | This allows wlantest debug log output to be directed to a file so that RELOG command can be used to rotate files more easily than stdout. Signed-hostap: Jouni Malinen <j@w1.fi>
* wlantest: Add RELOG command to reopen log/capture filesJouni Malinen2013-11-175-10/+54
| | | | | | | This can be used similarly to the wpa_supplicant RELOG command to rotate log and capture files. Signed-hostap: Jouni Malinen <j@w1.fi>
* Validate P802.11ac test vector resultJouni Malinen2013-11-171-19/+92
| | | | | | | Verify the expected value against P802.11ac/D7.0 CCMP-256, GCMP-256, BIP-GMAC-128, and BIP-GMAC-256 test vectors. Signed-hostap: Jouni Malinen <j@w1.fi>