diff mbox series

[v3,04/13] handshake: add setters for authenticator/supplicant_fte

Message ID 20231206201802.2139649-4-prestwoj@gmail.com (mailing list archive)
State New
Headers show
Series [v3,01/13] auto-t: add explicit stop() to IWD class | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
prestwoj/iwd-ci-gitlint success GitLint

Commit Message

James Prestwood Dec. 6, 2023, 8:17 p.m. UTC
In general only the authenticator FTE is used/validated but with
some FT refactoring coming there needs to be a way to build the
supplicants FTE into the handshake object. Because of this there
needs to be separate FTE buffers for both the authenticator and
supplicant.
---
 src/handshake.c | 14 ++++++++++++++
 src/handshake.h |  7 +++++++
 2 files changed, 21 insertions(+)
diff mbox series

Patch

diff --git a/src/handshake.c b/src/handshake.c
index 1c5ed2c9..f35da9b1 100644
--- a/src/handshake.c
+++ b/src/handshake.c
@@ -123,6 +123,8 @@  void handshake_state_free(struct handshake_state *s)
 	l_free(s->supplicant_rsnxe);
 	l_free(s->mde);
 	l_free(s->fte);
+	l_free(s->authenticator_fte);
+	l_free(s->supplicant_fte);
 	l_free(s->fils_ip_req_ie);
 	l_free(s->fils_ip_resp_ie);
 	l_free(s->vendor_ies);
@@ -313,6 +315,18 @@  void handshake_state_set_fte(struct handshake_state *s, const uint8_t *fte)
 	replace_ie(&s->fte, fte);
 }
 
+void handshake_state_set_authenticator_fte(struct handshake_state *s,
+						const uint8_t *fte)
+{
+	replace_ie(&s->authenticator_fte, fte);
+}
+
+void handshake_state_set_supplicant_fte(struct handshake_state *s,
+						const uint8_t *fte)
+{
+	replace_ie(&s->supplicant_fte, fte);
+}
+
 void handshake_state_set_vendor_ies(struct handshake_state *s,
 					const struct iovec *iov,
 					size_t n_iovs)
diff --git a/src/handshake.h b/src/handshake.h
index 815eb44f..e6344048 100644
--- a/src/handshake.h
+++ b/src/handshake.h
@@ -104,6 +104,8 @@  struct handshake_state {
 	uint8_t *supplicant_rsnxe;
 	uint8_t *mde;
 	uint8_t *fte;
+	uint8_t *authenticator_fte;
+	uint8_t *supplicant_fte;
 	uint8_t *vendor_ies;
 	size_t vendor_ies_len;
 	enum ie_rsn_cipher_suite pairwise_cipher;
@@ -215,6 +217,11 @@  void handshake_state_set_ssid(struct handshake_state *s,
 void handshake_state_set_mde(struct handshake_state *s,
 					const uint8_t *mde);
 void handshake_state_set_fte(struct handshake_state *s, const uint8_t *fte);
+void handshake_state_set_authenticator_fte(struct handshake_state *s,
+						const uint8_t *fte);
+void handshake_state_set_supplicant_fte(struct handshake_state *s,
+						const uint8_t *fte);
+
 void handshake_state_set_vendor_ies(struct handshake_state *s,
 					const struct iovec *iov,
 					size_t n_iovs);