- Set internal NAN params based on the user configurable Platform
- On a secured NDP the responder could not derive keys
(passphrase/credential mismatch); reject cleanly and
fire ndp_terminated/ndp_confirm(REJECTED) on every
teardown path so the host frees the NDP-ID.
- Tear down the old NDP when the same peer re-initiates with
a new M1, instead of rejecting and leaking the NDL.
mbedtls 4.x is PSA-first: CONFIG_MBEDTLS_SHA256_C now maps to
PSA_WANT_ALG_SHA_256, and on ESP targets the hardware SHA accelerator
serves SHA-256 through PSA, leaving the legacy MBEDTLS_SHA256_C builtin
macro undefined. The inner guard on pbkdf2_sha256 was gating on bare
MBEDTLS_SHA256_C, so the function was compiled out and NAN ND-PMK
derivation (nan_derive_nd_pmk_from_passphrase) failed to link.
Guard on (MBEDTLS_SHA256_C || PSA_WANT_ALG_SHA_256) to match the idiom
already used elsewhere in the supplicant mbedtls port (tls_mbedtls.c),
covering both the legacy builtin and PSA-provided SHA-256.
The NAN key-type selectors are defined by the blob in esp_wifi_driver.h
(nan_key_type_t), which nan_i.h already includes. Add the group-integrity
key types NAN_KEY_ND_IGTK (3) and NAN_KEY_ND_BIGTK (4) there to match the
blob, and drop the duplicate host definitions from nan_i.h so a single
shared enum is used. Resolves the review request to declare these in
nan_key_type_t and avoids redefining the typedef.
- Add nira attr and verification for pasn auth frames
- Refine key clearing and pairing complete logic for pasn verify
- Add NIRA own-service resolution, cached NIK checks, and dynamic
pairing IE construction for bootstrap vs verify paths.
- Replace NAN bootstrap events by private callbacks
Replace nik/nik_valid in wifi_nan_sync_config_t with reset_current_nvs_creds
and use_nvs_for_caching. On NAN start, load the saved own NIK and peer
credentials from NVS (or erase them when reset is requested); generate and
persist a fresh own NIK only when none is valid and caching is enabled.
PASN reuses the SAE module (PWE/crypto and the comeback-token mechanism),
so define CONFIG_SAE whenever SoftAP-SAE or PASN is enabled. This fixes the
undefined references to check_comeback_token()/auth_build_token_req() when
SOFTAP config is disabled.
- fix PASN initiator pmksa_cache_get() usage with the extra argument
- Add attributes to secured NDP frames according to Specs
- Resolve M2 MIC verification failure in secured datapath
1) Add support for MAC randomization in Active scan and connect
2) Add support for randomizaton of sequence numbers
3) Add support for randomization of dialog token for GAS frames
- Route NAN pairing bootstrap via NPBA receive path
- extend datapath_req wait time to fit secured M1-M4 handshake
- Plug ND-PMK derived from KDK into NDP
- prefers paired-peer cached ND-PMK (from PASN pairing complete), when available
- carry ND-PMK metadata in pairing install callback
- Extend PASN key-installed callback payload to include role, mapped NDP CSID
and derived ND-PMK so the NAN layer can populate paired-peer security cache.
Co-authored-by: Akshat Agrawal <akshat.agrawal@espressif.com>
Co-authored-by: Sarvesh Bodakhe <sarvesh.bodakhe@espressif.com>
- Add container struct for internal extra params for follow-up
- Support for parsing Shared Key Desc in Pairing follow-up
- Implement NAN Pairing API's with required parameters
- In KeyData set cipher_ver to 0, Key Info to 0x12C8
(AKM-defined | Pairwise | Install | ACK |
Secure | Encrypted Key Data) for iOS compatibility
- Move NAN PASN into esp_nan_supplicant.c, move declarations
to esp_private/esp_supp_nan.h
- Align PASN/ND-PMK derivation with hostap
Co-authored-by: Sajia <sajia.ali@espressif.com>
Co-authored-by: Akshat Agrawal <akshat.agrawal@espressif.com>
Co-authored-by: Sarvesh Bodakhe <sarvesh.bodakhe@espressif.com>
- Create pasn module from upstream. Changes till 1a791e9c
- Add ecdh prime len api to MbedTLS port
- Integrate nan and pasn modules for PIN code method
- Fix KCK length and add auth timeout
- Add NAN Pairing PASN support
Re-export the pbkdf2_sha256 declaration from sha256.h and add the
mbedTLS-backed implementation in crypto_mbedtls.c. NAN uses this for
ND-PMK derivation from a passphrase; the helper is also available for
any future caller that needs RFC 8018 PBKDF2 over SHA-256.
fix(esp_wifi): Fixed some issues in roaming app found using static analysis
Closes WIFIBUG-1836 and WIFIBUG-1842
See merge request espressif/esp-idf!47372
-Require STA DH IE for OWE associations.
- Send failures using Association Response (no silent deauth-only path).
- Include RSNE in OWE Association Response alongside DH Parameter IE.
- Check wpabuf_resize return values when building OWE Assoc Response IEs.
- Recognize OWE AKM in RSN IE when CONFIG_OWE_SOFTAP without CONFIG_OWE_STA.
- Docs: SoftAP OWE-only; no transition mode; trim misleading OPEN→OWE note.
- OWE: clear PRK on HKDF failure; wipe PMK with bin_clear_free; reuse PMK
buffer when size matches.
- 4-way handshake: drop extra OWE check so WPA2-PSK can try the next passphrase.
- SoftAP: simpler OWE key setup and assoc response IEs (skip useless RSNXE step).
1) Add Support for OWE in wifi driver for SoftAP mode.
2) Add some changes in 4-Way Handshake to support OWE in softAP.
3) Add some restructuring changes.