aboutsummaryrefslogtreecommitdiffstats
path: root/src/starter
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-08-22 10:44:51 +0000
committerMartin Willi <martin@strongswan.org>2008-08-22 10:44:51 +0000
commit822901061beb899947f22288c2dc7eb5a13eeb87 (patch)
treeb3f8e84bba26bd24a8c4d3ba26ad4bf4fc03ec01 /src/starter
parent7c112a12c06c0320ee3945cd593c2beafe6b56dc (diff)
downloadstrongswan-822901061beb899947f22288c2dc7eb5a13eeb87.tar.bz2
strongswan-822901061beb899947f22288c2dc7eb5a13eeb87.tar.xz
ported parts of two-sim branch
eap_identity parameter to exchange in eap_identity some auth_info/peer_cfg refactorings fixed some bugs, introduced new ones
Diffstat (limited to 'src/starter')
-rw-r--r--src/starter/args.c1
-rw-r--r--src/starter/confread.h1
-rw-r--r--src/starter/ipsec.conf.58
-rw-r--r--src/starter/keywords.h1
-rw-r--r--src/starter/keywords.txt1
-rw-r--r--src/starter/starterstroke.c1
6 files changed, 13 insertions, 0 deletions
diff --git a/src/starter/args.c b/src/starter/args.c
index fb3587eb2..b373be97c 100644
--- a/src/starter/args.c
+++ b/src/starter/args.c
@@ -202,6 +202,7 @@ static const token_info_t token_info[] =
{ ARG_MISC, 0, NULL /* KW_AUTH */ },
{ ARG_MISC, 0, NULL /* KW_AUTHBY */ },
{ ARG_MISC, 0, NULL /* KW_EAP */ },
+ { ARG_STR, offsetof(starter_conn_t, eap_identity), NULL },
{ ARG_MISC, 0, NULL /* KW_MOBIKE */ },
{ ARG_MISC, 0, NULL /* KW_FORCEENCAPS */ },
{ ARG_TIME, offsetof(starter_conn_t, sa_ike_life_seconds), NULL },
diff --git a/src/starter/confread.h b/src/starter/confread.h
index 90f729d64..8e1584526 100644
--- a/src/starter/confread.h
+++ b/src/starter/confread.h
@@ -105,6 +105,7 @@ struct starter_conn {
keyexchange_t keyexchange;
u_int32_t eap_type;
u_int32_t eap_vendor;
+ char *eap_identity;
lset_t policy;
time_t sa_ike_life_seconds;
time_t sa_ipsec_life_seconds;
diff --git a/src/starter/ipsec.conf.5 b/src/starter/ipsec.conf.5
index 796b6aa0e..afbf547ba 100644
--- a/src/starter/ipsec.conf.5
+++ b/src/starter/ipsec.conf.5
@@ -366,6 +366,14 @@ in the form
.B eap=7-12345
) can be used to specify vendor specific EAP types.
.TP
+.B eap_identity
+defines the identity the client uses to reply to a EAP Identity request.
+If defined on the EAP server, the defined identity will be used as peer
+identity during EAP authentication. The special value
+.B %identity
+uses the EAP Identity method to ask the client for a EAP identity. If not
+defined, the IKEv2 identity will be used as EAP identity.
+.TP
.B esp
ESP encryption/authentication algorithm to be used
for the connection, e.g.
diff --git a/src/starter/keywords.h b/src/starter/keywords.h
index b893cf52d..9470c75e5 100644
--- a/src/starter/keywords.h
+++ b/src/starter/keywords.h
@@ -71,6 +71,7 @@ typedef enum {
KW_AUTH,
KW_AUTHBY,
KW_EAP,
+ KW_EAP_IDENTITY,
KW_MOBIKE,
KW_FORCEENCAPS,
KW_IKELIFETIME,
diff --git a/src/starter/keywords.txt b/src/starter/keywords.txt
index 7e414fb9f..b54da8ca8 100644
--- a/src/starter/keywords.txt
+++ b/src/starter/keywords.txt
@@ -50,6 +50,7 @@ keep_alive, KW_KEEP_ALIVE
force_keepalive, KW_FORCE_KEEPALIVE
virtual_private, KW_VIRTUAL_PRIVATE
eap, KW_EAP
+eap_identity, KW_EAP_IDENTITY
mobike, KW_MOBIKE
forceencaps, KW_FORCEENCAPS
pkcs11module, KW_PKCS11MODULE
diff --git a/src/starter/starterstroke.c b/src/starter/starterstroke.c
index 6f2fb40ac..8fbfc0bdb 100644
--- a/src/starter/starterstroke.c
+++ b/src/starter/starterstroke.c
@@ -227,6 +227,7 @@ int starter_stroke_add_conn(starter_config_t *cfg, starter_conn_t *conn)
}
msg.add_conn.eap_type = conn->eap_type;
msg.add_conn.eap_vendor = conn->eap_vendor;
+ msg.add_conn.eap_identity = push_string(&msg, conn->eap_identity);
if (conn->policy & POLICY_TUNNEL)
{