Migrated sim_manager to INIT/METHOD macros
This commit is contained in:
parent
7b3bfe4b6c
commit
5f47296f22
|
@ -52,32 +52,25 @@ struct private_sim_manager_t {
|
|||
rwlock_t *lock;
|
||||
};
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.add_card
|
||||
*/
|
||||
static void add_card(private_sim_manager_t *this, sim_card_t *card)
|
||||
METHOD(sim_manager_t, add_card, void,
|
||||
private_sim_manager_t *this, sim_card_t *card)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->cards->insert_last(this->cards, card);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.remove_card
|
||||
*/
|
||||
static void remove_card(private_sim_manager_t *this, sim_card_t *card)
|
||||
METHOD(sim_manager_t, remove_card, void,
|
||||
private_sim_manager_t *this, sim_card_t *card)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->cards->remove(this->cards, card, NULL);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_get_triplet
|
||||
*/
|
||||
static bool card_get_triplet(private_sim_manager_t *this, identification_t *id,
|
||||
char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN],
|
||||
char kc[SIM_KC_LEN])
|
||||
METHOD(sim_manager_t, card_get_triplet, bool,
|
||||
private_sim_manager_t *this, identification_t *id,
|
||||
char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -102,14 +95,10 @@ static bool card_get_triplet(private_sim_manager_t *this, identification_t *id,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_get_quintuplet
|
||||
*/
|
||||
static status_t card_get_quintuplet(private_sim_manager_t *this,
|
||||
identification_t *id, char rand[AKA_RAND_LEN],
|
||||
char autn[AKA_AUTN_LEN], char ck[AKA_CK_LEN],
|
||||
char ik[AKA_IK_LEN], char res[AKA_RES_MAX],
|
||||
int *res_len)
|
||||
METHOD(sim_manager_t, card_get_quintuplet, status_t,
|
||||
private_sim_manager_t *this, identification_t *id, char rand[AKA_RAND_LEN],
|
||||
char autn[AKA_AUTN_LEN], char ck[AKA_CK_LEN], char ik[AKA_IK_LEN],
|
||||
char res[AKA_RES_MAX], int *res_len)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -142,11 +131,9 @@ static status_t card_get_quintuplet(private_sim_manager_t *this,
|
|||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_resync
|
||||
*/
|
||||
static bool card_resync(private_sim_manager_t *this, identification_t *id,
|
||||
char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN])
|
||||
METHOD(sim_manager_t, card_resync, bool,
|
||||
private_sim_manager_t *this, identification_t *id,
|
||||
char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -167,11 +154,9 @@ static bool card_resync(private_sim_manager_t *this, identification_t *id,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_set_pseudonym
|
||||
*/
|
||||
static void card_set_pseudonym(private_sim_manager_t *this,
|
||||
identification_t *id, identification_t *pseudonym)
|
||||
METHOD(sim_manager_t, card_set_pseudonym, void,
|
||||
private_sim_manager_t *this, identification_t *id,
|
||||
identification_t *pseudonym)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -188,11 +173,8 @@ static void card_set_pseudonym(private_sim_manager_t *this,
|
|||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_get_pseudonym
|
||||
*/
|
||||
static identification_t* card_get_pseudonym(private_sim_manager_t *this,
|
||||
identification_t *id)
|
||||
METHOD(sim_manager_t, card_get_pseudonym, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -215,12 +197,9 @@ static identification_t* card_get_pseudonym(private_sim_manager_t *this,
|
|||
return pseudonym;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_set_reauth
|
||||
*/
|
||||
static void card_set_reauth(private_sim_manager_t *this, identification_t *id,
|
||||
identification_t *next, char mk[HASH_SIZE_SHA1],
|
||||
u_int16_t counter)
|
||||
METHOD(sim_manager_t, card_set_reauth, void,
|
||||
private_sim_manager_t *this, identification_t *id, identification_t *next,
|
||||
char mk[HASH_SIZE_SHA1], u_int16_t counter)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -238,12 +217,9 @@ static void card_set_reauth(private_sim_manager_t *this, identification_t *id,
|
|||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.card_get_reauth
|
||||
*/
|
||||
static identification_t* card_get_reauth(private_sim_manager_t *this,
|
||||
identification_t *id, char mk[HASH_SIZE_SHA1],
|
||||
u_int16_t *counter)
|
||||
METHOD(sim_manager_t, card_get_reauth, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id, char mk[HASH_SIZE_SHA1],
|
||||
u_int16_t *counter)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_card_t *card;
|
||||
|
@ -266,33 +242,25 @@ static identification_t* card_get_reauth(private_sim_manager_t *this,
|
|||
return reauth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.add_provider
|
||||
*/
|
||||
static void add_provider(private_sim_manager_t *this, sim_provider_t *provider)
|
||||
METHOD(sim_manager_t, add_provider, void,
|
||||
private_sim_manager_t *this, sim_provider_t *provider)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->providers->insert_last(this->providers, provider);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.remove_provider
|
||||
*/
|
||||
static void remove_provider(private_sim_manager_t *this,
|
||||
sim_provider_t *provider)
|
||||
METHOD(sim_manager_t, remove_provider, void,
|
||||
private_sim_manager_t *this, sim_provider_t *provider)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->providers->remove(this->providers, provider, NULL);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_get_triplet
|
||||
*/
|
||||
static bool provider_get_triplet(private_sim_manager_t *this,
|
||||
identification_t *id, char rand[SIM_RAND_LEN],
|
||||
char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN])
|
||||
METHOD(sim_manager_t, provider_get_triplet, bool,
|
||||
private_sim_manager_t *this, identification_t *id, char rand[SIM_RAND_LEN],
|
||||
char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -317,14 +285,10 @@ static bool provider_get_triplet(private_sim_manager_t *this,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_get_quintuplet
|
||||
*/
|
||||
static bool provider_get_quintuplet(private_sim_manager_t *this,
|
||||
identification_t *id, char rand[AKA_RAND_LEN],
|
||||
char xres[AKA_RES_MAX], int *xres_len,
|
||||
char ck[AKA_CK_LEN], char ik[AKA_IK_LEN],
|
||||
char autn[AKA_AUTN_LEN])
|
||||
METHOD(sim_manager_t, provider_get_quintuplet, bool,
|
||||
private_sim_manager_t *this, identification_t *id, char rand[AKA_RAND_LEN],
|
||||
char xres[AKA_RES_MAX], int *xres_len, char ck[AKA_CK_LEN],
|
||||
char ik[AKA_IK_LEN], char autn[AKA_AUTN_LEN])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -349,11 +313,9 @@ static bool provider_get_quintuplet(private_sim_manager_t *this,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_resync
|
||||
*/
|
||||
static bool provider_resync(private_sim_manager_t *this, identification_t *id,
|
||||
char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN])
|
||||
METHOD(sim_manager_t, provider_resync, bool,
|
||||
private_sim_manager_t *this, identification_t *id,
|
||||
char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -374,11 +336,8 @@ static bool provider_resync(private_sim_manager_t *this, identification_t *id,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_is_pseudonym
|
||||
*/
|
||||
static identification_t* provider_is_pseudonym(private_sim_manager_t *this,
|
||||
identification_t *id)
|
||||
METHOD(sim_manager_t, provider_is_pseudonym, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -401,11 +360,8 @@ static identification_t* provider_is_pseudonym(private_sim_manager_t *this,
|
|||
return permanent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_gen_pseudonym
|
||||
*/
|
||||
static identification_t* provider_gen_pseudonym(private_sim_manager_t *this,
|
||||
identification_t *id)
|
||||
METHOD(sim_manager_t, provider_gen_pseudonym, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -427,12 +383,9 @@ static identification_t* provider_gen_pseudonym(private_sim_manager_t *this,
|
|||
return pseudonym;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_is_reauth
|
||||
*/
|
||||
static identification_t* provider_is_reauth(private_sim_manager_t *this,
|
||||
identification_t *id, char mk[HASH_SIZE_SHA1],
|
||||
u_int16_t *counter)
|
||||
METHOD(sim_manager_t, provider_is_reauth, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id, char mk[HASH_SIZE_SHA1],
|
||||
u_int16_t *counter)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -455,11 +408,8 @@ static identification_t* provider_is_reauth(private_sim_manager_t *this,
|
|||
return permanent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.provider_gen_reauth
|
||||
*/
|
||||
static identification_t* provider_gen_reauth(private_sim_manager_t *this,
|
||||
identification_t *id, char mk[HASH_SIZE_SHA1])
|
||||
METHOD(sim_manager_t, provider_gen_reauth, identification_t*,
|
||||
private_sim_manager_t *this, identification_t *id, char mk[HASH_SIZE_SHA1])
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_provider_t *provider;
|
||||
|
@ -481,31 +431,25 @@ static identification_t* provider_gen_reauth(private_sim_manager_t *this,
|
|||
return reauth;
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.add_hooks
|
||||
*/
|
||||
static void add_hooks(private_sim_manager_t *this, sim_hooks_t *hooks)
|
||||
METHOD(sim_manager_t, add_hooks, void,
|
||||
private_sim_manager_t *this, sim_hooks_t *hooks)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->hooks->insert_last(this->hooks, hooks);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.remove_hooks
|
||||
*/
|
||||
static void remove_hooks(private_sim_manager_t *this, sim_hooks_t *hooks)
|
||||
METHOD(sim_manager_t, remove_hooks, void,
|
||||
private_sim_manager_t *this, sim_hooks_t *hooks)
|
||||
{
|
||||
this->lock->write_lock(this->lock);
|
||||
this->hooks->remove(this->hooks, hooks, NULL);
|
||||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.message_hook
|
||||
*/
|
||||
static void message_hook(private_sim_manager_t *this,
|
||||
simaka_message_t *message, bool inbound, bool decrypted)
|
||||
METHOD(sim_manager_t, message_hook, void,
|
||||
private_sim_manager_t *this, simaka_message_t *message,
|
||||
bool inbound, bool decrypted)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_hooks_t *hooks;
|
||||
|
@ -520,11 +464,8 @@ static void message_hook(private_sim_manager_t *this,
|
|||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.key_hook
|
||||
*/
|
||||
static void key_hook(private_sim_manager_t *this,
|
||||
chunk_t k_encr, chunk_t k_auth)
|
||||
METHOD(sim_manager_t, key_hook, void,
|
||||
private_sim_manager_t *this, chunk_t k_encr, chunk_t k_auth)
|
||||
{
|
||||
enumerator_t *enumerator;
|
||||
sim_hooks_t *hooks;
|
||||
|
@ -539,10 +480,8 @@ static void key_hook(private_sim_manager_t *this,
|
|||
this->lock->unlock(this->lock);
|
||||
}
|
||||
|
||||
/**
|
||||
* Implementation of sim_manager_t.destroy.
|
||||
*/
|
||||
static void destroy(private_sim_manager_t *this)
|
||||
METHOD(sim_manager_t, destroy, void,
|
||||
private_sim_manager_t *this)
|
||||
{
|
||||
this->cards->destroy(this->cards);
|
||||
this->providers->destroy(this->providers);
|
||||
|
@ -556,36 +495,39 @@ static void destroy(private_sim_manager_t *this)
|
|||
*/
|
||||
sim_manager_t *sim_manager_create()
|
||||
{
|
||||
private_sim_manager_t *this = malloc_thing(private_sim_manager_t);
|
||||
private_sim_manager_t *this;
|
||||
|
||||
this->public.add_card = (void(*)(sim_manager_t*, sim_card_t *card))add_card;
|
||||
this->public.remove_card = (void(*)(sim_manager_t*, sim_card_t *card))remove_card;
|
||||
this->public.card_get_triplet = (bool(*)(sim_manager_t*, identification_t *id, char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN]))card_get_triplet;
|
||||
this->public.card_get_quintuplet = (status_t(*)(sim_manager_t*, identification_t *id, char rand[AKA_RAND_LEN], char autn[AKA_AUTN_LEN], char ck[AKA_CK_LEN], char ik[AKA_IK_LEN], char res[AKA_RES_MAX], int *res_len))card_get_quintuplet;
|
||||
this->public.card_resync = (bool(*)(sim_manager_t*, identification_t *id, char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN]))card_resync;
|
||||
this->public.card_set_pseudonym = (void(*)(sim_manager_t*, identification_t *id, identification_t *pseudonym))card_set_pseudonym;
|
||||
this->public.card_get_pseudonym = (identification_t*(*)(sim_manager_t*, identification_t *id))card_get_pseudonym;
|
||||
this->public.card_set_reauth = (void(*)(sim_manager_t*, identification_t *id, identification_t *next, char mk[HASH_SIZE_SHA1], u_int16_t counter))card_set_reauth;
|
||||
this->public.card_get_reauth = (identification_t*(*)(sim_manager_t*, identification_t *id, char mk[HASH_SIZE_SHA1], u_int16_t *counter))card_get_reauth;
|
||||
this->public.add_provider = (void(*)(sim_manager_t*, sim_provider_t *provider))add_provider;
|
||||
this->public.remove_provider = (void(*)(sim_manager_t*, sim_provider_t *provider))remove_provider;
|
||||
this->public.provider_get_triplet = (bool(*)(sim_manager_t*, identification_t *id, char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN]))provider_get_triplet;
|
||||
this->public.provider_get_quintuplet = (bool(*)(sim_manager_t*, identification_t *id, char rand[AKA_RAND_LEN], char xres[AKA_RES_MAX], int *xres_len, char ck[AKA_CK_LEN], char ik[AKA_IK_LEN], char autn[AKA_AUTN_LEN]))provider_get_quintuplet;
|
||||
this->public.provider_resync = (bool(*)(sim_manager_t*, identification_t *id, char rand[AKA_RAND_LEN], char auts[AKA_AUTS_LEN]))provider_resync;
|
||||
this->public.provider_is_pseudonym = (identification_t*(*)(sim_manager_t*, identification_t *id))provider_is_pseudonym;
|
||||
this->public.provider_gen_pseudonym = (identification_t*(*)(sim_manager_t*, identification_t *id))provider_gen_pseudonym;
|
||||
this->public.provider_is_reauth = (identification_t*(*)(sim_manager_t*, identification_t *id, char mk[HASH_SIZE_SHA1], u_int16_t *counter))provider_is_reauth;
|
||||
this->public.provider_gen_reauth = (identification_t*(*)(sim_manager_t*, identification_t *id, char mk[HASH_SIZE_SHA1]))provider_gen_reauth;
|
||||
this->public.add_hooks = (void(*)(sim_manager_t*, sim_hooks_t *hooks))add_hooks;
|
||||
this->public.remove_hooks = (void(*)(sim_manager_t*, sim_hooks_t *hooks))remove_hooks;
|
||||
this->public.message_hook = (void(*)(sim_manager_t*, simaka_message_t *message, bool inbound, bool decrypted))message_hook;
|
||||
this->public.key_hook = (void(*)(sim_manager_t*, chunk_t k_encr, chunk_t k_auth))key_hook;
|
||||
this->public.destroy = (void(*)(sim_manager_t*))destroy;
|
||||
|
||||
this->cards = linked_list_create();
|
||||
this->providers = linked_list_create();
|
||||
this->hooks = linked_list_create();
|
||||
this->lock = rwlock_create(RWLOCK_TYPE_DEFAULT);
|
||||
INIT(this,
|
||||
.public = {
|
||||
.add_card = _add_card,
|
||||
.remove_card = _remove_card,
|
||||
.card_get_triplet = _card_get_triplet,
|
||||
.card_get_quintuplet = _card_get_quintuplet,
|
||||
.card_resync = _card_resync,
|
||||
.card_set_pseudonym = _card_set_pseudonym,
|
||||
.card_get_pseudonym = _card_get_pseudonym,
|
||||
.card_set_reauth = _card_set_reauth,
|
||||
.card_get_reauth = _card_get_reauth,
|
||||
.add_provider = _add_provider,
|
||||
.remove_provider = _remove_provider,
|
||||
.provider_get_triplet = _provider_get_triplet,
|
||||
.provider_get_quintuplet = _provider_get_quintuplet,
|
||||
.provider_resync = _provider_resync,
|
||||
.provider_is_pseudonym = _provider_is_pseudonym,
|
||||
.provider_gen_pseudonym = _provider_gen_pseudonym,
|
||||
.provider_is_reauth = _provider_is_reauth,
|
||||
.provider_gen_reauth = _provider_gen_reauth,
|
||||
.add_hooks = _add_hooks,
|
||||
.remove_hooks = _remove_hooks,
|
||||
.message_hook = _message_hook,
|
||||
.key_hook = _key_hook,
|
||||
.destroy = _destroy,
|
||||
},
|
||||
.cards = linked_list_create(),
|
||||
.providers = linked_list_create(),
|
||||
.hooks = linked_list_create(),
|
||||
.lock = rwlock_create(RWLOCK_TYPE_DEFAULT),
|
||||
);
|
||||
|
||||
return &this->public;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue