Hi,

the EC2N family of curves have been marked as insecure for at least 10 years.
In fact, IANA has stopped listing them altogether [1].
Their former IDs are now 'reserved'.

I think it's time for us to drop them as well.

ok?

[1] 
https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml#ikev2-parameters-8

Index: dh.c
===================================================================
RCS file: /cvs/src/sbin/iked/dh.c,v
retrieving revision 1.22
diff -u -p -r1.22 dh.c
--- dh.c        2 Apr 2019 09:42:55 -0000       1.22
+++ dh.c        27 Apr 2020 22:58:24 -0000
@@ -35,7 +35,7 @@ int   modp_getlen(struct group *);
 int    modp_create_exchange(struct group *, uint8_t *);
 int    modp_create_shared(struct group *, uint8_t *, uint8_t *);
 
-/* EC2N/ECP */
+/* ECP */
 int    ec_init(struct group *);
 int    ec_getlen(struct group *);
 int    ec_secretlen(struct group *);
@@ -83,8 +83,6 @@ const struct group_id ike_groups[] = {
            "FFFFFFFFFFFFFFFF",
            "02"
        },
-       { GROUP_EC2N, 3, 155, NULL, NULL, NID_ipsec3 },
-       { GROUP_EC2N, 4, 185, NULL, NULL, NID_ipsec4 },
        { GROUP_MODP, 5, 1536,
            "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"
            "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"
@@ -290,7 +288,6 @@ group_get(uint32_t id)
                group->exchange = modp_create_exchange;
                group->shared = modp_create_shared;
                break;
-       case GROUP_EC2N:
        case GROUP_ECP:
                group->init = ec_init;
                group->getlen = ec_getlen;
Index: dh.h
===================================================================
RCS file: /cvs/src/sbin/iked/dh.h,v
retrieving revision 1.11
diff -u -p -r1.11 dh.h
--- dh.h        27 Oct 2017 14:26:35 -0000      1.11
+++ dh.h        27 Apr 2020 22:58:24 -0000
@@ -21,7 +21,6 @@
 
 enum group_type {
        GROUP_MODP              = 0,
-       GROUP_EC2N              = 1,
        GROUP_ECP               = 2,
        GROUP_CURVE25519        = 3
 };
Index: iked.conf.5
===================================================================
RCS file: /cvs/src/sbin/iked/iked.conf.5,v
retrieving revision 1.66
diff -u -p -r1.66 iked.conf.5
--- iked.conf.5 27 Apr 2020 22:40:09 -0000      1.66
+++ iked.conf.5 27 Apr 2020 22:58:24 -0000
@@ -909,8 +909,6 @@ keyword:
 .It Em Name Ta Em Group Ta Em Size Ta Em Type
 .It Li modp768 Ta grp1 Ta 768 Ta "MODP"
 .It Li modp1024 Ta grp2 Ta 1024 Ta "MODP"
-.It Li ec2n155 Ta grp3 Ta 155 Ta "EC2N [insecure]"
-.It Li ec2n185 Ta grp4 Ta 185 Ta "EC2N [insecure]"
 .It Li modp1536 Ta grp5 Ta 1536 Ta "MODP"
 .It Li modp2048 Ta grp14 Ta 2048 Ta "MODP"
 .It Li modp3072 Ta grp15 Ta 3072 Ta "MODP"
@@ -931,11 +929,8 @@ keyword:
 .Pp
 The currently supported group types are either
 MODP (exponentiation groups modulo a prime),
-EC2N (elliptic curve groups over GF[2^N]),
 ECP (elliptic curve groups modulo a prime),
 or Curve25519.
-Please note that the EC2N groups are considered as insecure and only
-provided for backwards compatibility.
 .Sh FILES
 .Bl -tag -width /etc/examples/iked.conf -compact
 .It Pa /etc/iked.conf
Index: ikev2.h
===================================================================
RCS file: /cvs/src/sbin/iked/ikev2.h,v
retrieving revision 1.31
diff -u -p -r1.31 ikev2.h
--- ikev2.h     3 Dec 2019 12:38:34 -0000       1.31
+++ ikev2.h     27 Apr 2020 22:58:24 -0000
@@ -230,8 +230,6 @@ extern struct iked_constmap ikev2_xforma
 #define IKEV2_XFORMDH_NONE             0       /* No DH */
 #define IKEV2_XFORMDH_MODP_768         1       /* DH Group 1 */
 #define IKEV2_XFORMDH_MODP_1024                2       /* DH Group 2 */
-#define IKEV2_XFORMDH_EC2N_155         3       /* DH Group 3 */
-#define IKEV2_XFORMDH_EC2N_185         4       /* DH Group 3 */
 #define IKEV2_XFORMDH_MODP_1536                5       /* DH Group 5 */
 #define IKEV2_XFORMDH_MODP_2048                14      /* DH Group 14 */
 #define IKEV2_XFORMDH_MODP_3072                15      /* DH Group 15 */
Index: parse.y
===================================================================
RCS file: /cvs/src/sbin/iked/parse.y,v
retrieving revision 1.95
diff -u -p -r1.95 parse.y
--- parse.y     26 Apr 2020 16:55:47 -0000      1.95
+++ parse.y     27 Apr 2020 22:58:24 -0000
@@ -223,10 +223,6 @@ const struct ipsec_xf groupxfs[] = {
        { "grp1",               IKEV2_XFORMDH_MODP_768 },
        { "modp1024",           IKEV2_XFORMDH_MODP_1024 },
        { "grp2",               IKEV2_XFORMDH_MODP_1024 },
-       { "ec2n155",            IKEV2_XFORMDH_EC2N_155 },
-       { "grp3",               IKEV2_XFORMDH_EC2N_155 },
-       { "ec2n185",            IKEV2_XFORMDH_EC2N_185 },
-       { "grp4",               IKEV2_XFORMDH_EC2N_185 },
        { "modp1536",           IKEV2_XFORMDH_MODP_1536 },
        { "grp5",               IKEV2_XFORMDH_MODP_1536 },
        { "modp2048",           IKEV2_XFORMDH_MODP_2048 },

Reply via email to