[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