510bcc2
diff -up openssl-1.1.0/apps/speed.c.curves openssl-1.1.0/apps/speed.c
510bcc2
--- openssl-1.1.0/apps/speed.c.curves	2016-09-08 11:03:15.550585422 +0200
510bcc2
+++ openssl-1.1.0/apps/speed.c	2016-09-08 11:05:17.287315488 +0200
e443a79
@@ -536,42 +536,18 @@ static OPT_PAIR rsa_choices[] = {
510bcc2
 #define R_EC_X25519  16
510bcc2
 #ifndef OPENSSL_NO_EC
510bcc2
 static OPT_PAIR ecdsa_choices[] = {
510bcc2
-    {"ecdsap160", R_EC_P160},
510bcc2
-    {"ecdsap192", R_EC_P192},
e443a79
     {"ecdsap224", R_EC_P224},
510bcc2
     {"ecdsap256", R_EC_P256},
510bcc2
     {"ecdsap384", R_EC_P384},
510bcc2
     {"ecdsap521", R_EC_P521},
510bcc2
-    {"ecdsak163", R_EC_K163},
510bcc2
-    {"ecdsak233", R_EC_K233},
510bcc2
-    {"ecdsak283", R_EC_K283},
510bcc2
-    {"ecdsak409", R_EC_K409},
510bcc2
-    {"ecdsak571", R_EC_K571},
510bcc2
-    {"ecdsab163", R_EC_B163},
510bcc2
-    {"ecdsab233", R_EC_B233},
510bcc2
-    {"ecdsab283", R_EC_B283},
510bcc2
-    {"ecdsab409", R_EC_B409},
510bcc2
-    {"ecdsab571", R_EC_B571},
510bcc2
     {NULL}
510bcc2
 };
510bcc2
 
510bcc2
 static OPT_PAIR ecdh_choices[] = {
510bcc2
-    {"ecdhp160", R_EC_P160},
510bcc2
-    {"ecdhp192", R_EC_P192},
e443a79
     {"ecdhp224", R_EC_P224},
510bcc2
     {"ecdhp256", R_EC_P256},
510bcc2
     {"ecdhp384", R_EC_P384},
510bcc2
     {"ecdhp521", R_EC_P521},
510bcc2
-    {"ecdhk163", R_EC_K163},
510bcc2
-    {"ecdhk233", R_EC_K233},
510bcc2
-    {"ecdhk283", R_EC_K283},
510bcc2
-    {"ecdhk409", R_EC_K409},
510bcc2
-    {"ecdhk571", R_EC_K571},
510bcc2
-    {"ecdhb163", R_EC_B163},
510bcc2
-    {"ecdhb233", R_EC_B233},
510bcc2
-    {"ecdhb283", R_EC_B283},
510bcc2
-    {"ecdhb409", R_EC_B409},
510bcc2
-    {"ecdhb571", R_EC_B571},
510bcc2
     {"ecdhx25519", R_EC_X25519},
510bcc2
     {NULL}
510bcc2
 };
e443a79
diff -up openssl-1.1.0c/crypto/ec/ecp_smpl.c.curves openssl-1.1.0c/crypto/ec/ecp_smpl.c
e443a79
--- openssl-1.1.0c/crypto/ec/ecp_smpl.c.curves	2016-11-10 15:03:44.000000000 +0100
e443a79
+++ openssl-1.1.0c/crypto/ec/ecp_smpl.c	2016-11-11 13:31:51.329603626 +0100
e443a79
@@ -144,6 +144,11 @@ int ec_GFp_simple_group_set_curve(EC_GRO
e443a79
         return 0;
e443a79
     }
510bcc2
 
e443a79
+    if (BN_num_bits(p) < 224) {
e443a79
+        ECerr(EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE, EC_R_UNSUPPORTED_FIELD);
e443a79
+        return 0;
e443a79
+    }
e443a79
+
e443a79
     if (ctx == NULL) {
e443a79
         ctx = new_ctx = BN_CTX_new();
e443a79
         if (ctx == NULL)
510bcc2
diff -up openssl-1.1.0/ssl/t1_lib.c.curves openssl-1.1.0/ssl/t1_lib.c
510bcc2
--- openssl-1.1.0/ssl/t1_lib.c.curves	2016-09-08 11:03:15.551585445 +0200
510bcc2
+++ openssl-1.1.0/ssl/t1_lib.c	2016-09-08 11:06:58.072575697 +0200
510bcc2
@@ -177,36 +177,12 @@ static const unsigned char eccurves_all[
510bcc2
     0, 23,                      /* secp256r1 (23) */
510bcc2
     0, 25,                      /* secp521r1 (25) */
510bcc2
     0, 24,                      /* secp384r1 (24) */
510bcc2
-    0, 26,                      /* brainpoolP256r1 (26) */
510bcc2
-    0, 27,                      /* brainpoolP384r1 (27) */
510bcc2
-    0, 28,                      /* brainpool512r1 (28) */
510bcc2
 
510bcc2
     /*
510bcc2
      * Remaining curves disabled by default but still permitted if set
510bcc2
      * via an explicit callback or parameters.
510bcc2
      */
510bcc2
     0, 22,                      /* secp256k1 (22) */
510bcc2
-    0, 14,                      /* sect571r1 (14) */
510bcc2
-    0, 13,                      /* sect571k1 (13) */
510bcc2
-    0, 11,                      /* sect409k1 (11) */
510bcc2
-    0, 12,                      /* sect409r1 (12) */
510bcc2
-    0, 9,                       /* sect283k1 (9) */
510bcc2
-    0, 10,                      /* sect283r1 (10) */
510bcc2
-    0, 20,                      /* secp224k1 (20) */
510bcc2
-    0, 21,                      /* secp224r1 (21) */
510bcc2
-    0, 18,                      /* secp192k1 (18) */
510bcc2
-    0, 19,                      /* secp192r1 (19) */
510bcc2
-    0, 15,                      /* secp160k1 (15) */
510bcc2
-    0, 16,                      /* secp160r1 (16) */
510bcc2
-    0, 17,                      /* secp160r2 (17) */
510bcc2
-    0, 8,                       /* sect239k1 (8) */
510bcc2
-    0, 6,                       /* sect233k1 (6) */
510bcc2
-    0, 7,                       /* sect233r1 (7) */
510bcc2
-    0, 4,                       /* sect193r1 (4) */
510bcc2
-    0, 5,                       /* sect193r2 (5) */
510bcc2
-    0, 1,                       /* sect163k1 (1) */
510bcc2
-    0, 2,                       /* sect163r1 (2) */
510bcc2
-    0, 3,                       /* sect163r2 (3) */
510bcc2
 };
510bcc2
 
510bcc2
 static const unsigned char suiteb_curves[] = {