EAP-PEAP server: Fix TLS 1.3 move to Phase 2 without a new session ticket
When a new session ticket is not issued to the peer, Phase 2 identity request need to be sent out as a response to the Finished message from the peer. Fix this to allow the TLS server to be configured to not send out a new session ticket when using TLS 1.3. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
10746875e2
commit
05406f7ae8
1 changed files with 18 additions and 0 deletions
|
@ -56,6 +56,10 @@ struct eap_peap_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static int eap_peap_phase2_init(struct eap_sm *sm, struct eap_peap_data *data,
|
||||||
|
int vendor, enum eap_type eap_type);
|
||||||
|
|
||||||
|
|
||||||
static const char * eap_peap_state_txt(int state)
|
static const char * eap_peap_state_txt(int state)
|
||||||
{
|
{
|
||||||
switch (state) {
|
switch (state) {
|
||||||
|
@ -558,10 +562,24 @@ static struct wpabuf * eap_peap_buildReq(struct eap_sm *sm, void *priv, u8 id)
|
||||||
wpa_printf(MSG_DEBUG, "EAP-PEAP: Phase1 done, "
|
wpa_printf(MSG_DEBUG, "EAP-PEAP: Phase1 done, "
|
||||||
"starting Phase2");
|
"starting Phase2");
|
||||||
eap_peap_state(data, PHASE2_START);
|
eap_peap_state(data, PHASE2_START);
|
||||||
|
if (data->ssl.tls_v13 && data->ssl.tls_out &&
|
||||||
|
wpabuf_len(data->ssl.tls_out) == 0) {
|
||||||
|
/* This can happen with TLS 1.3 when a new
|
||||||
|
* session ticket is not generated and the
|
||||||
|
* Finished message from the peer terminates
|
||||||
|
* Phase 1. */
|
||||||
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"EAP-PEAP: No pending data to send - move directly to Phase 2 ID query");
|
||||||
|
eap_peap_state(data, PHASE2_ID);
|
||||||
|
eap_peap_phase2_init(sm, data, EAP_VENDOR_IETF,
|
||||||
|
EAP_TYPE_IDENTITY);
|
||||||
|
goto phase2_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PHASE2_ID:
|
case PHASE2_ID:
|
||||||
case PHASE2_METHOD:
|
case PHASE2_METHOD:
|
||||||
|
phase2_id:
|
||||||
wpabuf_free(data->ssl.tls_out);
|
wpabuf_free(data->ssl.tls_out);
|
||||||
data->ssl.tls_out_pos = 0;
|
data->ssl.tls_out_pos = 0;
|
||||||
data->ssl.tls_out = eap_peap_build_phase2_req(sm, data, id);
|
data->ssl.tls_out = eap_peap_build_phase2_req(sm, data, id);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue