[PATCH 00/15] PMKSA support (SAE only)

James Prestwood
2024-11-22T15:15:58Z

This adds support for PMKSA-based connections. For now only SAE and
SAE-FT are supported. This was done for a few reasons:
- PMKSA with WPA2 doesn't make a whole lot of sense. There is no
real benefit to using PMKSA over full association.
- PMKSA is required by the WiFi Alliance for WPA3 certificaion

Missing features include:
- 802.1x support, this may be added at a later date.
- Filesystem storage of PMKSA caches. For now this just hasn't
been implemented.

Denis Kenzior (4):
pmksa: Add skeleton
unit: Add basic pmksa test
pmksa: Add debugging
handshake: Add pmksa setter & stealer

James Prestwood (11):
handshake: add ref counting to handshake_state
unit: update use of handshake_state with ref/unref
auto-t: always initialize StationDebug in Device class
auto-t: add pmksa_flush() to hostapd module
auto-t: update testSAE to disable PMKSA
handshake: add handshake_state_remove_pmksa
netdev: add support to use PMKSA over SAE if available
station: hold reference to handshake object
station: support PMKSA connections
auto-t: add PMKSA tests
doc: document DisablePMKSA option

.gitignore | 1 +
Makefile.am | 18 +-
autotests/testPMKSA-SAE/connection_test.py | 114 ++++++++++
autotests/testPMKSA-SAE/hw.conf | 7 +
autotests/testPMKSA-SAE/ssidSAE.conf | 12 ++
autotests/testSAE-roam/connection_test.py | 60 +++++-
autotests/testSAE/main.conf | 3 +
autotests/util/hostapd.py | 4 +
autotests/util/iwd.py | 4 +-
src/adhoc.c | 4 +-
src/ap.c | 2 +-
src/handshake.c | 105 ++++++++-
src/handshake.h | 21 +-
src/iwd.config.rst | 5 +
src/netdev.c | 31 ++-
src/p2p.c | 2 +-
src/pmksa.c | 235 +++++++++++++++++++++
src/pmksa.h | 46 ++++
src/station.c | 90 +++++++-
src/wsc.c | 2 +-
unit/test-eapol.c | 38 ++--
unit/test-pmksa.c | 164 ++++++++++++++
unit/test-sae.c | 15 +-
unit/test-wsc.c | 10 +-
24 files changed, 942 insertions(+), 51 deletions(-)
create mode 100644 autotests/testPMKSA-SAE/connection_test.py
create mode 100644 autotests/testPMKSA-SAE/hw.conf
create mode 100644 autotests/testPMKSA-SAE/ssidSAE.conf
create mode 100644 src/pmksa.c
create mode 100644 src/pmksa.h
create mode 100644 unit/test-pmksa.c

--
2.34.1