diff options
author | Martin Willi <martin@revosec.ch> | 2012-01-23 12:25:00 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2012-03-20 17:31:38 +0100 |
commit | 6261c0c3b7a79ff3ac2492af878d8fb5d681b4dc (patch) | |
tree | 02741d50ae2da08353140cb87bbeb8ddf6db1e48 /src/libcharon/encoding | |
parent | c8d46f295948d01aef96fba5413206d2ae0a16f9 (diff) | |
download | strongswan-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.c | 22 |
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; } } |