Blame SOURCES/openssl-1.1.1-ec-curves.patch

e4b8d1
diff -up openssl-1.1.1/apps/speed.c.curves openssl-1.1.1/apps/speed.c
e4b8d1
--- openssl-1.1.1/apps/speed.c.curves	2018-09-11 14:48:20.000000000 +0200
e4b8d1
+++ openssl-1.1.1/apps/speed.c	2018-09-13 09:24:24.840081023 +0200
e4b8d1
@@ -489,82 +489,28 @@ static const OPT_PAIR rsa_choices[] = {
e4b8d1
 static double rsa_results[RSA_NUM][2];  /* 2 ops: sign then verify */
e4b8d1
 #endif /* OPENSSL_NO_RSA */
e4b8d1
 
e4b8d1
-#define R_EC_P160    0
e4b8d1
-#define R_EC_P192    1
e4b8d1
-#define R_EC_P224    2
e4b8d1
-#define R_EC_P256    3
e4b8d1
-#define R_EC_P384    4
e4b8d1
-#define R_EC_P521    5
e4b8d1
-#define R_EC_K163    6
e4b8d1
-#define R_EC_K233    7
e4b8d1
-#define R_EC_K283    8
e4b8d1
-#define R_EC_K409    9
e4b8d1
-#define R_EC_K571    10
e4b8d1
-#define R_EC_B163    11
e4b8d1
-#define R_EC_B233    12
e4b8d1
-#define R_EC_B283    13
e4b8d1
-#define R_EC_B409    14
e4b8d1
-#define R_EC_B571    15
e4b8d1
-#define R_EC_BRP256R1  16
e4b8d1
-#define R_EC_BRP256T1  17
e4b8d1
-#define R_EC_BRP384R1  18
e4b8d1
-#define R_EC_BRP384T1  19
e4b8d1
-#define R_EC_BRP512R1  20
e4b8d1
-#define R_EC_BRP512T1  21
e4b8d1
-#define R_EC_X25519  22
e4b8d1
-#define R_EC_X448    23
e4b8d1
+#define R_EC_P224    0
e4b8d1
+#define R_EC_P256    1
e4b8d1
+#define R_EC_P384    2
e4b8d1
+#define R_EC_P521    3
e4b8d1
+#define R_EC_X25519  4
e4b8d1
+#define R_EC_X448    5
e4b8d1
 #ifndef OPENSSL_NO_EC
e4b8d1
 static OPT_PAIR ecdsa_choices[] = {
e4b8d1
-    {"ecdsap160", R_EC_P160},
e4b8d1
-    {"ecdsap192", R_EC_P192},
e4b8d1
     {"ecdsap224", R_EC_P224},
e4b8d1
     {"ecdsap256", R_EC_P256},
e4b8d1
     {"ecdsap384", R_EC_P384},
e4b8d1
     {"ecdsap521", R_EC_P521},
e4b8d1
-    {"ecdsak163", R_EC_K163},
e4b8d1
-    {"ecdsak233", R_EC_K233},
e4b8d1
-    {"ecdsak283", R_EC_K283},
e4b8d1
-    {"ecdsak409", R_EC_K409},
e4b8d1
-    {"ecdsak571", R_EC_K571},
e4b8d1
-    {"ecdsab163", R_EC_B163},
e4b8d1
-    {"ecdsab233", R_EC_B233},
e4b8d1
-    {"ecdsab283", R_EC_B283},
e4b8d1
-    {"ecdsab409", R_EC_B409},
e4b8d1
-    {"ecdsab571", R_EC_B571},
e4b8d1
-    {"ecdsabrp256r1", R_EC_BRP256R1},
e4b8d1
-    {"ecdsabrp256t1", R_EC_BRP256T1},
e4b8d1
-    {"ecdsabrp384r1", R_EC_BRP384R1},
e4b8d1
-    {"ecdsabrp384t1", R_EC_BRP384T1},
e4b8d1
-    {"ecdsabrp512r1", R_EC_BRP512R1},
e4b8d1
-    {"ecdsabrp512t1", R_EC_BRP512T1}
e4b8d1
 };
e4b8d1
 # define ECDSA_NUM       OSSL_NELEM(ecdsa_choices)
e4b8d1
 
e4b8d1
 static double ecdsa_results[ECDSA_NUM][2];    /* 2 ops: sign then verify */
e4b8d1
 
e4b8d1
 static const OPT_PAIR ecdh_choices[] = {
e4b8d1
-    {"ecdhp160", R_EC_P160},
e4b8d1
-    {"ecdhp192", R_EC_P192},
e4b8d1
     {"ecdhp224", R_EC_P224},
e4b8d1
     {"ecdhp256", R_EC_P256},
e4b8d1
     {"ecdhp384", R_EC_P384},
e4b8d1
     {"ecdhp521", R_EC_P521},
e4b8d1
-    {"ecdhk163", R_EC_K163},
e4b8d1
-    {"ecdhk233", R_EC_K233},
e4b8d1
-    {"ecdhk283", R_EC_K283},
e4b8d1
-    {"ecdhk409", R_EC_K409},
e4b8d1
-    {"ecdhk571", R_EC_K571},
e4b8d1
-    {"ecdhb163", R_EC_B163},
e4b8d1
-    {"ecdhb233", R_EC_B233},
e4b8d1
-    {"ecdhb283", R_EC_B283},
e4b8d1
-    {"ecdhb409", R_EC_B409},
e4b8d1
-    {"ecdhb571", R_EC_B571},
e4b8d1
-    {"ecdhbrp256r1", R_EC_BRP256R1},
e4b8d1
-    {"ecdhbrp256t1", R_EC_BRP256T1},
e4b8d1
-    {"ecdhbrp384r1", R_EC_BRP384R1},
e4b8d1
-    {"ecdhbrp384t1", R_EC_BRP384T1},
e4b8d1
-    {"ecdhbrp512r1", R_EC_BRP512R1},
e4b8d1
-    {"ecdhbrp512t1", R_EC_BRP512T1},
e4b8d1
     {"ecdhx25519", R_EC_X25519},
e4b8d1
     {"ecdhx448", R_EC_X448}
e4b8d1
 };
e4b8d1
@@ -1495,29 +1441,10 @@ int speed_main(int argc, char **argv)
e4b8d1
         unsigned int bits;
e4b8d1
     } test_curves[] = {
e4b8d1
         /* Prime Curves */
e4b8d1
-        {"secp160r1", NID_secp160r1, 160},
e4b8d1
-        {"nistp192", NID_X9_62_prime192v1, 192},
e4b8d1
         {"nistp224", NID_secp224r1, 224},
e4b8d1
         {"nistp256", NID_X9_62_prime256v1, 256},
e4b8d1
         {"nistp384", NID_secp384r1, 384}, 
e4b8d1
         {"nistp521", NID_secp521r1, 521},
e4b8d1
-        /* Binary Curves */
e4b8d1
-        {"nistk163", NID_sect163k1, 163},
e4b8d1
-        {"nistk233", NID_sect233k1, 233}, 
e4b8d1
-        {"nistk283", NID_sect283k1, 283},
e4b8d1
-        {"nistk409", NID_sect409k1, 409},
e4b8d1
-        {"nistk571", NID_sect571k1, 571},
e4b8d1
-        {"nistb163", NID_sect163r2, 163},
e4b8d1
-        {"nistb233", NID_sect233r1, 233},
e4b8d1
-        {"nistb283", NID_sect283r1, 283},
e4b8d1
-        {"nistb409", NID_sect409r1, 409},
e4b8d1
-        {"nistb571", NID_sect571r1, 571},
e4b8d1
-        {"brainpoolP256r1", NID_brainpoolP256r1, 256},
e4b8d1
-        {"brainpoolP256t1", NID_brainpoolP256t1, 256},
e4b8d1
-        {"brainpoolP384r1", NID_brainpoolP384r1, 384},
e4b8d1
-        {"brainpoolP384t1", NID_brainpoolP384t1, 384},
e4b8d1
-        {"brainpoolP512r1", NID_brainpoolP512r1, 512},
e4b8d1
-        {"brainpoolP512t1", NID_brainpoolP512t1, 512},
e4b8d1
         /* Other and ECDH only ones */
e4b8d1
         {"X25519", NID_X25519, 253},
e4b8d1
         {"X448", NID_X448, 448}
e4b8d1
@@ -2017,9 +1944,9 @@ int speed_main(int argc, char **argv)
e4b8d1
 #  endif
e4b8d1
 
e4b8d1
 #  ifndef OPENSSL_NO_EC
e4b8d1
-    ecdsa_c[R_EC_P160][0] = count / 1000;
e4b8d1
-    ecdsa_c[R_EC_P160][1] = count / 1000 / 2;
e4b8d1
-    for (i = R_EC_P192; i <= R_EC_P521; i++) {
e4b8d1
+    ecdsa_c[R_EC_P224][0] = count / 1000;
e4b8d1
+    ecdsa_c[R_EC_P224][1] = count / 1000 / 2;
e4b8d1
+    for (i = R_EC_P256; i <= R_EC_P521; i++) {
e4b8d1
         ecdsa_c[i][0] = ecdsa_c[i - 1][0] / 2;
e4b8d1
         ecdsa_c[i][1] = ecdsa_c[i - 1][1] / 2;
e4b8d1
         if (ecdsa_doit[i] <= 1 && ecdsa_c[i][0] == 0)
e4b8d1
@@ -2031,6 +1958,7 @@ int speed_main(int argc, char **argv)
e4b8d1
             }
e4b8d1
         }
e4b8d1
     }
