mbox series

[00/15] PMKSA support (SAE only)

Message ID 20241122151551.286355-1-prestwoj@gmail.com (mailing list archive)
Headers show
Series PMKSA support (SAE only) | expand

Message

James Prestwood Nov. 22, 2024, 3:15 p.m. UTC
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