feat: wi-fi - join WPA2/WPA3-PSK networks and carry traffic like ethernet
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Host-side tests for the Wi-Fi crypto and the WPA supplicant.
|
||||
#
|
||||
# These compile the real kernel sources (Libraries/Crypto.cpp and
|
||||
# Drivers/Net/Wifi/Wpa.cpp) for the host against the small shim in shim/, so
|
||||
# what is exercised is the code that ships, not a copy of it.
|
||||
#
|
||||
# Requires: g++ with C++20, python3 with the `cryptography` package.
|
||||
#
|
||||
# Copyright (c) 2026 Daniel Hammer
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
root="$(cd "$here/../.." && pwd)"
|
||||
src="$root/kernel/src"
|
||||
out="$(mktemp -d)"
|
||||
trap 'rm -rf "$out"' EXIT
|
||||
|
||||
CXX="${CXX:-g++}"
|
||||
CXXFLAGS="-O1 -std=c++20 -Wall -I$here/shim -I$src"
|
||||
|
||||
echo "== crypto primitives against published vectors =="
|
||||
$CXX $CXXFLAGS -o "$out/crypto_vectors" \
|
||||
"$here/crypto_vectors.cpp" "$src/Libraries/Crypto.cpp"
|
||||
"$out/crypto_vectors"
|
||||
|
||||
echo
|
||||
echo "== supplicant against an independent authenticator =="
|
||||
$CXX $CXXFLAGS -o "$out/supplicant" \
|
||||
"$here/supplicant_harness.cpp" \
|
||||
"$src/Drivers/Net/Wifi/Wpa.cpp" "$src/Libraries/Crypto.cpp"
|
||||
|
||||
python3 "$here/ap_handshake.py" "$out/supplicant"
|
||||
python3 "$here/ap_rekey_and_rsn.py" "$out/supplicant"
|
||||
|
||||
echo
|
||||
echo "== MLME and data path against a simulated access point =="
|
||||
$CXX $CXXFLAGS -o "$out/mlme" \
|
||||
"$here/mlme_harness.cpp" \
|
||||
"$src/Drivers/Net/Wifi/IwxConnect.cpp" \
|
||||
"$src/Drivers/Net/Wifi/Wpa.cpp" "$src/Libraries/Crypto.cpp"
|
||||
|
||||
python3 "$here/ap_mlme.py" "$out/mlme"
|
||||
|
||||
echo
|
||||
echo "All Wi-Fi host tests passed."
|
||||
Reference in New Issue
Block a user