]> wagner.pp.ru Git - openssl-gost/engine.git/commitdiff
Merge pull request #152 from vt-alt/fix151
authorDmitry Belyavskiy <beldmit@users.noreply.github.com>
Fri, 12 Jul 2019 09:32:14 +0000 (12:32 +0300)
committerGitHub <noreply@github.com>
Fri, 12 Jul 2019 09:32:14 +0000 (12:32 +0300)
Fix test_grasshopper and test_keyexpimp engine init

.travis.yml
test_grasshopper.c
test_keyexpimp.c

index d5224fc65f861a0f3a89bcd0894b54494c97358b..b3c120f1bdb0d68cc7e3ce346f51587da7e50e33 100644 (file)
@@ -29,6 +29,7 @@ matrix:
 
 
 before_script:
+  - curl -L https://cpanmin.us | sudo perl - --sudo App::cpanminus
   - sudo cpanm --notest Test2::V0 > build.log 2>&1 || (cat build.log && exit 1)
   - git clone --depth 1 -b ${OPENSSL_BRANCH} https://github.com/openssl/openssl.git
   - cd openssl
index b148ef10501e9dfee82a98323081f5c3c5ea59ef..53291292e2206214ccdceedaa11d75cc4cc8ecec 100644 (file)
@@ -368,6 +368,14 @@ int main(int argc, char **argv)
     int ret = 0;
     const struct testcase *t;
 
+    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));
+
     for (t = testcases; t->name; t++) {
        int inplace;
        const char *standard = t->acpkm? "R 23565.1.017-2018" : "GOST R 34.13-2015";
@@ -383,9 +391,7 @@ int main(int argc, char **argv)
                t->iv, t->iv_size, t->acpkm);
     }
 
-    /* preload cbc cipher for omac set key */
-    EVP_add_cipher(cipher_gost_grasshopper_cbc());
-
+    printf(cBLUE "# Tests for omac\n" cNORM);
     ret |= test_mac("OMAC", "GOST R 34.13-2015", grasshopper_omac(), 0, 0,
         P, sizeof(P), MAC_omac, sizeof(MAC_omac));
     ret |= test_mac("OMAC-ACPKM", "R 1323565.1.017-2018 A.4.1",
@@ -397,6 +403,9 @@ int main(int argc, char **argv)
         P_omac_acpkm2, sizeof(P_omac_acpkm2),
         MAC_omac_acpkm2, sizeof(MAC_omac_acpkm2));
 
+    ENGINE_finish(eng);
+    ENGINE_free(eng);
+
     if (ret)
        printf(cDRED "= Some tests FAILED!\n" cNORM);
     else
index 5e3528d99b93b43e32cf4b12ad5f0175ebf14b31..de7b1fa409bd3038d558716adf01fcc4d9bd0817 100644 (file)
@@ -9,6 +9,11 @@
 #include "e_gost_err.h"
 #include "gost_grasshopper_cipher.h"
 
+#define T(e) if (!(e)) {\
+       ERR_print_errors_fp(stderr);\
+       OpenSSLDie(__FILE__, __LINE__, #e);\
+    }
+
 static void hexdump(FILE *f, const char *title, const unsigned char *s, int l)
 {
     int n = 0;
@@ -92,13 +97,15 @@ int main(void)
     unsigned char tlsseq[8];
     unsigned char out[32];
 
-    OpenSSL_add_all_algorithms();
+    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));
+
     memset(buf, 0, sizeof(buf));
-    /* Make test work without config. */
-    EVP_add_cipher(cipher_magma_ctr());
-    EVP_add_cipher(cipher_magma_cbc());
-    EVP_add_digest(digest_gost2012_256());
-    EVP_add_digest(magma_omac());
 
     memset(kroot, 0xFF, 32);
     memset(tlsseq, 0, 8);
@@ -160,5 +167,8 @@ int main(void)
         }
     }
 
+    ENGINE_finish(eng);
+    ENGINE_free(eng);
+
     return err;
 }