diff -Nru openssl-1.0.2p/apps/speed.c openssl-1.0.2p-fixed/apps/speed.c
--- openssl-1.0.2p/apps/speed.c	2018-08-14 12:48:56.000000000 -0000
+++ openssl-1.0.2p-fixed/apps/speed.c	2018-08-31 18:10:28.411977380 -0000
@@ -989,10 +989,7 @@
         } else
 # endif
 # ifndef OPENSSL_NO_ECDSA
-        if (strcmp(*argv, "ecdsap160") == 0)
-            ecdsa_doit[R_EC_P160] = 2;
-        else if (strcmp(*argv, "ecdsap192") == 0)
-            ecdsa_doit[R_EC_P192] = 2;
+	if (0) {}
         else if (strcmp(*argv, "ecdsap224") == 0)
             ecdsa_doit[R_EC_P224] = 2;
         else if (strcmp(*argv, "ecdsap256") == 0)
@@ -1001,36 +998,13 @@
             ecdsa_doit[R_EC_P384] = 2;
         else if (strcmp(*argv, "ecdsap521") == 0)
             ecdsa_doit[R_EC_P521] = 2;
-        else if (strcmp(*argv, "ecdsak163") == 0)
-            ecdsa_doit[R_EC_K163] = 2;
-        else if (strcmp(*argv, "ecdsak233") == 0)
-            ecdsa_doit[R_EC_K233] = 2;
-        else if (strcmp(*argv, "ecdsak283") == 0)
-            ecdsa_doit[R_EC_K283] = 2;
-        else if (strcmp(*argv, "ecdsak409") == 0)
-            ecdsa_doit[R_EC_K409] = 2;
-        else if (strcmp(*argv, "ecdsak571") == 0)
-            ecdsa_doit[R_EC_K571] = 2;
-        else if (strcmp(*argv, "ecdsab163") == 0)
-            ecdsa_doit[R_EC_B163] = 2;
-        else if (strcmp(*argv, "ecdsab233") == 0)
-            ecdsa_doit[R_EC_B233] = 2;
-        else if (strcmp(*argv, "ecdsab283") == 0)
-            ecdsa_doit[R_EC_B283] = 2;
-        else if (strcmp(*argv, "ecdsab409") == 0)
-            ecdsa_doit[R_EC_B409] = 2;
-        else if (strcmp(*argv, "ecdsab571") == 0)
-            ecdsa_doit[R_EC_B571] = 2;
         else if (strcmp(*argv, "ecdsa") == 0) {
-            for (i = 0; i < EC_NUM; i++)
+            for (i = R_EC_P224; i < R_EC_P521; i++)
                 ecdsa_doit[i] = 1;
         } else
 # endif
 # ifndef OPENSSL_NO_ECDH
-        if (strcmp(*argv, "ecdhp160") == 0)
-            ecdh_doit[R_EC_P160] = 2;
-        else if (strcmp(*argv, "ecdhp192") == 0)
-            ecdh_doit[R_EC_P192] = 2;
+	if (0) {}
         else if (strcmp(*argv, "ecdhp224") == 0)
             ecdh_doit[R_EC_P224] = 2;
         else if (strcmp(*argv, "ecdhp256") == 0)
@@ -1039,28 +1013,8 @@
             ecdh_doit[R_EC_P384] = 2;
         else if (strcmp(*argv, "ecdhp521") == 0)
             ecdh_doit[R_EC_P521] = 2;
-        else if (strcmp(*argv, "ecdhk163") == 0)
-            ecdh_doit[R_EC_K163] = 2;
-        else if (strcmp(*argv, "ecdhk233") == 0)
-            ecdh_doit[R_EC_K233] = 2;
-        else if (strcmp(*argv, "ecdhk283") == 0)
-            ecdh_doit[R_EC_K283] = 2;
-        else if (strcmp(*argv, "ecdhk409") == 0)
-            ecdh_doit[R_EC_K409] = 2;
-        else if (strcmp(*argv, "ecdhk571") == 0)
-            ecdh_doit[R_EC_K571] = 2;
-        else if (strcmp(*argv, "ecdhb163") == 0)
-            ecdh_doit[R_EC_B163] = 2;
-        else if (strcmp(*argv, "ecdhb233") == 0)
-            ecdh_doit[R_EC_B233] = 2;
-        else if (strcmp(*argv, "ecdhb283") == 0)
-            ecdh_doit[R_EC_B283] = 2;
-        else if (strcmp(*argv, "ecdhb409") == 0)
-            ecdh_doit[R_EC_B409] = 2;
-        else if (strcmp(*argv, "ecdhb571") == 0)
-            ecdh_doit[R_EC_B571] = 2;
         else if (strcmp(*argv, "ecdh") == 0) {
-            for (i = 0; i < EC_NUM; i++)
+	    for (i = R_EC_P224; i <= R_EC_P521; i++)
                 ecdh_doit[i] = 1;
         } else
 # endif
