test: Add test in decryption test suite for 802.11w
authorCedric Izoard <cedric.izoard@ceva-dsp.com>
Wed, 13 Jan 2016 09:51:08 +0000 (10:51 +0100)
committerMichael Mann <mmann78@netscape.net>
Thu, 14 Jan 2016 03:15:35 +0000 (03:15 +0000)
- Add a test to check decryption of management frames

Bug: 11995
Change-Id: I588d0f17b9e5efc841266b9dae4764e5e931be3f
Reviewed-on: https://code.wireshark.org/review/13259
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
test/captures/wpa-test-decode-mgmt.pcap.gz [new file with mode: 0644]
test/config/80211_keys.tmpl
test/suite-decryption.sh

diff --git a/test/captures/wpa-test-decode-mgmt.pcap.gz b/test/captures/wpa-test-decode-mgmt.pcap.gz
new file mode 100644 (file)
index 0000000..b4e04d2
Binary files /dev/null and b/test/captures/wpa-test-decode-mgmt.pcap.gz differ
index 63593e58492bf2f6cb4b4f84bc6eb496ff1cae4c..0f3874baa24102109a29b3a707b285080e5b438c 100644 (file)
@@ -1,6 +1,7 @@
 # Keys needed for the decryption test suite
 "wpa-pwd","Induction"
 "wpa-pwd","test0815"
+"wpa-pwd","12345678"
 "wpa-psk","a5001e18e0b3f792278825bc3abff72d7021d7c157b600470ef730e2490835d4"
 "wpa-psk","79258f6ceeecedd3482b92deaabdb675f09bcb4003ef5074f5ddb10a94ebe00a"
 "wpa-psk","23a9ee58c7810546ae3e7509fda9f97435778d689e53a54891c56d02f18ca162"
index b7c6c017c1bb9bea1b418da29a16fde28f28baf2..00ae9fb8766f3f5c6c3ba21e96b6c4ad8e4437c1 100755 (executable)
@@ -105,6 +105,27 @@ decryption_step_80211_wpa_eapol_incomplete_rekeys() {
         test_step_ok
 }
 
+# WPA decode management frames with MFP enabled (802.11w)
+# Included in git sources test/captures/wpa-test-decode-mgmt.pcap.gz
+decryption_step_80211_wpa_psk_mfp() {
+        local out frames
+        out=$($TESTS_DIR/run_and_catch_crashes env $TS_DC_ENV $TSHARK $TS_DC_ARGS \
+                -o "wlan.enable_decryption: TRUE" \
+                -r "$CAPTURE_DIR/wpa-test-decode-mgmt.pcap.gz" \
+               -Y "wlan_mgt.fixed.reason_code == 2 || wlan_mgt.fixed.category_code == 3" \
+               2>&1)
+        RETURNVALUE=$?
+        frames=$(echo "$out" | wc -l)
+        if [ ! $RETURNVALUE -eq $EXIT_OK ]; then
+                echo "$out" > ./wpa_psk_mfp.txt
+                test_step_failed "Error during test execution: see $PWD/wpa_psk_mfp.txt"
+                return
+        elif [ $frames -ne 3 ]; then
+            test_step_failed "Not able to decode All Management frames ($frames/3)"
+            return
+        fi
+        test_step_ok
+}
 
 # DTLS
 # https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=view&target=snakeoil.tgz
@@ -283,6 +304,7 @@ decryption_step_http2() {
 tshark_decryption_suite() {
        test_step_add "IEEE 802.11 WPA PSK Decryption" decryption_step_80211_wpa_psk
        test_step_add "IEEE 802.11 WPA PSK Decryption2 (EAPOL frames missing with a Win 10 client)" decryption_step_80211_wpa_eapol_incomplete_rekeys
+       test_step_add "IEEE 802.11 WPA PSK Decryption of Management frames (802.11w)" decryption_step_80211_wpa_psk_mfp
        test_step_add "IEEE 802.11 WPA EAP Decryption" decryption_step_80211_wpa_eap
        test_step_add "DTLS Decryption" decryption_step_dtls
        test_step_add "SSL Decryption (private key)" decryption_step_ssl