aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMikael Kanstrup <mikael.kanstrup@sony.com>2021-01-06 07:49:59 +0100
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2021-01-20 16:10:12 +0000
commit2306cbddb9469cd1d941446a6f7e0354e795db62 (patch)
tree1d547a220991577481121551f96287af433fd822 /test
parent75e90aa4e98a022a04631b2dbfd0f4398caf2083 (diff)
dot11decrypt: Support decrypting FT initial mobility domain
Add partial support for decrypting captures with connections established using FT BSS Transition (IEEE 802.11r). FT BSS Transition decryption comes with the following limitations: - Only FT-PSK is supported. - Keys can only be derived from the FT 4-way handshake messages. - Roaming is not supported.
Diffstat (limited to 'test')
-rw-r--r--test/captures/wpa2-ft-psk.pcapng.gzbin0 -> 2542 bytes
-rw-r--r--test/suite_decryption.py11
2 files changed, 11 insertions, 0 deletions
diff --git a/test/captures/wpa2-ft-psk.pcapng.gz b/test/captures/wpa2-ft-psk.pcapng.gz
new file mode 100644
index 0000000000..f40540e2ad
--- /dev/null
+++ b/test/captures/wpa2-ft-psk.pcapng.gz
Binary files differ
diff --git a/test/suite_decryption.py b/test/suite_decryption.py
index 25f92bfa04..e045b56ee8 100644
--- a/test/suite_decryption.py
+++ b/test/suite_decryption.py
@@ -223,6 +223,17 @@ class case_decrypt_80211(subprocesstest.SubprocessTestCase):
self.assertTrue(self.grepOutput('DHCP Request')) # Verifies TK is correct
self.assertTrue(self.grepOutput(r'Echo \(ping\) request')) # Verifies TK is correct
+ def test_80211_wpa2_ft_psk(self, cmd_tshark, capture_file):
+ '''IEEE 802.11 decode WPA2 FT PSK'''
+ # Included in git sources test/captures/wpa2-ft-psk.pcapng.gz
+ self.assertRun((cmd_tshark,
+ '-o', 'wlan.enable_decryption: TRUE',
+ '-r', capture_file('wpa2-ft-psk.pcapng.gz'),
+ '-Y', 'wlan.analysis.tk == 58f564fd078c3cc8ceb8c8be8e51d30d || wlan.analysis.gtk == a2e4ae32e73603f12ecbce89992de9df',
+ ))
+ self.assertTrue(self.grepOutput('DHCP Request')) # Verifies GTK decryption
+ self.assertTrue(self.grepOutput(r'Echo \(ping\) request')) # Verifies TK decryption
+
@fixtures.mark_usefixtures('test_env_80211_user_tk')
@fixtures.uses_fixtures
class case_decrypt_80211_user_tk(subprocesstest.SubprocessTestCase):