]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
EAP-TLS peer: Allow NewSessionTicket after Client Finished with TLS v1.3
authorJouni Malinen <j@w1.fi>
Tue, 1 May 2018 14:51:34 +0000 (17:51 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 1 May 2018 14:51:34 +0000 (17:51 +0300)
The EAP session cannot be marked fully completed on sending Client
Finished with TLS v1.3 since the server may still send NewSessionTicket
before EAP-Success.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/eap_peer/eap_tls.c

index cda73f96354c3aa287bd484b86a6c948bf5f76ae..0cfcfed63f737f1ea87eeae9843eb85e642e5142 100644 (file)
@@ -180,8 +180,15 @@ static void eap_tls_success(struct eap_sm *sm, struct eap_tls_data *data,
                return;
        }
 
-       ret->methodState = METHOD_DONE;
-       ret->decision = DECISION_UNCOND_SUCC;
+       if (data->ssl.tls_v13) {
+               /* A possible NewSessionTicket may be received before
+                * EAP-Success, so need to allow it to be received. */
+               ret->methodState = METHOD_MAY_CONT;
+               ret->decision = DECISION_COND_SUCC;
+       } else {
+               ret->methodState = METHOD_DONE;
+               ret->decision = DECISION_UNCOND_SUCC;
+       }
 
        eap_tls_free_key(data);
        data->key_data = eap_peer_tls_derive_key(sm, &data->ssl,