@@ -1149,21 +1103,13 @@
             BIO_printf(bio_err, "dsa512   dsa1024  dsa2048\n");
 # endif
 # ifndef OPENSSL_NO_ECDSA
-            BIO_printf(bio_err, "ecdsap160 ecdsap192 ecdsap224 "
+            BIO_printf(bio_err, "ecdsap224 "
                        "ecdsap256 ecdsap384 ecdsap521\n");
-            BIO_printf(bio_err,
-                       "ecdsak163 ecdsak233 ecdsak283 ecdsak409 ecdsak571\n");
-            BIO_printf(bio_err,
-                       "ecdsab163 ecdsab233 ecdsab283 ecdsab409 ecdsab571\n");
             BIO_printf(bio_err, "ecdsa\n");
 # endif
 # ifndef OPENSSL_NO_ECDH
-            BIO_printf(bio_err, "ecdhp160  ecdhp192  ecdhp224 "
+            BIO_printf(bio_err, "ecdhp224 "
                        "ecdhp256  ecdhp384  ecdhp521\n");
-            BIO_printf(bio_err,
-                       "ecdhk163  ecdhk233  ecdhk283  ecdhk409  ecdhk571\n");
-            BIO_printf(bio_err,
-                       "ecdhb163  ecdhb233  ecdhb283  ecdhb409  ecdhb571\n");
             BIO_printf(bio_err, "ecdh\n");
 # endif
 
@@ -1242,11 +1188,11 @@
         for (i = 0; i < DSA_NUM; i++)
             dsa_doit[i] = 1;
 # ifndef OPENSSL_NO_ECDSA
-        for (i = 0; i < EC_NUM; i++)
+        for (i = R_EC_P224; i <= R_EC_P521; i++)
             ecdsa_doit[i] = 1;
 # endif
 # ifndef OPENSSL_NO_ECDH
-        for (i = 0; i < EC_NUM; i++)
+        for (i = R_EC_P224; i <= R_EC_P521; i++)
             ecdh_doit[i] = 1;
 # endif
     }
diff -Nru openssl-1.0.2p/crypto/ec/ecp_smpl.c openssl-1.0.2p-fixed/crypto/ec/ecp_smpl.c
--- openssl-1.0.2p/crypto/ec/ecp_smpl.c	2018-08-14 12:48:57.000000000 -0000
+++ openssl-1.0.2p-fixed/crypto/ec/ecp_smpl.c	2018-08-31 18:10:28.411977380 -0000
@@ -187,6 +187,11 @@
         return 0;
     }
 
+    if (BN_num_bits(p) < 224) {
+        ECerr(EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE, EC_R_UNSUPPORTED_FIELD);
+        return 0;
+    }
+
     if (ctx == NULL) {
         ctx = new_ctx = BN_CTX_new();
         if (ctx == NULL)
diff -Nru openssl-1.0.2p/crypto/ecdh/ecdhtest.c openssl-1.0.2p-fixed/crypto/ecdh/ecdhtest.c
--- openssl-1.0.2p/crypto/ecdh/ecdhtest.c	2018-08-14 12:48:57.000000000 -0000
+++ openssl-1.0.2p-fixed/crypto/ecdh/ecdhtest.c	2018-08-31 18:10:28.415977380 -0000
@@ -501,11 +501,13 @@
         goto err;
 
     /* NIST PRIME CURVES TESTS */
+# if 0
     if (!test_ecdh_curve
         (NID_X9_62_prime192v1, "NIST Prime-Curve P-192", ctx, out))
         goto err;
     if (!test_ecdh_curve(NID_secp224r1, "NIST Prime-Curve P-224", ctx, out))
         goto err;
+# endif
     if (!test_ecdh_curve
         (NID_X9_62_prime256v1, "NIST Prime-Curve P-256", ctx, out))
         goto err;
@@ -536,13 +538,14 @@
     if (!test_ecdh_curve(NID_sect571r1, "NIST Binary-Curve B-571", ctx, out))
         goto err;
 # endif
+# if 0
     if (!test_ecdh_kat(out, "Brainpool Prime-Curve brainpoolP256r1", 256))
         goto err;
     if (!test_ecdh_kat(out, "Brainpool Prime-Curve brainpoolP384r1", 384))
         goto err;
     if (!test_ecdh_kat(out, "Brainpool Prime-Curve brainpoolP512r1", 512))
         goto err;
-
+# endif
     ret = 0;
 
  err:
diff -Nru openssl-1.0.2p/crypto/ecdsa/ecdsatest.c openssl-1.0.2p-fixed/crypto/ecdsa/ecdsatest.c
--- openssl-1.0.2p/crypto/ecdsa/ecdsatest.c	2018-08-14 12:49:04.000000000 -0000
+++ openssl-1.0.2p-fixed/crypto/ecdsa/ecdsatest.c	2018-08-31 18:12:51.135976687 -0000
@@ -138,11 +138,14 @@
 }
 
 static int fbytes_counter = 0, use_fake = 0;
