aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/eap_simaka_sql
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-07-07 12:31:45 +0200
committerMartin Willi <martin@revosec.ch>2011-08-08 13:36:56 +0200
commitefee3ed80f96ca494e26bf6ac02215c85e15b5c3 (patch)
tree7e26ea140634018b3abc24e056344e13b1da0c6f /src/libcharon/plugins/eap_simaka_sql
parent4c199e6f815ffc82e4dccc90d359d32ae5ebdddf (diff)
downloadstrongswan-efee3ed80f96ca494e26bf6ac02215c85e15b5c3.tar.bz2
strongswan-efee3ed80f96ca494e26bf6ac02215c85e15b5c3.tar.xz
Migrated all SIM/AKA code to libsimaka, use SIM and AKA backend managers registered by name
Diffstat (limited to 'src/libcharon/plugins/eap_simaka_sql')
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/Makefile.am2
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.c4
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.h6
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_plugin.c32
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.c4
-rw-r--r--src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.h6
6 files changed, 38 insertions, 16 deletions
diff --git a/src/libcharon/plugins/eap_simaka_sql/Makefile.am b/src/libcharon/plugins/eap_simaka_sql/Makefile.am
index 73768be0e..bc6a4e5f0 100644
--- a/src/libcharon/plugins/eap_simaka_sql/Makefile.am
+++ b/src/libcharon/plugins/eap_simaka_sql/Makefile.am
@@ -1,6 +1,6 @@
INCLUDES = -I$(top_srcdir)/src/libstrongswan -I$(top_srcdir)/src/libhydra \
- -I$(top_srcdir)/src/libcharon
+ -I$(top_srcdir)/src/libcharon -I$(top_srcdir)/src/libsimaka
AM_CFLAGS = -rdynamic -DIPSEC_CONFDIR=\"${sysconfdir}\"
diff --git a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.c b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.c
index b7590405f..90627b52e 100644
--- a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.c
+++ b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.c
@@ -42,7 +42,7 @@ struct private_eap_simaka_sql_card_t {
bool remove_used;
};
-METHOD(sim_card_t, get_triplet, bool,
+METHOD(simaka_card_t, get_triplet, bool,
private_eap_simaka_sql_card_t *this, identification_t *id,
char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN])
{
@@ -90,7 +90,7 @@ METHOD(sim_card_t, get_triplet, bool,
return found;
}
-METHOD(sim_card_t, get_quintuplet, status_t,
+METHOD(simaka_card_t, get_quintuplet, status_t,
private_eap_simaka_sql_card_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)
diff --git a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.h b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.h
index 46b7de25e..760755a56 100644
--- a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.h
+++ b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_card.h
@@ -22,7 +22,7 @@
#define EAP_SIMAKA_SQL_CARD_H_
#include <database/database.h>
-#include <sa/authenticators/eap/sim_manager.h>
+#include <simaka_manager.h>
typedef struct eap_simaka_sql_card_t eap_simaka_sql_card_t;
@@ -32,9 +32,9 @@ typedef struct eap_simaka_sql_card_t eap_simaka_sql_card_t;
struct eap_simaka_sql_card_t {
/**
- * Implements sim_card_t interface
+ * Implements simaka_card_t interface
*/
- sim_card_t card;
+ simaka_card_t card;
/**
* Destroy a eap_simaka_sql_card_t.
diff --git a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_plugin.c b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_plugin.c
index 5a528153d..10b48853d 100644
--- a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_plugin.c
+++ b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_plugin.c
@@ -56,8 +56,20 @@ METHOD(plugin_t, get_name, char*,
METHOD(plugin_t, destroy, void,
private_eap_simaka_sql_t *this)
{
- charon->sim->remove_card(charon->sim, &this->card->card);
- charon->sim->remove_provider(charon->sim, &this->provider->provider);
+ simaka_manager_t *mgr;
+
+ mgr = lib->get(lib, "sim-manager");
+ if (mgr)
+ {
+ mgr->remove_card(mgr, &this->card->card);
+ mgr->remove_provider(mgr, &this->provider->provider);
+ }
+ mgr = lib->get(lib, "aka-manager");
+ if (mgr)
+ {
+ mgr->remove_card(mgr, &this->card->card);
+ mgr->remove_provider(mgr, &this->provider->provider);
+ }
this->card->destroy(this->card);
this->provider->destroy(this->provider);
this->db->destroy(this->db);
@@ -70,6 +82,7 @@ METHOD(plugin_t, destroy, void,
plugin_t *eap_simaka_sql_plugin_create()
{
private_eap_simaka_sql_t *this;
+ simaka_manager_t *mgr;
database_t *db;
bool remove_used;
char *uri;
@@ -103,8 +116,17 @@ plugin_t *eap_simaka_sql_plugin_create()
.card = eap_simaka_sql_card_create(db, remove_used),
);
- charon->sim->add_card(charon->sim, &this->card->card);
- charon->sim->add_provider(charon->sim, &this->provider->provider);
-
+ mgr = lib->get(lib, "sim-manager");
+ if (mgr)
+ {
+ mgr->add_card(mgr, &this->card->card);
+ mgr->add_provider(mgr, &this->provider->provider);
+ }
+ mgr = lib->get(lib, "aka-manager");
+ if (mgr)
+ {
+ mgr->add_card(mgr, &this->card->card);
+ mgr->add_provider(mgr, &this->provider->provider);
+ }
return &this->public.plugin;
}
diff --git a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.c b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.c
index 73cccf549..51e9966be 100644
--- a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.c
+++ b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.c
@@ -42,7 +42,7 @@ struct private_eap_simaka_sql_provider_t {
bool remove_used;
};
-METHOD(sim_provider_t, get_triplet, bool,
+METHOD(simaka_provider_t, get_triplet, bool,
private_eap_simaka_sql_provider_t *this, identification_t *id,
char rand[SIM_RAND_LEN], char sres[SIM_SRES_LEN], char kc[SIM_KC_LEN])
{
@@ -90,7 +90,7 @@ METHOD(sim_provider_t, get_triplet, bool,
return found;
}
-METHOD(sim_provider_t, get_quintuplet, bool,
+METHOD(simaka_provider_t, get_quintuplet, bool,
private_eap_simaka_sql_provider_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])
diff --git a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.h b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.h
index ecb0c8cb0..88a8b1f24 100644
--- a/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.h
+++ b/src/libcharon/plugins/eap_simaka_sql/eap_simaka_sql_provider.h
@@ -22,7 +22,7 @@
#define EAP_SIMAKA_SQL_PROVIDER_H_
#include <database/database.h>
-#include <sa/authenticators/eap/sim_manager.h>
+#include <simaka_provider.h>
typedef struct eap_simaka_sql_provider_t eap_simaka_sql_provider_t;
@@ -32,9 +32,9 @@ typedef struct eap_simaka_sql_provider_t eap_simaka_sql_provider_t;
struct eap_simaka_sql_provider_t {
/**
- * Implements sim_provider_t interface
+ * Implements simaka_provider_t interface
*/
- sim_provider_t provider;
+ simaka_provider_t provider;
/**
* Destroy a eap_simaka_sql_provider_t.