[PATCH 33/97] NAN: Add GTK cipher suite to NDP setup messages
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Tue Apr 28 13:05:34 PDT 2026
From: Avraham Stern <avraham.stern at intel.com>
When GTK is required, add the GTK cipher suite to the Cipher Suite
Information attribute (CSIA) in NDP setup M1 and M2 messages.
Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
src/nan/nan_sec.c | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/nan/nan_sec.c b/src/nan/nan_sec.c
index 4875fc14b7..768a8268b0 100644
--- a/src/nan/nan_sec.c
+++ b/src/nan/nan_sec.c
@@ -788,7 +788,8 @@ static int nan_sec_add_m1_attrs(struct nan_data *nan, struct nan_peer *peer,
{
struct nan_ndp_sec *ndp_sec = &peer->ndp_setup.sec;
struct wpa_eapol_key *key;
- struct nan_cipher_suite cs;
+ struct nan_cipher_suite cs[2];
+ size_t cs_len = 1;
u16 info;
size_t key_len = sizeof(struct wpa_eapol_key) + 2;
int ret;
@@ -817,9 +818,16 @@ static int nan_sec_add_m1_attrs(struct nan_data *nan, struct nan_peer *peer,
}
/* Cipher suite information */
- cs.csid = ndp_sec->i_csid;
- cs.instance_id = ndp_sec->i_instance_id;
- nan_add_csia(buf, ndp_sec->i_capab, 1, &cs);
+ cs[0].csid = ndp_sec->i_csid;
+ cs[0].instance_id = ndp_sec->i_instance_id;
+
+ if (ndp_sec->local_gtk.csid != NAN_CS_NONE) {
+ cs[1].csid = ndp_sec->local_gtk.csid;
+ cs[1].instance_id = ndp_sec->i_instance_id;
+ cs_len++;
+ }
+
+ nan_add_csia(buf, ndp_sec->i_capab, cs_len, cs);
/* Security context information */
wpabuf_put_u8(buf, NAN_ATTR_SCIA);
@@ -871,7 +879,9 @@ static int nan_sec_add_m2_attrs(struct nan_data *nan, struct nan_peer *peer,
{
struct nan_ndp_sec *ndp_sec = &peer->ndp_setup.sec;
struct wpa_eapol_key *key;
- struct nan_cipher_suite cs;
+ struct nan_cipher_suite cs[2];
+ size_t cs_len = 1;
+
u16 info;
size_t key_len;
@@ -884,9 +894,15 @@ static int nan_sec_add_m2_attrs(struct nan_data *nan, struct nan_peer *peer,
return -1;
/* Cipher suite information */
- cs.csid = ndp_sec->r_csid;
- cs.instance_id = ndp_sec->r_instance_id;
- nan_add_csia(buf, ndp_sec->r_capab, 1, &cs);
+ cs[0].csid = ndp_sec->r_csid;
+ cs[0].instance_id = ndp_sec->r_instance_id;
+
+ if (ndp_sec->local_gtk.csid != NAN_CS_NONE) {
+ cs[1].csid = ndp_sec->local_gtk.csid;
+ cs[1].instance_id = ndp_sec->r_instance_id;
+ cs_len++;
+ }
+ nan_add_csia(buf, ndp_sec->r_capab, cs_len, cs);
/* Security context information */
wpabuf_put_u8(buf, NAN_ATTR_SCIA);
--
2.53.0
More information about the Hostap
mailing list