e4b8d1
+#if 0
e4b8d1
     ecdsa_c[R_EC_K163][0] = count / 1000;
e4b8d1
     ecdsa_c[R_EC_K163][1] = count / 1000 / 2;
e4b8d1
     for (i = R_EC_K233; i <= R_EC_K571; i++) {
e4b8d1
@@ -2059,9 +1987,9 @@ int speed_main(int argc, char **argv)
e4b8d1
             }
e4b8d1
         }
e4b8d1
     }
e4b8d1
-
e4b8d1
-    ecdh_c[R_EC_P160][0] = count / 1000;
e4b8d1
-    for (i = R_EC_P192; i <= R_EC_P521; i++) {
e4b8d1
+#endif
e4b8d1
+    ecdh_c[R_EC_P224][0] = count / 1000;
e4b8d1
+    for (i = R_EC_P256; i <= R_EC_P521; i++) {
e4b8d1
         ecdh_c[i][0] = ecdh_c[i - 1][0] / 2;
e4b8d1
         if (ecdh_doit[i] <= 1 && ecdh_c[i][0] == 0)
e4b8d1
             ecdh_doit[i] = 0;
e4b8d1
@@ -2071,6 +1999,7 @@ int speed_main(int argc, char **argv)
e4b8d1
             }
e4b8d1
         }
