Lines Matching refs:data

54 static void eap_sake_state(struct eap_sake_data *data, int state)  in eap_sake_state()  argument
57 eap_sake_state_txt(data->state), in eap_sake_state()
59 data->state = state; in eap_sake_state()
65 struct eap_sake_data *data; in eap_sake_init() local
67 data = os_zalloc(sizeof(*data)); in eap_sake_init()
68 if (data == NULL) in eap_sake_init()
70 data->state = CHALLENGE; in eap_sake_init()
72 if (os_get_random(&data->session_id, 1)) { in eap_sake_init()
74 os_free(data); in eap_sake_init()
78 data->session_id); in eap_sake_init()
81 data->serverid = (u8 *) os_strdup("hostapd"); in eap_sake_init()
82 if (data->serverid) in eap_sake_init()
83 data->serverid_len = os_strlen((char *) data->serverid); in eap_sake_init()
85 return data; in eap_sake_init()
91 struct eap_sake_data *data = priv; in eap_sake_reset() local
92 os_free(data->serverid); in eap_sake_reset()
93 os_free(data->peerid); in eap_sake_reset()
94 os_free(data); in eap_sake_reset()
98 static struct wpabuf * eap_sake_build_msg(struct eap_sake_data *data, in eap_sake_build_msg() argument
117 sake->session_id = data->session_id; in eap_sake_build_msg()
125 struct eap_sake_data *data, in eap_sake_build_identity() argument
134 if (data->serverid) in eap_sake_build_identity()
135 plen += 2 + data->serverid_len; in eap_sake_build_identity()
136 msg = eap_sake_build_msg(data, id, plen, EAP_SAKE_SUBTYPE_IDENTITY); in eap_sake_build_identity()
138 data->state = FAILURE; in eap_sake_build_identity()
145 if (data->serverid) { in eap_sake_build_identity()
148 data->serverid, data->serverid_len); in eap_sake_build_identity()
156 struct eap_sake_data *data, in eap_sake_build_challenge() argument
164 if (random_get_bytes(data->rand_s, EAP_SAKE_RAND_LEN)) { in eap_sake_build_challenge()
166 data->state = FAILURE; in eap_sake_build_challenge()
170 data->rand_s, EAP_SAKE_RAND_LEN); in eap_sake_build_challenge()
173 if (data->serverid) in eap_sake_build_challenge()
174 plen += 2 + data->serverid_len; in eap_sake_build_challenge()
175 msg = eap_sake_build_msg(data, id, plen, EAP_SAKE_SUBTYPE_CHALLENGE); in eap_sake_build_challenge()
177 data->state = FAILURE; in eap_sake_build_challenge()
183 data->rand_s, EAP_SAKE_RAND_LEN); in eap_sake_build_challenge()
185 if (data->serverid) { in eap_sake_build_challenge()
188 data->serverid, data->serverid_len); in eap_sake_build_challenge()
196 struct eap_sake_data *data, in eap_sake_build_confirm() argument
204 msg = eap_sake_build_msg(data, id, 2 + EAP_SAKE_MIC_LEN, in eap_sake_build_confirm()
207 data->state = FAILURE; in eap_sake_build_confirm()
215 if (eap_sake_compute_mic(data->tek.auth, data->rand_s, data->rand_p, in eap_sake_build_confirm()
216 data->serverid, data->serverid_len, in eap_sake_build_confirm()
217 data->peerid, data->peerid_len, 0, in eap_sake_build_confirm()
221 data->state = FAILURE; in eap_sake_build_confirm()
232 struct eap_sake_data *data = priv; in eap_sake_buildReq() local
234 switch (data->state) { in eap_sake_buildReq()
236 return eap_sake_build_identity(sm, data, id); in eap_sake_buildReq()
238 return eap_sake_build_challenge(sm, data, id); in eap_sake_buildReq()
240 return eap_sake_build_confirm(sm, data, id); in eap_sake_buildReq()
243 data->state); in eap_sake_buildReq()
253 struct eap_sake_data *data = priv; in eap_sake_check() local
275 if (session_id != data->session_id) { in eap_sake_check()
277 session_id, data->session_id); in eap_sake_check()
283 if (data->state == IDENTITY && subtype == EAP_SAKE_SUBTYPE_IDENTITY) in eap_sake_check()
286 if (data->state == CHALLENGE && subtype == EAP_SAKE_SUBTYPE_CHALLENGE) in eap_sake_check()
289 if (data->state == CONFIRM && subtype == EAP_SAKE_SUBTYPE_CONFIRM) in eap_sake_check()
296 subtype, data->state); in eap_sake_check()
303 struct eap_sake_data *data, in eap_sake_process_identity() argument
307 if (data->state != IDENTITY) in eap_sake_process_identity()
312 eap_sake_state(data, CHALLENGE); in eap_sake_process_identity()
317 struct eap_sake_data *data, in eap_sake_process_challenge() argument
324 if (data->state != CHALLENGE) in eap_sake_process_challenge()
338 os_memcpy(data->rand_p, attr.rand_p, EAP_SAKE_RAND_LEN); in eap_sake_process_challenge()
340 os_free(data->peerid); in eap_sake_process_challenge()
341 data->peerid = NULL; in eap_sake_process_challenge()
342 data->peerid_len = 0; in eap_sake_process_challenge()
344 data->peerid = os_malloc(attr.peerid_len); in eap_sake_process_challenge()
345 if (data->peerid == NULL) in eap_sake_process_challenge()
347 os_memcpy(data->peerid, attr.peerid, attr.peerid_len); in eap_sake_process_challenge()
348 data->peerid_len = attr.peerid_len; in eap_sake_process_challenge()
356 data->state = FAILURE; in eap_sake_process_challenge()
361 data->rand_s, data->rand_p, in eap_sake_process_challenge()
362 (u8 *) &data->tek, data->msk, data->emsk); in eap_sake_process_challenge()
364 eap_sake_compute_mic(data->tek.auth, data->rand_s, data->rand_p, in eap_sake_process_challenge()
365 data->serverid, data->serverid_len, in eap_sake_process_challenge()
366 data->peerid, data->peerid_len, 1, in eap_sake_process_challenge()
371 eap_sake_state(data, FAILURE); in eap_sake_process_challenge()
375 eap_sake_state(data, CONFIRM); in eap_sake_process_challenge()
380 struct eap_sake_data *data, in eap_sake_process_confirm() argument
387 if (data->state != CONFIRM) in eap_sake_process_confirm()
401 eap_sake_compute_mic(data->tek.auth, data->rand_s, data->rand_p, in eap_sake_process_confirm()
402 data->serverid, data->serverid_len, in eap_sake_process_confirm()
403 data->peerid, data->peerid_len, 1, in eap_sake_process_confirm()
408 eap_sake_state(data, FAILURE); in eap_sake_process_confirm()
410 eap_sake_state(data, SUCCESS); in eap_sake_process_confirm()
415 struct eap_sake_data *data, in eap_sake_process_auth_reject() argument
420 eap_sake_state(data, FAILURE); in eap_sake_process_auth_reject()
427 struct eap_sake_data *data = priv; in eap_sake_process() local
447 eap_sake_process_identity(sm, data, respData, pos, end - pos); in eap_sake_process()
450 eap_sake_process_challenge(sm, data, respData, pos, end - pos); in eap_sake_process()
453 eap_sake_process_confirm(sm, data, respData, pos, end - pos); in eap_sake_process()
456 eap_sake_process_auth_reject(sm, data, respData, pos, in eap_sake_process()
465 struct eap_sake_data *data = priv; in eap_sake_isDone() local
466 return data->state == SUCCESS || data->state == FAILURE; in eap_sake_isDone()
472 struct eap_sake_data *data = priv; in eap_sake_getKey() local
475 if (data->state != SUCCESS) in eap_sake_getKey()
481 os_memcpy(key, data->msk, EAP_MSK_LEN); in eap_sake_getKey()
490 struct eap_sake_data *data = priv; in eap_sake_get_emsk() local
493 if (data->state != SUCCESS) in eap_sake_get_emsk()
499 os_memcpy(key, data->emsk, EAP_EMSK_LEN); in eap_sake_get_emsk()
508 struct eap_sake_data *data = priv; in eap_sake_isSuccess() local
509 return data->state == SUCCESS; in eap_sake_isSuccess()