Lines Matching refs:data

46 static void eap_tls_state(struct eap_tls_data *data, int state)  in eap_tls_state()  argument
49 eap_tls_state_txt(data->state), in eap_tls_state()
51 data->state = state; in eap_tls_state()
53 tls_connection_remove_session(data->ssl.conn); in eap_tls_state()
57 static void eap_tls_valid_session(struct eap_sm *sm, struct eap_tls_data *data) in eap_tls_valid_session() argument
67 wpabuf_put_u8(buf, data->eap_type); in eap_tls_valid_session()
68 tls_connection_set_success_data(data->ssl.conn, buf); in eap_tls_valid_session()
74 struct eap_tls_data *data; in eap_tls_init() local
76 data = os_zalloc(sizeof(*data)); in eap_tls_init()
77 if (data == NULL) in eap_tls_init()
79 data->state = START; in eap_tls_init()
81 if (eap_server_tls_ssl_init(sm, &data->ssl, 1, EAP_TYPE_TLS)) { in eap_tls_init()
83 eap_tls_reset(sm, data); in eap_tls_init()
87 data->eap_type = EAP_TYPE_TLS; in eap_tls_init()
89 data->phase2 = sm->init_phase2; in eap_tls_init()
91 return data; in eap_tls_init()
98 struct eap_tls_data *data; in eap_unauth_tls_init() local
100 data = os_zalloc(sizeof(*data)); in eap_unauth_tls_init()
101 if (data == NULL) in eap_unauth_tls_init()
103 data->state = START; in eap_unauth_tls_init()
105 if (eap_server_tls_ssl_init(sm, &data->ssl, 0, EAP_UNAUTH_TLS_TYPE)) { in eap_unauth_tls_init()
107 eap_tls_reset(sm, data); in eap_unauth_tls_init()
111 data->eap_type = EAP_UNAUTH_TLS_TYPE; in eap_unauth_tls_init()
112 return data; in eap_unauth_tls_init()
120 struct eap_tls_data *data; in eap_wfa_unauth_tls_init() local
122 data = os_zalloc(sizeof(*data)); in eap_wfa_unauth_tls_init()
123 if (data == NULL) in eap_wfa_unauth_tls_init()
125 data->state = START; in eap_wfa_unauth_tls_init()
127 if (eap_server_tls_ssl_init(sm, &data->ssl, 0, in eap_wfa_unauth_tls_init()
130 eap_tls_reset(sm, data); in eap_wfa_unauth_tls_init()
134 data->eap_type = EAP_WFA_UNAUTH_TLS_TYPE; in eap_wfa_unauth_tls_init()
135 return data; in eap_wfa_unauth_tls_init()
142 struct eap_tls_data *data = priv; in eap_tls_reset() local
143 if (data == NULL) in eap_tls_reset()
145 eap_server_tls_ssl_deinit(sm, &data->ssl); in eap_tls_reset()
146 os_free(data); in eap_tls_reset()
151 struct eap_tls_data *data, u8 id) in eap_tls_build_start() argument
155 req = eap_tls_msg_alloc(data->eap_type, 1, EAP_CODE_REQUEST, id); in eap_tls_build_start()
159 eap_tls_state(data, FAILURE); in eap_tls_build_start()
165 eap_tls_state(data, CONTINUE); in eap_tls_build_start()
173 struct eap_tls_data *data = priv; in eap_tls_buildReq() local
176 if (data->ssl.state == FRAG_ACK) { in eap_tls_buildReq()
177 return eap_server_tls_build_ack(id, data->eap_type, 0); in eap_tls_buildReq()
180 if (data->ssl.state == WAIT_FRAG_ACK) { in eap_tls_buildReq()
181 res = eap_server_tls_build_msg(&data->ssl, data->eap_type, 0, in eap_tls_buildReq()
186 switch (data->state) { in eap_tls_buildReq()
188 return eap_tls_build_start(sm, data, id); in eap_tls_buildReq()
191 data->ssl.conn)) in eap_tls_buildReq()
192 data->established = 1; in eap_tls_buildReq()
196 __func__, data->state); in eap_tls_buildReq()
200 res = eap_server_tls_build_msg(&data->ssl, data->eap_type, 0, id); in eap_tls_buildReq()
203 if (data->established && data->ssl.state != WAIT_FRAG_ACK) { in eap_tls_buildReq()
207 eap_tls_state(data, SUCCESS); in eap_tls_buildReq()
208 eap_tls_valid_session(sm, data); in eap_tls_buildReq()
216 data->phase2) < 0) in eap_tls_buildReq()
232 struct eap_tls_data *data = priv; in eap_tls_check() local
236 if (data->eap_type == EAP_UNAUTH_TLS_TYPE) in eap_tls_check()
240 else if (data->eap_type == EAP_WFA_UNAUTH_TLS_TYPE) in eap_tls_check()
245 pos = eap_hdr_validate(EAP_VENDOR_IETF, data->eap_type, in eap_tls_check()
259 struct eap_tls_data *data = priv; in eap_tls_process_msg() local
260 if (data->state == SUCCESS && wpabuf_len(data->ssl.tls_in) == 0) { in eap_tls_process_msg()
265 if (eap_server_tls_phase1(sm, &data->ssl) < 0) { in eap_tls_process_msg()
266 eap_tls_state(data, FAILURE); in eap_tls_process_msg()
275 struct eap_tls_data *data = priv; in eap_tls_process() local
279 if (eap_server_tls_process(sm, &data->ssl, respData, data, in eap_tls_process()
280 data->eap_type, NULL, eap_tls_process_msg) < in eap_tls_process()
282 eap_tls_state(data, FAILURE); in eap_tls_process()
286 if (!tls_connection_established(sm->cfg->ssl_ctx, data->ssl.conn) || in eap_tls_process()
287 !tls_connection_resumed(sm->cfg->ssl_ctx, data->ssl.conn)) in eap_tls_process()
290 buf = tls_connection_get_success_data(data->ssl.conn); in eap_tls_process()
294 eap_tls_state(data, FAILURE); in eap_tls_process()
299 if (*pos != data->eap_type) { in eap_tls_process()
303 eap_tls_state(data, FAILURE); in eap_tls_process()
310 if (data->ssl.tls_v13 && data->ssl.tls_out) { in eap_tls_process()
313 data->ssl.tls_out); in eap_tls_process()
317 eap_tls_state(data, SUCCESS); in eap_tls_process()
318 tls_connection_set_success_data_resumed(data->ssl.conn); in eap_tls_process()
326 struct eap_tls_data *data = priv; in eap_tls_isDone() local
327 return data->state == SUCCESS || data->state == FAILURE; in eap_tls_isDone()
333 struct eap_tls_data *data = priv; in eap_tls_getKey() local
340 if (data->state != SUCCESS) in eap_tls_getKey()
343 if (data->ssl.tls_v13) { in eap_tls_getKey()
350 eapKeyData = eap_server_tls_derive_key(sm, &data->ssl, label, in eap_tls_getKey()
368 struct eap_tls_data *data = priv; in eap_tls_get_emsk() local
375 if (data->state != SUCCESS) in eap_tls_get_emsk()
378 if (data->ssl.tls_v13) { in eap_tls_get_emsk()
385 eapKeyData = eap_server_tls_derive_key(sm, &data->ssl, label, in eap_tls_get_emsk()
411 struct eap_tls_data *data = priv; in eap_tls_isSuccess() local
412 return data->state == SUCCESS; in eap_tls_isSuccess()
418 struct eap_tls_data *data = priv; in eap_tls_get_session_id() local
420 if (data->state != SUCCESS) in eap_tls_get_session_id()
423 return eap_server_tls_derive_session_id(sm, &data->ssl, EAP_TYPE_TLS, in eap_tls_get_session_id()