e4b8d1
     }
e4b8d1
+#if 0
e4b8d1
     ecdh_c[R_EC_K163][0] = count / 1000;
e4b8d1
     for (i = R_EC_K233; i <= R_EC_K571; i++) {
e4b8d1
         ecdh_c[i][0] = ecdh_c[i - 1][0] / 2;
e4b8d1
@@ -2116,6 +2045,7 @@ int speed_main(int argc, char **argv)
e4b8d1
             }
e4b8d1
         }
e4b8d1
     }
e4b8d1
+#endif
e4b8d1
     /* default iteration count for the last two EC Curves */
e4b8d1
     ecdh_c[R_EC_X25519][0] = count / 1800;
e4b8d1
     ecdh_c[R_EC_X448][0] = count / 7200;
e4b8d1
diff -up openssl-1.1.1/crypto/ec/ecp_smpl.c.curves openssl-1.1.1/crypto/ec/ecp_smpl.c
e4b8d1
--- openssl-1.1.1/crypto/ec/ecp_smpl.c.curves	2018-09-11 14:48:21.000000000 +0200
e4b8d1
+++ openssl-1.1.1/crypto/ec/ecp_smpl.c	2018-09-13 09:09:26.841792619 +0200
e4b8d1
@@ -144,6 +144,11 @@ int ec_GFp_simple_group_set_curve(EC_GRO
e4b8d1
         return 0;
e4b8d1
     }
e4b8d1
 
e4b8d1
+    if (BN_num_bits(p) < 224) {
e4b8d1
+        ECerr(EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE, EC_R_UNSUPPORTED_FIELD);
e4b8d1
+        return 0;
e4b8d1
+    }
e4b8d1
+
e4b8d1
     if (ctx == NULL) {
e4b8d1
         ctx = new_ctx = BN_CTX_new();
e4b8d1
         if (ctx == NULL)
e4b8d1
diff -up openssl-1.1.1/test/ecdsatest.c.curves openssl-1.1.1/test/ecdsatest.c
e4b8d1
--- openssl-1.1.1/test/ecdsatest.c.curves	2018-09-11 14:48:24.000000000 +0200
e4b8d1
+++ openssl-1.1.1/test/ecdsatest.c	2018-09-13 09:09:26.841792619 +0200
e4b8d1
@@ -173,6 +173,7 @@ static int x9_62_tests(void)
e4b8d1
     if (!change_rand())
e4b8d1
         goto x962_err;
e4b8d1
 
e4b8d1
+#if 0
e4b8d1
     if (!TEST_true(x9_62_test_internal(NID_X9_62_prime192v1,
e4b8d1
                  "3342403536405981729393488334694600415596881826869351677613",
e4b8d1
                  "5735822328888155254683894997897571951568553642892029982342")))
e4b8d1
@@ -183,6 +184,7 @@ static int x9_62_tests(void)
e4b8d1
                  "3238135532097973577080787768312505059318910517550078427819"
e4b8d1
                              "78505179448783")))
e4b8d1
         goto x962_err;
e4b8d1
+#endif
e4b8d1
 
e4b8d1
 # ifndef OPENSSL_NO_EC2M
e4b8d1
     if (!TEST_true(x9_62_test_internal(NID_X9_62_c2tnb191v1,