static void eap_fast_process(struct eap_sm *sm, void *priv, struct wpabuf *respData) { struct eap_fast_data *data = priv; if (eap_server_tls_process(sm, &data->ssl, respData, data, EAP_TYPE_FAST, eap_fast_process_version, eap_fast_process_msg) < 0) eap_fast_state(data, FAILURE); }
static void eap_tls_process(struct eap_sm *sm, void *priv, struct wpabuf *respData) { struct eap_tls_data *data = priv; if (eap_server_tls_process(sm, &data->ssl, respData, data, EAP_TYPE_TLS, NULL, eap_tls_process_msg) < 0) eap_tls_state(data, FAILURE); }
static void eap_tls_process(struct eap_sm *sm, void *priv, struct wpabuf *respData) { struct eap_tls_data *data = priv; const struct wpabuf *buf; const u8 *pos; if (eap_server_tls_process(sm, &data->ssl, respData, data, data->eap_type, NULL, eap_tls_process_msg) < 0) { eap_tls_state(data, FAILURE); return; } if (!tls_connection_established(sm->ssl_ctx, data->ssl.conn) || !tls_connection_resumed(sm->ssl_ctx, data->ssl.conn)) return; buf = tls_connection_get_success_data(data->ssl.conn); if (!buf || wpabuf_len(buf) < 1) { wpa_printf(MSG_DEBUG, "EAP-TLS: No success data in resumed session - reject attempt"); eap_tls_state(data, FAILURE); return; } pos = wpabuf_head(buf); if (*pos != data->eap_type) { wpa_printf(MSG_DEBUG, "EAP-TLS: Resumed session for another EAP type (%u) - reject attempt", *pos); eap_tls_state(data, FAILURE); return; } wpa_printf(MSG_DEBUG, "EAP-TLS: Resuming previous session"); eap_tls_state(data, SUCCESS); tls_connection_set_success_data_resumed(data->ssl.conn); }