[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