From e43352ff415a68cf40bcce1a96c85dd677a371bc Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sun, 3 Mar 2019 17:10:40 +0200 Subject: [PATCH] tests: SAE anti clogging during an attack Signed-off-by: Jouni Malinen --- tests/hwsim/test_sae.py | 149 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) diff --git a/tests/hwsim/test_sae.py b/tests/hwsim/test_sae.py index 45b1f4bce..489975943 100644 --- a/tests/hwsim/test_sae.py +++ b/tests/hwsim/test_sae.py @@ -10,6 +10,9 @@ import os import time import logging logger = logging.getLogger() +import socket +import struct +import subprocess import hwsim_utils import hostapd @@ -1372,3 +1375,149 @@ def test_sae_reauth(dev, apdev): dev[0].request("PMKSA_FLUSH") dev[0].request("REASSOCIATE") dev[0].wait_connected(timeout=10, error="Timeout on re-connection") + +def test_sae_anti_clogging_during_attack(dev, apdev): + """SAE anti clogging during an attack""" + try: + run_sae_anti_clogging_during_attack(dev, apdev) + finally: + subprocess.call(["ip", "link", "set", "dev", apdev[1]["ifname"], + "down"]) + subprocess.call(["iw", apdev[1]["ifname"], "set", "type", "managed"]) + +def build_sae_commit(bssid, addr, group=21, token=None): + if group == 19: + scalar = binascii.unhexlify("7332d3ebff24804005ccd8c56141e3ed8d84f40638aa31cd2fac11d4d2e89e7b") + element = binascii.unhexlify("954d0f4457066bff3168376a1d7174f4e66620d1792406f613055b98513a7f03a538c13dfbaf2029e2adc6aa96aa0ddcf08ac44887b02f004b7f29b9dbf4b7d9") + elif group == 21: + scalar = binascii.unhexlify("001eec673111b902f5c8a61c8cb4c1c4793031aeea8c8c319410903bc64bcbaea134ab01c4e016d51436f5b5426f7e2af635759a3033fb4031ea79f89a62a3e2f828") + element = binascii.unhexlify("00580eb4b448ea600ea277d5e66e4ed37db82bb04ac90442e9c3727489f366ba4b82f0a472d02caf4cdd142e96baea5915d71374660ee23acbaca38cf3fe8c5fb94b01abbc5278121635d7c06911c5dad8f18d516e1fbe296c179b7c87a1dddfab393337d3d215ed333dd396da6d8f20f798c60d054f1093c24d9c2d98e15c030cc375f0") + pass + frame = binascii.unhexlify("b0003a01") + frame += bssid + addr + bssid + frame += binascii.unhexlify("1000") + auth_alg = 3 + transact = 1 + status = 0 + frame += struct.pack("