aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Prestwood <prestwoj@gmail.com>2023-12-06 12:17:53 -0800
committerDenis Kenzior <denkenz@gmail.com>2023-12-13 10:07:28 -0600
commita7fe6a9c128958f245cf57a541d30fa097d6a490 (patch)
treebdbeaa109a27bf4891bec6f891f38ce9122083aa
parentd756e60f2471a01a0391616f3b2de62cd18df53e (diff)
handshake: add setters for authenticator/supplicant_fte
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.
-rw-r--r--src/handshake.c14
-rw-r--r--src/handshake.h7
2 files changed, 21 insertions, 0 deletions
diff --git a/src/handshake.c b/src/handshake.c
index cf9c18d53..07e0657d0 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);
@@ -319,6 +321,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 3b51cb347..5dd225e88 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;
@@ -216,6 +218,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);