[PATCH 00/21] Control Integrity Protocol (CIP) support
Benjamin Berg
benjamin at sipsolutions.net
Tue Oct 27 06:16:46 PDT 2026
From: Benjamin Berg <benjamin.berg at intel.com>
Hi,
sorry for not posting this a bit earlier.
This patchset adds support for the Control Integrity Protocol (CIP) to
both wpa_supplicant and hostap. When enabled, the AP will have a CIGTK
(which is shared between non-TX access points as well as different
MBSSIDs). In addition, the pairwise key with the station will be used
for control frame protection.
Tests are added to verify that the keys are properly installed. While
hwsim announces support for CIP, it does not actually do anything with
it as no protected control frames will ever be transmitted.
The MBSSID test is also extended to verify that beacon loss occurs when
there is a BIGTK mismatch. The hwsim driver is affected by a bug in the
kernel that will cause this test to fail until the issue is fixed there.
Note though that real hardware should not be affected as invalid beacons
will be detected by the hardware already.
Benjamin
Benjamin Berg (21):
common: Add offsetof and offsetofend macros
common: Add *_get_bits inline functions
[BUGFIX] AP: Pass STA flags as 64bit integer
driver: Add Control Integrity Protocol APIs
nl80211: Control Integrity Protocol support information
nl80211: Handle CIGTK and CIP for stations and association
wpa_supplicant: Add helper to check for CIP support
WPA: Add CIGTK handling and installation support
WPA: Include CIP in RSNX capabilities when enabled
common: Add parsing for CIP Capabilities element
wpa_supplicant: Add CIP support
AP: wpa_auth: Detangle the BIGTK installation logic a bit
AP: WPA: Add CIGTK handling for CIP
AP: Retrieve CIP Capabilities and add helpers
AP: Add CIP handling in association flow
AP: Add CIP support
AP: Also reset CIPN when receiving the RESET_PN command
tests: Extend HE MBSSID test to check BIGTK matches
tests: Extend HE MBSSID test with BIGTK only on non-TX BSS
tests: Add MBSSID test verifying beacon loss if MIC is incorrect
tests: Add CIP tests
hostapd/config_file.c | 2 +
hostapd/ctrl_iface.c | 26 +++
hostapd/main.c | 10 ++
src/ap/ap_config.c | 5 +
src/ap/ap_config.h | 1 +
src/ap/ap_drv_ops.c | 25 ++-
src/ap/ap_drv_ops.h | 7 +-
src/ap/beacon.c | 4 +
src/ap/drv_callbacks.c | 5 +
src/ap/hostapd.c | 11 ++
src/ap/hostapd.h | 4 +
src/ap/ieee802_11.c | 48 +++++-
src/ap/ieee802_11.h | 3 +
src/ap/ieee802_11_shared.c | 3 +
src/ap/sta_info.c | 7 +-
src/ap/sta_info.h | 2 +
src/ap/wpa_auth.c | 262 +++++++++++++++++++++++------
src/ap/wpa_auth.h | 9 +-
src/ap/wpa_auth_ft.c | 67 ++++++++
src/ap/wpa_auth_glue.c | 10 ++
src/ap/wpa_auth_i.h | 6 +
src/ap/wpa_auth_ie.c | 15 ++
src/common/defs.h | 6 +-
src/common/ieee802_11_common.c | 8 +
src/common/ieee802_11_common.h | 2 +
src/common/ieee802_11_defs.h | 4 +
src/common/wpa_common.c | 46 +++++
src/common/wpa_common.h | 37 ++++
src/drivers/driver.h | 18 ++
src/drivers/driver_nl80211.c | 56 +++++-
src/drivers/driver_nl80211.h | 2 +
src/drivers/driver_nl80211_capa.c | 12 ++
src/rsn_supp/wpa.c | 227 +++++++++++++++++++++++++
src/rsn_supp/wpa.h | 4 +
src/rsn_supp/wpa_ft.c | 60 ++++++-
src/rsn_supp/wpa_i.h | 3 +
src/rsn_supp/wpa_ie.c | 3 +
src/utils/common.h | 30 ++++
src/utils/list.h | 6 +-
tests/hwsim/test_cip.py | 243 ++++++++++++++++++++++++++
tests/hwsim/test_he_mbssid.py | 113 ++++++++++++-
tests/hwsim/wpasupplicant.py | 3 +-
wpa_supplicant/config.c | 1 +
wpa_supplicant/config_file.c | 1 +
wpa_supplicant/config_ssid.h | 8 +
wpa_supplicant/ctrl_iface.c | 7 +
wpa_supplicant/driver_i.h | 21 +++
wpa_supplicant/pasn_supplicant.c | 5 +
wpa_supplicant/sme.c | 2 +
wpa_supplicant/wnm_sta.c | 8 +
wpa_supplicant/wpa_cli.c | 1 +
wpa_supplicant/wpa_supplicant.c | 17 ++
wpa_supplicant/wpa_supplicant.conf | 6 +
wpa_supplicant/wpa_supplicant_i.h | 1 +
54 files changed, 1411 insertions(+), 82 deletions(-)
create mode 100644 tests/hwsim/test_cip.py
--
2.56.0
More information about the Hostap
mailing list