mbox series

[v3,00/25] Add support for P2P2

Message ID 1722850403-8852-1-git-send-email-quic_shivbara@quicinc.com
Headers show
Series Add support for P2P2 | expand

Message

Shivani Baranwal Aug. 5, 2024, 9:32 a.m. UTC
Implementation to support the P2P2 discovery and PASN pairing,
join and verification.

Shivani Baranwal (25):
  NAN: Option to offload NAN DE for USD into the driver
  P2P: Allow P2P IE to be added into NAN SDFs
  P2P: Add PCEA and PBMA attributes to P2P2 IE of NAN SDFs
  P2P: Add DIRA attributes to P2P2 IE of NAN SDFs
  P2P: Add config support to fetch Device Identity key
  P2P: Add freq list to subscriber to search for publisher on mutli
    channels
  P2P: Allow to process Element container attr from NAN SDFs
  P2P: Cleanup of provision discovery req and resp processing
  P2P: Add bootstrapping support with pd frames
  P2P: Notify bootstrapping request and completed events
  WPA: Add support for KEK derivation in PTK
  Define PMKSA helper functions for PASN initiator and responder
  P2P: Cleanup of go-negotiation and invitation processing
  P2P: Add support for go negotiation action wrapper format for p2p2
  P2P: Encapsulate P2P2 vendor IE with size more than 255 bytes
  P2P: Add support for GO negotiation wrapped in PASN auth frame
  p2p: Add support for p2p2 set apis
  Add p2p2 support for group formation on successful negotiation
  p2p: Add support for Invitation using pairing verification
  P2P: Add P2P2 support for autogo and client join
  P2P: Add device identity block to p2p_supplicant.conf
  P2P: Add support to validate DIRA and configure PMK
  P2P: Add support to store indentity key in conf file
  P2P: Add support to get PASN PTK
  P2P: Add support for Assited DFS for P2P2 GO in 5GHz

 hostapd/ctrl_iface.c                        |   16 +-
 src/ap/ap_drv_ops.c                         |   23 +
 src/ap/ap_drv_ops.h                         |    5 +
 src/ap/hostapd.c                            |   15 +-
 src/ap/hostapd.h                            |    3 +
 src/ap/hw_features.c                        |    3 +-
 src/ap/ieee802_11.c                         |   34 +-
 src/ap/ieee802_11.h                         |    2 +
 src/ap/nan_usd_ap.c                         |   10 +-
 src/ap/nan_usd_ap.h                         |    4 +-
 src/ap/wpa_auth.c                           |   18 +
 src/ap/wpa_auth.h                           |    3 +
 src/ap/wpa_auth_ie.c                        |   17 +
 src/common/common_module_tests.c            |    2 +-
 src/common/ieee802_11_common.c              |   23 +-
 src/common/ieee802_11_common.h              |    4 +
 src/common/ieee802_11_defs.h                |   48 +
 src/common/nan_de.c                         |   79 +-
 src/common/nan_de.h                         |   14 +-
 src/common/wpa_common.c                     |   22 +-
 src/common/wpa_common.h                     |    5 +-
 src/common/wpa_ctrl.h                       |    4 +
 src/drivers/driver.h                        |   77 ++
 src/p2p/p2p.c                               | 1482 ++++++++++++++++++++++++++-
 src/p2p/p2p.h                               |  332 +++++-
 src/p2p/p2p_build.c                         |  262 +++++
 src/p2p/p2p_go_neg.c                        |  372 +++++--
 src/p2p/p2p_group.c                         |   61 +-
 src/p2p/p2p_i.h                             |  224 +++-
 src/p2p/p2p_invitation.c                    |  161 ++-
 src/p2p/p2p_parse.c                         |   63 ++
 src/p2p/p2p_pd.c                            |  775 ++++++++++----
 src/p2p/p2p_utils.c                         |   50 +
 src/pasn/pasn_common.h                      |   34 +-
 src/pasn/pasn_initiator.c                   |  111 +-
 src/pasn/pasn_responder.c                   |   81 +-
 src/rsn_supp/wpa.c                          |   17 +
 src/rsn_supp/wpa.h                          |    2 +
 wpa_supplicant/ap.c                         |    1 +
 wpa_supplicant/config.c                     |  138 +++
 wpa_supplicant/config.h                     |   73 ++
 wpa_supplicant/config_file.c                |  104 +-
 wpa_supplicant/ctrl_iface.c                 |  154 ++-
 wpa_supplicant/dbus/dbus_new.c              |  107 ++
 wpa_supplicant/dbus/dbus_new.h              |   16 +
 wpa_supplicant/dbus/dbus_new_handlers_p2p.c |   12 +-
 wpa_supplicant/driver_i.h                   |   73 ++
 wpa_supplicant/events.c                     |   67 +-
 wpa_supplicant/nan_usd.c                    |   79 +-
 wpa_supplicant/nan_usd.h                    |    4 +-
 wpa_supplicant/notify.c                     |   12 +
 wpa_supplicant/notify.h                     |    4 +
 wpa_supplicant/p2p_supplicant.c             | 1131 ++++++++++++++++++--
 wpa_supplicant/p2p_supplicant.h             |   51 +-
 wpa_supplicant/pasn_supplicant.c            |    5 +
 wpa_supplicant/wpa_supplicant_i.h           |   15 +
 56 files changed, 5965 insertions(+), 539 deletions(-)

