diff --git a/src/handshake.c b/src/handshake.c index cf9c18d5..07e0657d 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 3b51cb34..5dd225e8 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);