aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2010-08-13 15:07:53 +0200
committerAndreas Steffen <andreas.steffen@strongswan.org>2010-08-13 15:07:53 +0200
commit87799b0c009d89f7632ef94b78d1951a8eb95ea8 (patch)
tree86bb35fe41bfe7e49161ab08cacacaf9443bd877 /src
parente643da585b59a46cb7020e47763a543cd1d410af (diff)
downloadstrongswan-87799b0c009d89f7632ef94b78d1951a8eb95ea8.tar.bz2
strongswan-87799b0c009d89f7632ef94b78d1951a8eb95ea8.tar.xz
moved eap_from_string() fomr libcharon to libstrongswan to make it available in starter
Diffstat (limited to 'src')
-rw-r--r--src/libcharon/sa/authenticators/eap/eap_method.c35
-rw-r--r--src/libcharon/sa/authenticators/eap/eap_method.h8
-rw-r--r--src/libstrongswan/credentials/auth_cfg.c32
-rw-r--r--src/libstrongswan/credentials/auth_cfg.h8
-rw-r--r--src/starter/confread.c35
5 files changed, 42 insertions, 76 deletions
diff --git a/src/libcharon/sa/authenticators/eap/eap_method.c b/src/libcharon/sa/authenticators/eap/eap_method.c
index 45c7a8ca6..892e97bd9 100644
--- a/src/libcharon/sa/authenticators/eap/eap_method.c
+++ b/src/libcharon/sa/authenticators/eap/eap_method.c
@@ -15,38 +15,6 @@
#include "eap_method.h"
-/*
- * See header
- */
-eap_type_t eap_type_from_string(char *name)
-{
- int i;
- static struct {
- char *name;
- eap_type_t type;
- } types[] = {
- {"identity", EAP_IDENTITY},
- {"md5", EAP_MD5},
- {"otp", EAP_OTP},
- {"gtc", EAP_GTC},
- {"tls", EAP_TLS},
- {"ttls", EAP_TTLS},
- {"sim", EAP_SIM},
- {"aka", EAP_AKA},
- {"mschapv2", EAP_MSCHAPV2},
- {"radius", EAP_RADIUS},
- };
-
- for (i = 0; i < countof(types); i++)
- {
- if (strcaseeq(name, types[i].name))
- {
- return types[i].type;
- }
- }
- return 0;
-}
-
ENUM(eap_code_names, EAP_REQUEST, EAP_FAILURE,
"EAP_REQUEST",
"EAP_RESPONSE",
@@ -66,6 +34,3 @@ ENUM(eap_role_names, EAP_SERVER, EAP_PEER,
"EAP_PEER",
);
-
-
-
diff --git a/src/libcharon/sa/authenticators/eap/eap_method.h b/src/libcharon/sa/authenticators/eap/eap_method.h
index df354edb4..91b419b2c 100644
--- a/src/libcharon/sa/authenticators/eap/eap_method.h
+++ b/src/libcharon/sa/authenticators/eap/eap_method.h
@@ -42,14 +42,6 @@ enum eap_role_t {
extern enum_name_t *eap_role_names;
/**
- * Lookup the EAP method type from a string.
- *
- * @param name EAP method name (such as "md5", "aka")
- * @return method type, 0 if unkown
- */
-eap_type_t eap_type_from_string(char *name);
-
-/**
* EAP code, type of an EAP message
*/
enum eap_code_t {
diff --git a/src/libstrongswan/credentials/auth_cfg.c b/src/libstrongswan/credentials/auth_cfg.c
index 9b3078f06..01a574fe7 100644
--- a/src/libstrongswan/credentials/auth_cfg.c
+++ b/src/libstrongswan/credentials/auth_cfg.c
@@ -93,6 +93,38 @@ ENUM(auth_rule_names, AUTH_RULE_IDENTITY, AUTH_HELPER_SUBJECT_HASH_URL,
"HELPER_SUBJECT_HASH_URL",
);
+/*
+ * See header
+ */
+eap_type_t eap_type_from_string(char *name)
+{
+ int i;
+ static struct {
+ char *name;
+ eap_type_t type;
+ } types[] = {
+ {"identity", EAP_IDENTITY},
+ {"md5", EAP_MD5},
+ {"otp", EAP_OTP},
+ {"gtc", EAP_GTC},
+ {"tls", EAP_TLS},
+ {"ttls", EAP_TTLS},
+ {"sim", EAP_SIM},
+ {"aka", EAP_AKA},
+ {"mschapv2", EAP_MSCHAPV2},
+ {"radius", EAP_RADIUS},
+ };
+
+ for (i = 0; i < countof(types); i++)
+ {
+ if (strcaseeq(name, types[i].name))
+ {
+ return types[i].type;
+ }
+ }
+ return 0;
+}
+
typedef struct private_auth_cfg_t private_auth_cfg_t;
/**
diff --git a/src/libstrongswan/credentials/auth_cfg.h b/src/libstrongswan/credentials/auth_cfg.h
index 29c6634b8..60c8403cd 100644
--- a/src/libstrongswan/credentials/auth_cfg.h
+++ b/src/libstrongswan/credentials/auth_cfg.h
@@ -82,6 +82,14 @@ extern enum_name_t *eap_type_names;
extern enum_name_t *eap_type_short_names;
/**
+ * Lookup the EAP method type from a string.
+ *
+ * @param name EAP method name (such as "md5", "aka")
+ * @return method type, 0 if unkown
+ */
+eap_type_t eap_type_from_string(char *name);
+
+/**
* Authentication config to use during authentication process.
*
* Each authentication config contains a set of rules. These rule-sets are used
diff --git a/src/starter/confread.c b/src/starter/confread.c
index b0ee8b389..379c2b477 100644
--- a/src/starter/confread.c
+++ b/src/starter/confread.c
@@ -671,39 +671,8 @@ static void load_conn(starter_conn_t *conn, kw_list_t *kw, starter_config_t *cfg
}
break;
}
- if (streq(kw->value, "aka"))
- {
- conn->eap_type = 23;
- }
- else if (streq(kw->value, "sim"))
- {
- conn->eap_type = 18;
- }
- else if (streq(kw->value, "md5"))
- {
- conn->eap_type = 4;
- }
- else if (streq(kw->value, "gtc"))
- {
- conn->eap_type = 6;
- }
- else if (streq(kw->value, "tls"))
- {
- conn->eap_type = 13;
- }
- else if (streq(kw->value, "ttls"))
- {
- conn->eap_type = 21;
- }
- else if (streq(kw->value, "mschapv2"))
- {
- conn->eap_type = 26;
- }
- else if (streq(kw->value, "radius"))
- { /* pseudo-type */
- conn->eap_type = 253;
- }
- else
+ conn->eap_type = eap_type_from_string(kw->value);
+ if (conn->eap_type == 0)
{
conn->eap_type = atoi(kw->value);
if (conn->eap_type == 0)