aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2012-01-23 12:25:00 +0100
committerMartin Willi <martin@revosec.ch>2012-03-20 17:31:38 +0100
commit6261c0c3b7a79ff3ac2492af878d8fb5d681b4dc (patch)
tree02741d50ae2da08353140cb87bbeb8ddf6db1e48 /src/libcharon/encoding
parentc8d46f295948d01aef96fba5413206d2ae0a16f9 (diff)
downloadstrongswan-6261c0c3b7a79ff3ac2492af878d8fb5d681b4dc.tar.bz2
strongswan-6261c0c3b7a79ff3ac2492af878d8fb5d681b4dc.tar.xz
Support encoding of IKEv1 ECDSA proposals
Diffstat (limited to 'src/libcharon/encoding')
-rw-r--r--src/libcharon/encoding/payloads/proposal_substructure.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/libcharon/encoding/payloads/proposal_substructure.c b/src/libcharon/encoding/payloads/proposal_substructure.c
index ba7ef9961..b761b86f6 100644
--- a/src/libcharon/encoding/payloads/proposal_substructure.c
+++ b/src/libcharon/encoding/payloads/proposal_substructure.c
@@ -237,6 +237,9 @@ typedef enum {
IKEV1_AUTH_RSA_SIG = 3,
IKEV1_AUTH_RSA_ENC = 4,
IKEV1_AUTH_RSA_ENC_REV = 5,
+ IKEV1_AUTH_ECDSA_256 = 9,
+ IKEV1_AUTH_ECDSA_384 = 10,
+ IKEV1_AUTH_ECDSA_521 = 11,
IKEV1_AUTH_XAUTH_INIT_PSK = 65001,
IKEV1_AUTH_XAUTH_RESP_PSK = 65002,
IKEV1_AUTH_XAUTH_INIT_DSS = 65003,
@@ -594,10 +597,14 @@ static u_int16_t get_ikev1_auth(auth_method_t method)
return IKEV1_AUTH_XAUTH_INIT_RSA;
case AUTH_HYBRID_INIT_RSA:
return IKEV1_AUTH_HYBRID_INIT_RSA;
- default:
- /* TODO-IKEv1: Handle other XAUTH methods */
- /* TODO-IKEv1: Handle ECDSA methods */
+ case AUTH_ECDSA_256:
+ return IKEV1_AUTH_ECDSA_256;
+ case AUTH_ECDSA_384:
+ return IKEV1_AUTH_ECDSA_384;
+ case AUTH_ECDSA_521:
+ return IKEV1_AUTH_ECDSA_521;
case AUTH_PSK:
+ default:
return IKEV1_AUTH_PSK;
}
}
@@ -654,7 +661,6 @@ static void add_to_proposal_v1_ike(proposal_t *proposal,
value, 0);
break;
default:
- /* TODO-IKEv1: lifetimes, authentication and other attributes */
break;
}
}
@@ -696,7 +702,6 @@ static void add_to_proposal_v1_esp(proposal_t *proposal,
value, 0);
break;
default:
- /* TODO-IKEv1: lifetimes other attributes */
break;
}
}
@@ -889,8 +894,13 @@ METHOD(proposal_substructure_t, get_auth_method, auth_method_t,
return AUTH_XAUTH_INIT_RSA;
case IKEV1_AUTH_HYBRID_INIT_RSA:
return AUTH_HYBRID_INIT_RSA;
+ case IKEV1_AUTH_ECDSA_256:
+ return AUTH_ECDSA_256;
+ case IKEV1_AUTH_ECDSA_384:
+ return AUTH_ECDSA_384;
+ case IKEV1_AUTH_ECDSA_521:
+ return AUTH_ECDSA_521;
default:
- /* TODO-IKEv1: other XAUTH, ECDSA sigs */
return AUTH_NONE;
}
}