mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-01-30 16:54:04 -05:00
tests: fail_test instead of alloc_fail for aes_{encrypt,decrypt}_init
This is needed to fix ap_wpa2_eap_psk_oom, ap_wpa2_eap_sim_oom, eap_proto_psk_errors, and ap_ft_oom with the new OpenSSL dynamic memory allocation design. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
465196ebd2
commit
7cbc8e6719
@ -731,7 +731,7 @@ def test_ap_wpa2_eap_sim_oom(dev, apdev):
|
|||||||
(11, "milenage_f2345"),
|
(11, "milenage_f2345"),
|
||||||
(12, "milenage_f2345") ]
|
(12, "milenage_f2345") ]
|
||||||
for count, func in tests:
|
for count, func in tests:
|
||||||
with alloc_fail(dev[0], count, func):
|
with fail_test(dev[0], count, func):
|
||||||
dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="SIM",
|
dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="SIM",
|
||||||
identity="1232010000000000",
|
identity="1232010000000000",
|
||||||
password="90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581",
|
password="90dca4eda45b53cf0f12d7c9c3bc6a89:cb9cccc4b9258e6dca4760379fb82581",
|
||||||
@ -2708,16 +2708,7 @@ def test_ap_wpa2_eap_psk_oom(dev, apdev):
|
|||||||
skip_with_fips(dev[0])
|
skip_with_fips(dev[0])
|
||||||
params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
|
params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
|
||||||
hostapd.add_ap(apdev[0]['ifname'], params)
|
hostapd.add_ap(apdev[0]['ifname'], params)
|
||||||
tests = [ (1, "aes_128_ctr_encrypt;aes_128_eax_encrypt"),
|
tests = [ (1, "=aes_128_eax_encrypt"),
|
||||||
(1, "omac1_aes_128;aes_128_eax_encrypt"),
|
|
||||||
(2, "omac1_aes_128;aes_128_eax_encrypt"),
|
|
||||||
(3, "omac1_aes_128;aes_128_eax_encrypt"),
|
|
||||||
(1, "=aes_128_eax_encrypt"),
|
|
||||||
(1, "omac1_aes_vector"),
|
|
||||||
(1, "aes_128_ctr_encrypt;aes_128_eax_decrypt"),
|
|
||||||
(1, "omac1_aes_128;aes_128_eax_decrypt"),
|
|
||||||
(2, "omac1_aes_128;aes_128_eax_decrypt"),
|
|
||||||
(3, "omac1_aes_128;aes_128_eax_decrypt"),
|
|
||||||
(1, "=aes_128_eax_decrypt") ]
|
(1, "=aes_128_eax_decrypt") ]
|
||||||
for count, func in tests:
|
for count, func in tests:
|
||||||
with alloc_fail(dev[0], count, func):
|
with alloc_fail(dev[0], count, func):
|
||||||
@ -2728,13 +2719,35 @@ def test_ap_wpa2_eap_psk_oom(dev, apdev):
|
|||||||
ev = dev[0].wait_event(["CTRL-EVENT-EAP-METHOD"], timeout=5)
|
ev = dev[0].wait_event(["CTRL-EVENT-EAP-METHOD"], timeout=5)
|
||||||
if ev is None:
|
if ev is None:
|
||||||
raise Exception("EAP method not selected")
|
raise Exception("EAP method not selected")
|
||||||
for i in range(10):
|
wait_fail_trigger(dev[0], "GET_ALLOC_FAIL",
|
||||||
if "0:" in dev[0].request("GET_ALLOC_FAIL"):
|
note="Failure not triggered: %d:%s" % (count, func))
|
||||||
break
|
|
||||||
time.sleep(0.02)
|
|
||||||
dev[0].request("REMOVE_NETWORK all")
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
with alloc_fail(dev[0], 1, "aes_128_encrypt_block"):
|
tests = [ (1, "aes_128_ctr_encrypt;aes_128_eax_encrypt"),
|
||||||
|
(1, "omac1_aes_128;aes_128_eax_encrypt"),
|
||||||
|
(2, "omac1_aes_128;aes_128_eax_encrypt"),
|
||||||
|
(3, "omac1_aes_128;aes_128_eax_encrypt"),
|
||||||
|
(1, "omac1_aes_vector"),
|
||||||
|
(1, "omac1_aes_128;aes_128_eax_decrypt"),
|
||||||
|
(2, "omac1_aes_128;aes_128_eax_decrypt"),
|
||||||
|
(3, "omac1_aes_128;aes_128_eax_decrypt"),
|
||||||
|
(1, "aes_128_ctr_encrypt;aes_128_eax_decrypt") ]
|
||||||
|
for count, func in tests:
|
||||||
|
with fail_test(dev[0], count, func):
|
||||||
|
dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="PSK",
|
||||||
|
identity="psk.user@example.com",
|
||||||
|
password_hex="0123456789abcdef0123456789abcdef",
|
||||||
|
wait_connect=False, scan_freq="2412")
|
||||||
|
ev = dev[0].wait_event(["CTRL-EVENT-EAP-METHOD"], timeout=5)
|
||||||
|
if ev is None:
|
||||||
|
raise Exception("EAP method not selected")
|
||||||
|
wait_fail_trigger(dev[0], "GET_FAIL",
|
||||||
|
note="Failure not triggered: %d:%s" % (count, func))
|
||||||
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
|
with fail_test(dev[0], 1, "aes_128_encrypt_block"):
|
||||||
dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="PSK",
|
dev[0].connect("test-wpa2-eap", key_mgmt="WPA-EAP", eap="PSK",
|
||||||
identity="psk.user@example.com",
|
identity="psk.user@example.com",
|
||||||
password_hex="0123456789abcdef0123456789abcdef",
|
password_hex="0123456789abcdef0123456789abcdef",
|
||||||
@ -2743,6 +2756,7 @@ def test_ap_wpa2_eap_psk_oom(dev, apdev):
|
|||||||
if ev is None:
|
if ev is None:
|
||||||
raise Exception("EAP method failure not reported")
|
raise Exception("EAP method failure not reported")
|
||||||
dev[0].request("REMOVE_NETWORK all")
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
def test_ap_wpa_eap_peap_eap_mschapv2(dev, apdev):
|
def test_ap_wpa_eap_peap_eap_mschapv2(dev, apdev):
|
||||||
"""WPA-Enterprise connection using EAP-PEAP/EAP-MSCHAPv2"""
|
"""WPA-Enterprise connection using EAP-PEAP/EAP-MSCHAPv2"""
|
||||||
|
@ -789,7 +789,7 @@ def test_ap_ft_oom(dev, apdev):
|
|||||||
dev[0].scan_for_bss(dst, freq="2412")
|
dev[0].scan_for_bss(dst, freq="2412")
|
||||||
with alloc_fail(dev[0], 1, "wpa_ft_gen_req_ies"):
|
with alloc_fail(dev[0], 1, "wpa_ft_gen_req_ies"):
|
||||||
dev[0].roam(dst)
|
dev[0].roam(dst)
|
||||||
with alloc_fail(dev[0], 1, "wpa_ft_mic"):
|
with fail_test(dev[0], 1, "wpa_ft_mic"):
|
||||||
dev[0].roam(dst, fail_test=True)
|
dev[0].roam(dst, fail_test=True)
|
||||||
with fail_test(dev[0], 1, "os_get_random;wpa_ft_prepare_auth_request"):
|
with fail_test(dev[0], 1, "os_get_random;wpa_ft_prepare_auth_request"):
|
||||||
dev[0].roam(dst, fail_test=True)
|
dev[0].roam(dst, fail_test=True)
|
||||||
|
@ -2787,7 +2787,7 @@ def test_eap_proto_psk_errors(dev, apdev):
|
|||||||
params = hostapd.wpa2_eap_params(ssid="eap-test")
|
params = hostapd.wpa2_eap_params(ssid="eap-test")
|
||||||
hapd = hostapd.add_ap(apdev[0]['ifname'], params)
|
hapd = hostapd.add_ap(apdev[0]['ifname'], params)
|
||||||
|
|
||||||
for i in range(1, 6):
|
for i in range(1, 3):
|
||||||
with alloc_fail(dev[0], i, "eap_psk_init"):
|
with alloc_fail(dev[0], i, "eap_psk_init"):
|
||||||
dev[0].connect("eap-test", key_mgmt="WPA-EAP", scan_freq="2412",
|
dev[0].connect("eap-test", key_mgmt="WPA-EAP", scan_freq="2412",
|
||||||
eap="PSK", identity="psk.user@example.com",
|
eap="PSK", identity="psk.user@example.com",
|
||||||
@ -2800,24 +2800,25 @@ def test_eap_proto_psk_errors(dev, apdev):
|
|||||||
dev[0].request("REMOVE_NETWORK all")
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
dev[0].wait_disconnected()
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
|
for i in range(1, 4):
|
||||||
|
with fail_test(dev[0], i, "eap_psk_key_setup;eap_psk_init"):
|
||||||
|
dev[0].connect("eap-test", key_mgmt="WPA-EAP", scan_freq="2412",
|
||||||
|
eap="PSK", identity="psk.user@example.com",
|
||||||
|
password_hex="0123456789abcdef0123456789abcdef",
|
||||||
|
wait_connect=False)
|
||||||
|
ev = dev[0].wait_event(["EAP: Failed to initialize EAP method"],
|
||||||
|
timeout=15)
|
||||||
|
if ev is None:
|
||||||
|
raise Exception("Timeout on EAP start")
|
||||||
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
tests = [ (1, "=eap_psk_process_1"),
|
tests = [ (1, "=eap_psk_process_1"),
|
||||||
(2, "=eap_psk_process_1"),
|
(2, "=eap_psk_process_1"),
|
||||||
(1, "eap_msg_alloc;eap_psk_process_1"),
|
(1, "eap_msg_alloc;eap_psk_process_1"),
|
||||||
(1, "=eap_psk_process_3"),
|
(1, "=eap_psk_process_3"),
|
||||||
(2, "=eap_psk_process_3"),
|
(2, "=eap_psk_process_3"),
|
||||||
(1, "eap_msg_alloc;eap_psk_process_3"),
|
(1, "eap_msg_alloc;eap_psk_process_3"),
|
||||||
(1, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(2, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(3, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(4, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(5, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(6, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(7, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(8, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(9, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(10, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
|
||||||
(1, "aes_128_ctr_encrypt;aes_128_eax_decrypt;eap_psk_process_3"),
|
|
||||||
(1, "aes_128_ctr_encrypt;aes_128_eax_encrypt;eap_psk_process_3"),
|
|
||||||
(1, "eap_psk_getKey"),
|
(1, "eap_psk_getKey"),
|
||||||
(1, "eap_psk_get_session_id"),
|
(1, "eap_psk_get_session_id"),
|
||||||
(1, "eap_psk_get_emsk") ]
|
(1, "eap_psk_get_emsk") ]
|
||||||
@ -2831,15 +2832,8 @@ def test_eap_proto_psk_errors(dev, apdev):
|
|||||||
timeout=15)
|
timeout=15)
|
||||||
if ev is None:
|
if ev is None:
|
||||||
raise Exception("Timeout on EAP start")
|
raise Exception("Timeout on EAP start")
|
||||||
ok = False
|
wait_fail_trigger(dev[0], "GET_ALLOC_FAIL",
|
||||||
for j in range(10):
|
note="No allocation failure seen for %d:%s" % (count, func))
|
||||||
state = dev[0].request('GET_ALLOC_FAIL')
|
|
||||||
if state.startswith('0:'):
|
|
||||||
ok = True
|
|
||||||
break
|
|
||||||
time.sleep(0.1)
|
|
||||||
if not ok:
|
|
||||||
raise Exception("No allocation failure seen for %d:%s" % (count, func))
|
|
||||||
dev[0].request("REMOVE_NETWORK all")
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
dev[0].wait_disconnected()
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
@ -2850,7 +2844,19 @@ def test_eap_proto_psk_errors(dev, apdev):
|
|||||||
(3, "aes_128_eax_decrypt;eap_psk_process_3"),
|
(3, "aes_128_eax_decrypt;eap_psk_process_3"),
|
||||||
(1, "aes_128_eax_encrypt;eap_psk_process_3"),
|
(1, "aes_128_eax_encrypt;eap_psk_process_3"),
|
||||||
(2, "aes_128_eax_encrypt;eap_psk_process_3"),
|
(2, "aes_128_eax_encrypt;eap_psk_process_3"),
|
||||||
(3, "aes_128_eax_encrypt;eap_psk_process_3") ]
|
(3, "aes_128_eax_encrypt;eap_psk_process_3"),
|
||||||
|
(1, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(2, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(3, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(4, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(5, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(6, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(7, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(8, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(9, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(10, "aes_128_encrypt_block;eap_psk_derive_keys;eap_psk_process_3"),
|
||||||
|
(1, "aes_128_ctr_encrypt;aes_128_eax_decrypt;eap_psk_process_3"),
|
||||||
|
(1, "aes_128_ctr_encrypt;aes_128_eax_encrypt;eap_psk_process_3") ]
|
||||||
for count, func in tests:
|
for count, func in tests:
|
||||||
with fail_test(dev[0], count, func):
|
with fail_test(dev[0], count, func):
|
||||||
dev[0].connect("eap-test", key_mgmt="WPA-EAP", scan_freq="2412",
|
dev[0].connect("eap-test", key_mgmt="WPA-EAP", scan_freq="2412",
|
||||||
@ -2861,15 +2867,8 @@ def test_eap_proto_psk_errors(dev, apdev):
|
|||||||
timeout=15)
|
timeout=15)
|
||||||
if ev is None:
|
if ev is None:
|
||||||
raise Exception("Timeout on EAP start")
|
raise Exception("Timeout on EAP start")
|
||||||
ok = False
|
wait_fail_trigger(dev[0], "GET_FAIL",
|
||||||
for j in range(10):
|
note="No failure seen for %d:%s" % (count, func))
|
||||||
state = dev[0].request('GET_FAIL')
|
|
||||||
if state.startswith('0:'):
|
|
||||||
ok = True
|
|
||||||
break
|
|
||||||
time.sleep(0.1)
|
|
||||||
if not ok:
|
|
||||||
raise Exception("No failure seen for %d:%s" % (count, func))
|
|
||||||
dev[0].request("REMOVE_NETWORK all")
|
dev[0].request("REMOVE_NETWORK all")
|
||||||
dev[0].wait_disconnected()
|
dev[0].wait_disconnected()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user