-static const char *numbers[8] = {
+static const char *numbers[10] = {
+    "651056770906015076056810763456358567190100156695615665659",
     "651056770906015076056810763456358567190100156695615665659",
     "6140507067065001063065065565667405560006161556565665656654",
     "8763001015071075675010661307616710783570106710677817767166"
         "71676178726717",
+    "8763001015071075675010661307616710783570106710677817767166"
+        "71676178726717",
     "7000000175690566466555057817571571075705015757757057795755"
         "55657156756655",
     "1275552191113212300012030439187146164646146646466749494799",
@@ -163,7 +166,7 @@
 
     use_fake = 0;
 
-    if (fbytes_counter >= 8)
+    if (fbytes_counter >= 10)
         return 0;
     tmp = BN_new();
     if (!tmp)
@@ -539,8 +542,10 @@
     RAND_seed(rnd_seed, sizeof(rnd_seed));
 
     /* the tests */
+# if 0
     if (!x9_62_tests(out))
         goto err;
+# endif
     if (!test_builtin(out))
         goto err;
 
diff -Nru openssl-1.0.2p/ssl/t1_lib.c openssl-1.0.2p-fixed/ssl/t1_lib.c
--- openssl-1.0.2p/ssl/t1_lib.c	2018-08-14 12:49:04.000000000 -0000
+++ openssl-1.0.2p-fixed/ssl/t1_lib.c	2018-08-31 18:10:28.415977380 -0000
@@ -271,10 +271,7 @@
     0, 23,                      /* secp256r1 (23) */
     /* Other >= 256-bit prime curves. */
     0, 25,                      /* secp521r1 (25) */
-    0, 28,                      /* brainpool512r1 (28) */
-    0, 27,                      /* brainpoolP384r1 (27) */
     0, 24,                      /* secp384r1 (24) */
-    0, 26,                      /* brainpoolP256r1 (26) */
     0, 22,                      /* secp256k1 (22) */
 # ifndef OPENSSL_NO_EC2M
     /* >= 256-bit binary curves. */
@@ -292,10 +289,7 @@
     0, 23,                      /* secp256r1 (23) */
     /* Other >= 256-bit prime curves. */
     0, 25,                      /* secp521r1 (25) */
-    0, 28,                      /* brainpool512r1 (28) */
-    0, 27,                      /* brainpoolP384r1 (27) */
     0, 24,                      /* secp384r1 (24) */
-    0, 26,                      /* brainpoolP256r1 (26) */
     0, 22,                      /* secp256k1 (22) */
 # ifndef OPENSSL_NO_EC2M
     /* >= 256-bit binary curves. */
@@ -310,13 +304,6 @@
      * Remaining curves disabled by default but still permitted if set
      * via an explicit callback or parameters.
      */
-    0, 20,                      /* secp224k1 (20) */
-    0, 21,                      /* secp224r1 (21) */
-    0, 18,                      /* secp192k1 (18) */
-    0, 19,                      /* secp192r1 (19) */
-    0, 15,                      /* secp160k1 (15) */
-    0, 16,                      /* secp160r1 (16) */
-    0, 17,                      /* secp160r2 (17) */
 # ifndef OPENSSL_NO_EC2M
     0, 8,                       /* sect239k1 (8) */
     0, 6,                       /* sect233k1 (6) */
@@ -351,29 +338,21 @@
     0, 9,                       /* sect283k1 (9) */
     0, 10,                      /* sect283r1 (10) */
 #  endif
-    0, 22,                      /* secp256k1 (22) */
     0, 23,                      /* secp256r1 (23) */
 #  ifndef OPENSSL_NO_EC2M
     0, 8,                       /* sect239k1 (8) */
     0, 6,                       /* sect233k1 (6) */
     0, 7,                       /* sect233r1 (7) */
 #  endif
-    0, 20,                      /* secp224k1 (20) */
-    0, 21,                      /* secp224r1 (21) */
 #  ifndef OPENSSL_NO_EC2M
     0, 4,                       /* sect193r1 (4) */
     0, 5,                       /* sect193r2 (5) */
 #  endif
-    0, 18,                      /* secp192k1 (18) */
-    0, 19,                      /* secp192r1 (19) */
 #  ifndef OPENSSL_NO_EC2M
     0, 1,                       /* sect163k1 (1) */
     0, 2,                       /* sect163r1 (2) */
     0, 3,                       /* sect163r2 (3) */
 #  endif
-    0, 15,                      /* secp160k1 (15) */
-    0, 16,                      /* secp160r1 (16) */
-    0, 17,                      /* secp160r2 (17) */
 };
 # endif