[PATCH 16/92] wpa_supplicant: Add PMKSA cache to NAN data
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Wed Apr 22 05:23:07 PDT 2026
From: Avraham Stern <avraham.stern at intel.com>
NAN pairing uses the PASN module which requires a PMKSA cache for
initiator and responder roles. Add the PMKSA cache to the NAN data.
Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
src/nan/nan.c | 16 ++++++++++++++++
src/nan/nan_i.h | 5 +++++
2 files changed, 21 insertions(+)
diff --git a/src/nan/nan.c b/src/nan/nan.c
index 3da56f4854..6bf9d5a21d 100644
--- a/src/nan/nan.c
+++ b/src/nan/nan.c
@@ -12,6 +12,7 @@
#include "common/ieee802_11_common.h"
#include "nan.h"
#include "nan_i.h"
+#include "pasn/pasn_common.h"
#define NAN_MAX_PEERS 32
#define NAN_MAX_NAF_LEN 1024
@@ -48,6 +49,17 @@ struct nan_data * nan_init(const struct nan_config *cfg)
return NULL;
}
+#ifdef CONFIG_PASN
+ nan->initiator_pmksa = pasn_initiator_pmksa_cache_init();
+ nan->responder_pmksa = pasn_responder_pmksa_cache_init();
+ if (!nan->initiator_pmksa || !nan->responder_pmksa) {
+ wpa_printf(MSG_DEBUG,
+ "NAN: Failed to initialize PASN PMKSA cache");
+ nan_deinit(nan);
+ return NULL;
+ }
+#endif /* CONFIG_PASN */
+
dl_list_init(&nan->peer_list);
wpa_printf(MSG_DEBUG, "NAN: Initialized");
@@ -164,6 +176,10 @@ void nan_deinit(struct nan_data *nan)
{
wpa_printf(MSG_DEBUG, "NAN: Deinit");
nan_peer_clear_all(nan);
+#ifdef CONFIG_PASN
+ pasn_initiator_pmksa_cache_deinit(nan->initiator_pmksa);
+ pasn_responder_pmksa_cache_deinit(nan->responder_pmksa);
+#endif /* CONFIG_PASN */
os_free(nan->cfg);
os_free(nan);
}
diff --git a/src/nan/nan_i.h b/src/nan/nan_i.h
index d917b48ffb..14eee57949 100644
--- a/src/nan/nan_i.h
+++ b/src/nan/nan_i.h
@@ -484,6 +484,8 @@ struct nan_peer {
* @cluster_id: Current cluster ID
* @nira_nonce: Nonce for NAN Identity Resolution attribute (NIRA)
* @nira_tag: Tag for NAN Identity Resolution attribute (NIRA)
+ * @initiator_pmksa: PMKSA cache for PASN-PMK authentication as an initiator
+ * @responder_pmksa: PMKSA cache for PASN-PMK authentication as a responder
*/
struct nan_data {
struct nan_config *cfg;
@@ -497,6 +499,9 @@ struct nan_data {
u8 nira_nonce[NAN_NIRA_NONCE_LEN];
u8 nira_tag[NAN_NIRA_TAG_LEN];
+
+ struct rsn_pmksa_cache *initiator_pmksa;
+ struct rsn_pmksa_cache *responder_pmksa;
};
struct nan_attrs_entry {
--
2.53.0
More information about the Hostap
mailing list