]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - test_curves.c
Delete .travis.yml
[openssl-gost/engine.git] / test_curves.c
index 1ee15b0fab706e665f53258a5ac1f4799b18d463..27617673dea7ddd0f654ec1369b9434d089e5842 100644 (file)
 #define cBLUE  "\033[1;34m"
 #define cDBLUE "\033[0;34m"
 #define cNORM  "\033[m"
-#define TEST_ASSERT(e) {if ((test = (e))) \
-                printf(cRED "  Test FAILED\n" cNORM); \
-            else \
-                printf(cGREEN "  Test passed\n" cNORM);}
+#define TEST_ASSERT(e) { \
+       test = e; \
+       if (test) \
+               printf(cRED "  Test FAILED\n" cNORM); \
+       else \
+               printf(cGREEN "  Test passed\n" cNORM); \
+}
 
 struct test_curve {
     int nid;
@@ -43,28 +46,19 @@ struct test_curve {
 static struct test_curve test_curves[] = {
 #if 2001
     { NID_id_GostR3410_2001_TestParamSet, },
+#endif
     { NID_id_GostR3410_2001_CryptoPro_A_ParamSet },
     { NID_id_GostR3410_2001_CryptoPro_B_ParamSet },
     { NID_id_GostR3410_2001_CryptoPro_C_ParamSet },
     { NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet },
     { NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet },
-#endif
-    {
-       NID_id_tc26_gost_3410_2012_512_paramSetA,
-       "id-tc26-gost-3410-2012-512-paramSetA",
-    },
-    {
-       NID_id_tc26_gost_3410_2012_512_paramSetB,
-       "id-tc26-gost-3410-2012-512-paramSetB",
-    },
-    {
-       NID_id_tc26_gost_3410_2012_512_paramSetC,
-       "id-tc26-gost-3410-2012-512-paramSetC",
-    },
-    {
-       NID_id_tc26_gost_3410_2012_256_paramSetA,
-       "id-tc26-gost-3410-2012-256-paramSetA",
-    },
+    { NID_id_tc26_gost_3410_2012_512_paramSetA, "id-tc26-gost-3410-2012-512-paramSetA", },
+    { NID_id_tc26_gost_3410_2012_512_paramSetB, "id-tc26-gost-3410-2012-512-paramSetB", },
+    { NID_id_tc26_gost_3410_2012_512_paramSetC, "id-tc26-gost-3410-2012-512-paramSetC", },
+    { NID_id_tc26_gost_3410_2012_256_paramSetA, "id-tc26-gost-3410-2012-256-paramSetA", },
+    { NID_id_tc26_gost_3410_2012_256_paramSetB, "id-tc26-gost-3410-2012-256-paramSetB", },
+    { NID_id_tc26_gost_3410_2012_256_paramSetC, "id-tc26-gost-3410-2012-256-paramSetC", },
+    { NID_id_tc26_gost_3410_2012_256_paramSetD, "id-tc26-gost-3410-2012-256-paramSetD", },
     0,
 };
 
@@ -177,6 +171,15 @@ static int parameter_test(struct test_curve *tc)
     BN_mod_add(xxx, xxx, ax, p, ctx);
     BN_mod_add(xxx, xxx, b, p, ctx);
     T(BN_cmp(yy, xxx) == 0);
+    BN_free(yy);
+    BN_free(r);
+    BN_free(xxx);
+    BN_free(ax);
+    BN_free(p);
+    BN_free(a);
+    BN_free(b);
+    BN_free(x);
+    BN_free(y);
 
     /* Check order */
     const BIGNUM *order;
@@ -189,6 +192,7 @@ static int parameter_test(struct test_curve *tc)
     T(EC_POINT_mul(group, point, NULL, generator, order, ctx));
     /* generator * order is the point at infinity? */
     T(EC_POINT_is_at_infinity(group, point) == 1);
+    EC_POINT_free(point);
 
     /* Check if order is cyclic */
     BIGNUM *k1 = BN_new();
@@ -200,12 +204,19 @@ static int parameter_test(struct test_curve *tc)
     BN_add(k2, k2, order);
     T(EC_POINT_mul(group, p1, NULL, generator, k1, ctx));
     T(EC_POINT_mul(group, p2, NULL, generator, k2, ctx));
+    T(EC_POINT_cmp(group, p1, p2, ctx) == 0);
+    BN_free(k1);
+    BN_free(k2);
+    EC_POINT_free(p1);
+    EC_POINT_free(p2);
 
     /* Cofactor is 1 or 4 */
     const BIGNUM *c;
     T(c = EC_GROUP_get0_cofactor(group));
     T(BN_is_word(c, 1) || BN_is_word(c, 4));
 
+    BN_CTX_free(ctx);
+    EC_KEY_free(ec);
     TEST_ASSERT(0);
     return test;
 }
@@ -214,11 +225,22 @@ int main(int argc, char **argv)
 {
     int ret = 0;
 
+    setenv("OPENSSL_ENGINES", ENGINE_DIR, 0);
+    OPENSSL_add_all_algorithms_conf();
+    ERR_load_crypto_strings();
+    ENGINE *eng;
+    T(eng = ENGINE_by_id("gost"));
+    T(ENGINE_init(eng));
+    T(ENGINE_set_default(eng, ENGINE_METHOD_ALL));
+
     struct test_curve *tc;
     for (tc = test_curves; tc->nid; tc++) {
        ret |= parameter_test(tc);
     }
 
+    ENGINE_finish(eng);
+    ENGINE_free(eng);
+
     if (ret)
        printf(cDRED "= Some tests FAILED!\n" cNORM);
     else