Comments

Jouni Malinen Aug. 27, 2024, 9:18 p.m. UTC | #1
On Mon, Aug 05, 2024 at 03:02:58PM +0530, Shivani Baranwal wrote:
> Implementation to support the P2P2 discovery and PASN pairing,
> join and verification.
> 
> Shivani Baranwal (25):
>   NAN: Option to offload NAN DE for USD into the driver
>   P2P: Allow P2P IE to be added into NAN SDFs
>   P2P: Add PCEA and PBMA attributes to P2P2 IE of NAN SDFs
>   P2P: Add DIRA attributes to P2P2 IE of NAN SDFs
>   P2P: Add config support to fetch Device Identity key
>   P2P: Add freq list to subscriber to search for publisher on mutli
>     channels
>   P2P: Allow to process Element container attr from NAN SDFs
>   P2P: Cleanup of provision discovery req and resp processing
>   P2P: Add bootstrapping support with pd frames
>   P2P: Notify bootstrapping request and completed events
>   WPA: Add support for KEK derivation in PTK
>   Define PMKSA helper functions for PASN initiator and responder
>   P2P: Cleanup of go-negotiation and invitation processing
>   P2P: Add support for go negotiation action wrapper format for p2p2
>   P2P: Encapsulate P2P2 vendor IE with size more than 255 bytes
>   P2P: Add support for GO negotiation wrapped in PASN auth frame
>   p2p: Add support for p2p2 set apis
>   Add p2p2 support for group formation on successful negotiation
>   p2p: Add support for Invitation using pairing verification
>   P2P: Add P2P2 support for autogo and client join
>   P2P: Add device identity block to p2p_supplicant.conf
>   P2P: Add support to validate DIRA and configure PMK
>   P2P: Add support to store indentity key in conf file
>   P2P: Add support to get PASN PTK
>   P2P: Add support for Assited DFS for P2P2 GO in 5GHz

Thanks, applied patches 1..9 with fixes and cleanup. In particular,
please note that I changed the format for wpa_supplicant configuration
parameters for DevIK to be more consistent with existing design to use a
single hex-encoded binary value instead of a string and length. There
were number of likely security issues with received message parsing
since the received buffer size was not validated before reading the
value (at least two instances for the cookie and I think I fixed
something else with a similar issue).

Patch 10 introduces new D-Bus signals. Those need to be documented in
doc/dbus.doxygen. Some of the later patches in the series included FIXME
comments that need to be addressed.