Lines Matching refs:entry
379 struct eap_sim_db_pending *entry, *prev = NULL; in eap_sim_db_get_pending() local
381 entry = data->pending; in eap_sim_db_get_pending()
382 while (entry) { in eap_sim_db_get_pending()
383 if (entry->aka == aka && os_strcmp(entry->imsi, imsi) == 0) { in eap_sim_db_get_pending()
385 prev->next = entry->next; in eap_sim_db_get_pending()
387 data->pending = entry->next; in eap_sim_db_get_pending()
390 prev = entry; in eap_sim_db_get_pending()
391 entry = entry->next; in eap_sim_db_get_pending()
393 return entry; in eap_sim_db_get_pending()
398 struct eap_sim_db_pending *entry) in eap_sim_db_add_pending() argument
400 entry->next = data->pending; in eap_sim_db_add_pending()
401 data->pending = entry; in eap_sim_db_add_pending()
406 struct eap_sim_db_pending *entry) in eap_sim_db_free_pending() argument
408 eloop_cancel_timeout(eap_sim_db_query_timeout, data, entry); in eap_sim_db_free_pending()
409 eloop_cancel_timeout(eap_sim_db_del_timeout, data, entry); in eap_sim_db_free_pending()
410 os_free(entry); in eap_sim_db_free_pending()
415 struct eap_sim_db_pending *entry) in eap_sim_db_del_pending() argument
420 if (*pp == entry) { in eap_sim_db_del_pending()
421 *pp = entry->next; in eap_sim_db_del_pending()
422 eap_sim_db_free_pending(data, entry); in eap_sim_db_del_pending()
433 struct eap_sim_db_pending *entry = user_ctx; in eap_sim_db_del_timeout() local
435 wpa_printf(MSG_DEBUG, "EAP-SIM DB: Delete query timeout for %p", entry); in eap_sim_db_del_timeout()
436 eap_sim_db_del_pending(data, entry); in eap_sim_db_del_timeout()
443 struct eap_sim_db_pending *entry = user_ctx; in eap_sim_db_query_timeout() local
449 wpa_printf(MSG_DEBUG, "EAP-SIM DB: Query timeout for %p", entry); in eap_sim_db_query_timeout()
450 entry->state = FAILURE; in eap_sim_db_query_timeout()
451 data->get_complete_cb(data->ctx, entry->cb_session_ctx); in eap_sim_db_query_timeout()
452 eloop_register_timeout(1, 0, eap_sim_db_del_timeout, data, entry); in eap_sim_db_query_timeout()
460 struct eap_sim_db_pending *entry; in eap_sim_db_sim_resp_auth() local
469 entry = eap_sim_db_get_pending(data, imsi, 0); in eap_sim_db_sim_resp_auth()
470 if (entry == NULL) { in eap_sim_db_sim_resp_auth()
480 entry->state = FAILURE; in eap_sim_db_sim_resp_auth()
481 eap_sim_db_add_pending(data, entry); in eap_sim_db_sim_resp_auth()
482 data->get_complete_cb(data->ctx, entry->cb_session_ctx); in eap_sim_db_sim_resp_auth()
496 if (hexstr2bin(start, entry->u.sim.kc[num_chal], in eap_sim_db_sim_resp_auth()
505 if (hexstr2bin(start, entry->u.sim.sres[num_chal], in eap_sim_db_sim_resp_auth()
510 if (hexstr2bin(start, entry->u.sim.rand[num_chal], in eap_sim_db_sim_resp_auth()
520 entry->u.sim.num_chal = num_chal; in eap_sim_db_sim_resp_auth()
522 entry->state = SUCCESS; in eap_sim_db_sim_resp_auth()
525 eap_sim_db_add_pending(data, entry); in eap_sim_db_sim_resp_auth()
526 data->get_complete_cb(data->ctx, entry->cb_session_ctx); in eap_sim_db_sim_resp_auth()
531 eap_sim_db_free_pending(data, entry); in eap_sim_db_sim_resp_auth()
539 struct eap_sim_db_pending *entry; in eap_sim_db_aka_resp_auth() local
547 entry = eap_sim_db_get_pending(data, imsi, 1); in eap_sim_db_aka_resp_auth()
548 if (entry == NULL) { in eap_sim_db_aka_resp_auth()
558 entry->state = FAILURE; in eap_sim_db_aka_resp_auth()
559 eap_sim_db_add_pending(data, entry); in eap_sim_db_aka_resp_auth()
560 data->get_complete_cb(data->ctx, entry->cb_session_ctx); in eap_sim_db_aka_resp_auth()
568 if (hexstr2bin(start, entry->u.aka.rand, EAP_AKA_RAND_LEN)) in eap_sim_db_aka_resp_auth()
576 if (hexstr2bin(start, entry->u.aka.autn, EAP_AKA_AUTN_LEN)) in eap_sim_db_aka_resp_auth()
584 if (hexstr2bin(start, entry->u.aka.ik, EAP_AKA_IK_LEN)) in eap_sim_db_aka_resp_auth()
592 if (hexstr2bin(start, entry->u.aka.ck, EAP_AKA_CK_LEN)) in eap_sim_db_aka_resp_auth()
604 entry->u.aka.res_len = (end - start) / 2; in eap_sim_db_aka_resp_auth()
605 if (entry->u.aka.res_len > EAP_AKA_RES_MAX_LEN) { in eap_sim_db_aka_resp_auth()
607 entry->u.aka.res_len = 0; in eap_sim_db_aka_resp_auth()
610 if (hexstr2bin(start, entry->u.aka.res, entry->u.aka.res_len)) in eap_sim_db_aka_resp_auth()
613 entry->state = SUCCESS; in eap_sim_db_aka_resp_auth()
616 eap_sim_db_add_pending(data, entry); in eap_sim_db_aka_resp_auth()
617 data->get_complete_cb(data->ctx, entry->cb_session_ctx); in eap_sim_db_aka_resp_auth()
622 eap_sim_db_free_pending(data, entry); in eap_sim_db_aka_resp_auth()
895 struct eap_sim_db_pending *entry) in eap_sim_db_expire_pending() argument
898 eap_sim_db_query_timeout, data, entry); in eap_sim_db_expire_pending()
930 struct eap_sim_db_pending *entry; in eap_sim_db_get_gsm_triplets() local
937 username[1] == '\0' || os_strlen(username) > sizeof(entry->imsi)) { in eap_sim_db_get_gsm_triplets()
946 entry = eap_sim_db_get_pending(data, imsi, 0); in eap_sim_db_get_gsm_triplets()
947 if (entry) { in eap_sim_db_get_gsm_triplets()
949 if (entry->state == FAILURE) { in eap_sim_db_get_gsm_triplets()
952 eap_sim_db_free_pending(data, entry); in eap_sim_db_get_gsm_triplets()
956 if (entry->state == PENDING) { in eap_sim_db_get_gsm_triplets()
959 eap_sim_db_add_pending(data, entry); in eap_sim_db_get_gsm_triplets()
964 "%d challenges", entry->u.sim.num_chal); in eap_sim_db_get_gsm_triplets()
965 num_chal = entry->u.sim.num_chal; in eap_sim_db_get_gsm_triplets()
968 os_memcpy(_rand, entry->u.sim.rand, num_chal * GSM_RAND_LEN); in eap_sim_db_get_gsm_triplets()
969 os_memcpy(sres, entry->u.sim.sres, in eap_sim_db_get_gsm_triplets()
971 os_memcpy(kc, entry->u.sim.kc, num_chal * EAP_SIM_KC_LEN); in eap_sim_db_get_gsm_triplets()
972 eap_sim_db_free_pending(data, entry); in eap_sim_db_get_gsm_triplets()
998 entry = os_zalloc(sizeof(*entry)); in eap_sim_db_get_gsm_triplets()
999 if (entry == NULL) in eap_sim_db_get_gsm_triplets()
1002 os_strlcpy(entry->imsi, imsi, sizeof(entry->imsi)); in eap_sim_db_get_gsm_triplets()
1003 entry->cb_session_ctx = cb_session_ctx; in eap_sim_db_get_gsm_triplets()
1004 entry->state = PENDING; in eap_sim_db_get_gsm_triplets()
1005 eap_sim_db_add_pending(data, entry); in eap_sim_db_get_gsm_triplets()
1006 eap_sim_db_expire_pending(data, entry); in eap_sim_db_get_gsm_triplets()
1007 wpa_printf(MSG_DEBUG, "EAP-SIM DB: Added query %p", entry); in eap_sim_db_get_gsm_triplets()
1397 struct eap_sim_db_pending *entry; in eap_sim_db_get_aka_auth() local
1406 username[1] == '\0' || os_strlen(username) > sizeof(entry->imsi)) { in eap_sim_db_get_aka_auth()
1415 entry = eap_sim_db_get_pending(data, imsi, 1); in eap_sim_db_get_aka_auth()
1416 if (entry) { in eap_sim_db_get_aka_auth()
1417 if (entry->state == FAILURE) { in eap_sim_db_get_aka_auth()
1418 eap_sim_db_free_pending(data, entry); in eap_sim_db_get_aka_auth()
1423 if (entry->state == PENDING) { in eap_sim_db_get_aka_auth()
1424 eap_sim_db_add_pending(data, entry); in eap_sim_db_get_aka_auth()
1431 os_memcpy(_rand, entry->u.aka.rand, EAP_AKA_RAND_LEN); in eap_sim_db_get_aka_auth()
1432 os_memcpy(autn, entry->u.aka.autn, EAP_AKA_AUTN_LEN); in eap_sim_db_get_aka_auth()
1433 os_memcpy(ik, entry->u.aka.ik, EAP_AKA_IK_LEN); in eap_sim_db_get_aka_auth()
1434 os_memcpy(ck, entry->u.aka.ck, EAP_AKA_CK_LEN); in eap_sim_db_get_aka_auth()
1435 os_memcpy(res, entry->u.aka.res, EAP_AKA_RES_MAX_LEN); in eap_sim_db_get_aka_auth()
1436 *res_len = entry->u.aka.res_len; in eap_sim_db_get_aka_auth()
1437 eap_sim_db_free_pending(data, entry); in eap_sim_db_get_aka_auth()
1459 entry = os_zalloc(sizeof(*entry)); in eap_sim_db_get_aka_auth()
1460 if (entry == NULL) in eap_sim_db_get_aka_auth()
1463 entry->aka = 1; in eap_sim_db_get_aka_auth()
1464 os_strlcpy(entry->imsi, imsi, sizeof(entry->imsi)); in eap_sim_db_get_aka_auth()
1465 entry->cb_session_ctx = cb_session_ctx; in eap_sim_db_get_aka_auth()
1466 entry->state = PENDING; in eap_sim_db_get_aka_auth()
1467 eap_sim_db_add_pending(data, entry); in eap_sim_db_get_aka_auth()
1468 eap_sim_db_expire_pending(data, entry); in eap_sim_db_get_aka_auth()
1469 wpa_printf(MSG_DEBUG, "EAP-SIM DB: Added query %p", entry); in eap_sim_db_get_aka_auth()