96ab7529c1
Add test cases for MBSSID functionality with EMA. Add helper functions to create the configuration file, start hostapd instance and client association with the transmitting interface. he_ap_mbssid_open: 4 VAPs with open security in multiple BSSID configuration. The first interface transmits beacons and probe responses which include the multiple BSSID element(s) with remaining profiles. he_ap_mbssid_same_security: 2 VAPs, all with SAE. In such a case the Multiple BSSID elements in management frames do not include RSN and RSNE elements as all non-transmitting profiles have exact same security configuration as the transmitting interface. he_ap_mbssid_mixed_security{1,2}: 8 VAPs with mixed security configurations (SAE, OWE, WPA2-PSK, open). he_ap_mbssid_mixed_security1: Transmitting interface uses SAE. In this case the non-transmitting profiles will include non inheritance element (IEEE Std 802.11-2020, 9.4.2.240) wherever the security differs from the transmitting profile. he_ap_mbssid_mixed_security2: Transmitting profile is open hence no need for the non inheritance elements. Instead each non-transmitting profile includes RSN, RSNE if applicable. he_ap_ema: Enhanced multi-BSS advertisements (EMA) with 8 VAPs all with SAE configuration. Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com> |
||
---|---|---|
.. | ||
build | ||
fuzzing | ||
hwsim | ||
remote | ||
.gitignore | ||
cipher-and-key-mgmt-testing.txt | ||
Makefile | ||
README | ||
test-aes.c | ||
test-base64.c | ||
test-https.c | ||
test-https_server.c | ||
test-list.c | ||
test-md4.c | ||
test-milenage.c | ||
test-rc4.c | ||
test-rsa-sig-ver.c | ||
test-sha1.c | ||
test-sha256.c | ||
test-x509v3.c | ||
test_x509v3_nist.sh | ||
test_x509v3_nist2.sh |
hostap.git test tools --------------------- The tests directory with its subdirectories contain number of tools used for testing wpa_supplicant and hostapd implementations. hwsim directory contains the test setup for full system testing of wpa_supplicant and hostapd with a simulated radio (mac80211_hwsim). See hwsim/READM and hwsim/vm/README for more details. Build testing ------------- wpa_supplicant and hostapd support number of build option combinations. The test scripts in the build subdirectory can be used to verify that various combinations do not break the builds. More configuration examples can be added there (build-{hostapd,wpa_supplicant}-*.config) to get them included in test builds. # Example cd build ./run-build-tests.h Fuzz testing ------------ Newer fuzz testing tools are under the fuzzing directory. See fuzzing/README for more details on them. The following text describes the older fuzz testing tools that are subject to removal once the same newer tools have the same coverage available. Number of the test tools here can be used for fuzz testing with tools like American fuzzy lop (afl-fuzz) that are designed to modify an external file for program input. ap-mgmt-fuzzer, eapol-fuzzer, test-eapol, test-json, test-tls, and test-x509 are examples of such tools that expose hostap.git module functionality with input from a file specified on the command line. Here are some examples of how fuzzing can be performed: ##### JSON parser make clean CC=afl-gcc make test-json mkdir json-examples cat > json-examples/1.json <<EOF {"a":[[]],"b":1,"c":"q","d":{"e":[{}]}} EOF afl-fuzz -i json-examples -o json-findings -- $PWD/test-json @@ Alternatively, using libFuzzer from LLVM: make clean make test-json LIBFUZZER=y mkdir json-examples cat > json-examples/1.json <<EOF {"a":[[]],"b":1,"c":"q","d":{"e":[{}]}} EOF ./test-json json-examples ##### EAPOL-Key Supplicant make clean CC=afl-gcc make test-eapol TEST_FUZZ=y mkdir eapol-auth-examples ./test-eapol auth write eapol-auth-examples/auth.msg afl-fuzz -i eapol-auth-examples -o eapol-auth-findings -- $PWD/test-eapol auth read @@ ##### EAPOL-Key Authenticator make clean CC=afl-gcc make test-eapol TEST_FUZZ=y mkdir eapol-supp-examples ./test-eapol supp write eapol-supp-examples/supp.msg afl-fuzz -i eapol-supp-examples -o eapol-supp-findings -- $PWD/test-eapol supp read @@ ##### TLS client make clean CC=afl-gcc make test-tls TEST_FUZZ=y mkdir tls-server-examples ./test-tls server write tls-server-examples/server.msg afl-fuzz -i tls-server-examples -o tls-server-findings -- $PWD/test-tls server read @@ ##### TLS server make clean CC=afl-gcc make test-tls TEST_FUZZ=y mkdir tls-client-examples ./test-tls client write tls-client-examples/client.msg afl-fuzz -i tls-client-examples -o tls-client-findings -- $PWD/test-tls client read @@ ##### AP management frame processing cd ap-mgmt-fuzzer make clean CC=afl-gcc make mkdir multi-examples cp multi.dat multi-examples afl-fuzz -i multi-examples -o multi-findings -- $PWD/ap-mgmt-fuzzer -m @@ ##### EAPOL-Key Supplicant (separate) cd eapol-fuzzer make clean CC=afl-gcc make mkdir eapol-examples cp *.dat eapol-examples afl-fuzz -i eapol-examples -o eapol-findings -- $PWD/eapol-fuzzer @@ ##### P2P cd p2p-fuzzer make clean CC=afl-gcc make mkdir p2p-proberesp-examples cp proberesp*.dat p2p-proberesp-examples afl-fuzz -i p2p-proberesp-examples -o p2p-proberesp-findings -- $PWD/p2p-fuzzer proberesp @@ mkdir p2p-action-examples cp go*.dat inv*.dat p2ps*.dat p2p-action-examples afl-fuzz -i p2p-action-examples -o p2p-action-findings -- $PWD/p2p-fuzzer action @@ ##### WNM cd wnm-fuzzer make clean CC=afl-gcc make mkdir wnm-examples cp *.dat wnm-examples afl-fuzz -i wnm-examples -o wnm-findings -- $PWD/wnm-fuzzer @@