|
wpa_supplicant / hostapd 2.0
|
00001 00010 #ifndef EAP_SIM_DB_H 00011 #define EAP_SIM_DB_H 00012 00013 #include "eap_common/eap_sim_common.h" 00014 00015 /* Identity prefixes */ 00016 #define EAP_SIM_PERMANENT_PREFIX '1' 00017 #define EAP_SIM_PSEUDONYM_PREFIX '3' 00018 #define EAP_SIM_REAUTH_ID_PREFIX '5' 00019 #define EAP_AKA_PERMANENT_PREFIX '0' 00020 #define EAP_AKA_PSEUDONYM_PREFIX '2' 00021 #define EAP_AKA_REAUTH_ID_PREFIX '4' 00022 00023 void * eap_sim_db_init(const char *config, 00024 void (*get_complete_cb)(void *ctx, void *session_ctx), 00025 void *ctx); 00026 00027 void eap_sim_db_deinit(void *priv); 00028 00029 int eap_sim_db_get_gsm_triplets(void *priv, const u8 *identity, 00030 size_t identity_len, int max_chal, 00031 u8 *_rand, u8 *kc, u8 *sres, 00032 void *cb_session_ctx); 00033 00034 #define EAP_SIM_DB_FAILURE -1 00035 #define EAP_SIM_DB_PENDING -2 00036 00037 int eap_sim_db_identity_known(void *priv, const u8 *identity, 00038 size_t identity_len); 00039 00040 char * eap_sim_db_get_next_pseudonym(void *priv, int aka); 00041 00042 char * eap_sim_db_get_next_reauth_id(void *priv, int aka); 00043 00044 int eap_sim_db_add_pseudonym(void *priv, const u8 *identity, 00045 size_t identity_len, char *pseudonym); 00046 00047 int eap_sim_db_add_reauth(void *priv, const u8 *identity, 00048 size_t identity_len, char *reauth_id, u16 counter, 00049 const u8 *mk); 00050 int eap_sim_db_add_reauth_prime(void *priv, const u8 *identity, 00051 size_t identity_len, char *reauth_id, 00052 u16 counter, const u8 *k_encr, const u8 *k_aut, 00053 const u8 *k_re); 00054 00055 const u8 * eap_sim_db_get_permanent(void *priv, const u8 *identity, 00056 size_t identity_len, size_t *len); 00057 00058 struct eap_sim_reauth { 00059 struct eap_sim_reauth *next; 00060 u8 *identity; 00061 size_t identity_len; 00062 char *reauth_id; 00063 u16 counter; 00064 int aka_prime; 00065 u8 mk[EAP_SIM_MK_LEN]; 00066 u8 k_encr[EAP_SIM_K_ENCR_LEN]; 00067 u8 k_aut[EAP_AKA_PRIME_K_AUT_LEN]; 00068 u8 k_re[EAP_AKA_PRIME_K_RE_LEN]; 00069 }; 00070 00071 struct eap_sim_reauth * 00072 eap_sim_db_get_reauth_entry(void *priv, const u8 *identity, 00073 size_t identity_len); 00074 00075 void eap_sim_db_remove_reauth(void *priv, struct eap_sim_reauth *reauth); 00076 00077 int eap_sim_db_get_aka_auth(void *priv, const u8 *identity, 00078 size_t identity_len, u8 *_rand, u8 *autn, u8 *ik, 00079 u8 *ck, u8 *res, size_t *res_len, 00080 void *cb_session_ctx); 00081 00082 int eap_sim_db_resynchronize(void *priv, const u8 *identity, 00083 size_t identity_len, const u8 *auts, 00084 const u8 *_rand); 00085 00086 #endif /* EAP_SIM_DB_H */ 00087
1.7.3