]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - test_sign.c
gost_prov: OPENSSL_free what is OPENSSL_zalloc'd
[openssl-gost/engine.git] / test_sign.c
index c76855c0d8bfec71058fb7a7706a9e7f69331b09..50b6643ef79286ad54a6b237d87ae68895210113 100644 (file)
@@ -7,7 +7,11 @@
  * See https://www.openssl.org/source/license.html for details
  */
 
-#include "e_gost_err.h"
+#ifdef _MSC_VER
+# pragma warning(push, 3)
+# include <openssl/applink.c>
+# pragma warning(pop)
+#endif
 #include "gost_lcl.h"
 #include <openssl/evp.h>
 #include <openssl/rand.h>
 #include <openssl/ec.h>
 #include <openssl/bn.h>
 #include <openssl/store.h>
+#include <openssl/engine.h>
 #include <string.h>
 #include <stdlib.h>
 
-#define T(e) ({ if (!(e)) { \
-               ERR_print_errors_fp(stderr); \
-               OpenSSLDie(__FILE__, __LINE__, #e); \
-           } \
-        })
-#define TE(e) ({ if (!(e)) { \
-               ERR_print_errors_fp(stderr); \
-               fprintf(stderr, "Error at %s:%d %s\n", __FILE__, __LINE__, #e); \
-               return -1; \
-           } \
-        })
+#define T(e) \
+    if (!(e)) { \
+        ERR_print_errors_fp(stderr); \
+        OpenSSLDie(__FILE__, __LINE__, #e); \
+    }
+#define TE(e) \
+    if (!(e)) { \
+        ERR_print_errors_fp(stderr); \
+        fprintf(stderr, "Error at %s:%d %s\n", __FILE__, __LINE__, #e); \
+        return -1; \
+    }
 
 #define cRED   "\033[1;31m"
 #define cDRED  "\033[0;31m"
 #define cCYAN  "\033[1;36m"
 #define cNORM  "\033[m"
 #define TEST_ASSERT(e) {if ((test = (e))) \
-                printf(cRED "  Test FAILED\n" cNORM); \
+                printf(cRED "  Test FAILED" cNORM "\n"); \
             else \
-                printf(cGREEN "  Test passed\n" cNORM);}
+                printf(cGREEN "  Test passed" cNORM "\n");}
 
 struct test_sign {
     const char *name;
-    unsigned int nid;
+    int nid;
     size_t bits;
     const char *paramset;
 };
@@ -83,17 +88,17 @@ static void hexdump(const void *ptr, size_t len)
 static void print_test_tf(int err, int val, const char *t, const char *f)
 {
     if (err == 1)
-       printf(cGREEN "%s\n" cNORM, t);
+       printf(cGREEN "%s" cNORM "\n", t);
     else
-       printf(cRED "%s [%d]\n" cNORM, f, val);
+       printf(cRED "%s [%d]" cNORM "\n", f, val);
 }
 
 static void print_test_result(int err)
 {
     if (err == 1)
-       printf(cGREEN "success\n" cNORM);
+       printf(cGREEN "success" cNORM "\n");
     else if (err == 0)
-       printf(cRED "failure\n" cNORM);
+       printf(cRED "failure" cNORM "\n");
     else
        ERR_print_errors_fp(stderr);
 }
@@ -103,7 +108,7 @@ static int test_sign(struct test_sign *t)
     int ret = 0, err;
     size_t len = t->bits / 8;
 
-    printf(cBLUE "Test %s:\n" cNORM, t->name);
+    printf(cBLUE "Test %s:" cNORM "\n", t->name);
 
     /* Signature type from size. */
     int type = 0;
@@ -177,7 +182,7 @@ static int test_sign(struct test_sign *t)
     fflush(stdout);
     pkey = NULL;
     OSSL_STORE_CTX *cts;
-    T(cts = OSSL_STORE_attach(bp, "file", NULL, NULL, NULL, NULL, NULL, NULL));
+    T(cts = OSSL_STORE_attach(bp, "file", NULL, NULL, NULL, NULL, NULL, NULL, NULL));
     for (;;) {
        OSSL_STORE_INFO *info = OSSL_STORE_load(cts);
        if (!info) {
@@ -197,7 +202,7 @@ static int test_sign(struct test_sign *t)
        ret |= err;
        EVP_PKEY_free(pkey);
     } else
-       printf(cCYAN "skipped\n" cNORM);
+       printf(cCYAN "skipped" cNORM "\n");
     BIO_free(bp);
 
     /* Convert to DER and back, using memory API. */
@@ -239,7 +244,7 @@ static int test_sign(struct test_sign *t)
     const EC_GROUP *group = EC_KEY_get0_group(ec);
     int curve_name = EC_GROUP_get_curve_name(group);
     err = curve_name == t->nid;
-    printf("\tcurve_name (%u):\t", t->nid);
+    printf("\tcurve_name (%d):\t", t->nid);
     print_test_tf(err, curve_name, "match", "mismatch");
     ret |= !err;
 
@@ -318,24 +323,15 @@ 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_sign *sp;
     for (sp = test_signs; sp->name; sp++)
        ret |= test_sign(sp);
 
-    ENGINE_finish(eng);
-    ENGINE_free(eng);
-
     if (ret)
-       printf(cDRED "= Some tests FAILED!\n" cNORM);
+       printf(cDRED "= Some tests FAILED!" cNORM "\n");
     else
-       printf(cDGREEN "= All tests passed!\n" cNORM);
+       printf(cDGREEN "= All tests passed!" cNORM "\n");
     return ret;
 }