[PATCH 57/92] NAN: Add set functions for NAN pairing configurations
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Wed Apr 22 05:23:48 PDT 2026
From: Avraham Stern <avraham.stern at intel.com>
Add an option to set the NAN pairing configurations.
Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
src/nan/nan.h | 4 ++++
src/nan/nan_pairing.c | 54 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+)
diff --git a/src/nan/nan.h b/src/nan/nan.h
index 47fbc1e067..4225b8fb78 100644
--- a/src/nan/nan.h
+++ b/src/nan/nan.h
@@ -735,6 +735,10 @@ int nan_pairing_pasn_auth_tx_status(struct nan_data *nan, const u8 *data,
size_t data_len, bool acked);
int nan_pairing_auth_rx(struct nan_data *nan_data,
const struct ieee80211_mgmt *mgmt, size_t len);
+int nan_pairing_set_pairing_setup(struct nan_data *nan_data, bool value);
+int nan_pairing_set_npk_caching(struct nan_data *nan_data, bool value);
+int nan_pairing_set_pairing_verification(struct nan_data *nan_data, bool value);
+int nan_pairing_set_cipher_suites(struct nan_data *nan_data, u32 value);
#else
static inline int nan_pairing_add_attrs(struct nan_data *nan_data,
struct wpabuf *buf)
diff --git a/src/nan/nan_pairing.c b/src/nan/nan_pairing.c
index b4c8fafd67..840044357f 100644
--- a/src/nan/nan_pairing.c
+++ b/src/nan/nan_pairing.c
@@ -1321,3 +1321,57 @@ fail:
wpabuf_free(key_data);
return ret;
}
+
+
+int nan_pairing_set_pairing_setup(struct nan_data *nan, bool value)
+{
+ wpa_printf(MSG_DEBUG, "NAN: SET: Pairing setup: %d -> %d",
+ nan->cfg->pairing_cfg.pairing_setup, value);
+ nan->cfg->pairing_cfg.pairing_setup = value;
+ return 0;
+}
+
+
+int nan_pairing_set_npk_caching(struct nan_data *nan, bool value)
+{
+ wpa_printf(MSG_DEBUG, "NAN: SET: NPK caching: %d -> %d",
+ nan->cfg->pairing_cfg.npk_caching, value);
+ nan->cfg->pairing_cfg.npk_caching = value;
+ return 0;
+}
+
+
+int nan_pairing_set_pairing_verification(struct nan_data *nan, bool value)
+{
+ wpa_printf(MSG_DEBUG, "NAN: SET: Pairing verification: %d -> %d",
+ nan->cfg->pairing_cfg.pairing_verification, value);
+
+ if (!nan->cfg->pairing_cfg.pairing_verification && value &&
+ nan_nira_get_tag_nonce(nan->cfg, nan->nira_nonce,
+ nan->nira_tag) < 0) {
+ wpa_printf(MSG_DEBUG,
+ "NAN: Failed to enable pairing verification");
+ return -1;
+ }
+
+ nan->cfg->pairing_cfg.pairing_verification = value;
+
+ return 0;
+}
+
+
+int nan_pairing_set_cipher_suites(struct nan_data *nan, u32 value)
+{
+ if (value & ~(NAN_PAIRING_PASN_128 | NAN_PAIRING_PASN_256)) {
+ wpa_printf(MSG_DEBUG,
+ "NAN: Pairing: Invalid cipher suites 0x%08x", value);
+ return -1;
+ }
+
+ wpa_printf(MSG_DEBUG,
+ "NAN: SET: Pairing cipher suites: 0x%08x -> 0x%08x",
+ nan->cfg->pairing_cfg.cipher_suites, value);
+
+ nan->cfg->pairing_cfg.cipher_suites = value;
+ return 0;
+}
--
2.53.0
More information about the Hostap
mailing list