1 AC_DEFUN([ACX_OPENSSL_GOST],[
2 AC_MSG_CHECKING(for OpenSSL GOST support)
7 CPPFLAGS="$CPPFLAGS $CRYPTO_INCLUDES"
8 LIBS="$CRYPTO_LIBS $LIBS"
11 AC_CACHE_VAL([acx_cv_lib_openssl_gost_support],[
12 acx_cv_lib_openssl_gost_support=no
15 #include <openssl/engine.h>
16 #include <openssl/crypto.h>
17 #include <openssl/opensslv.h>
21 const EVP_MD* EVP_GOST_34_11;
23 /* Initialise OpenSSL */
24 OpenSSL_add_all_algorithms();
27 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
28 ENGINE_load_builtin_engines();
30 OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN | OPENSSL_INIT_LOAD_CONFIG, NULL);
33 /* Initialise the GOST engine */
34 eg = ENGINE_by_id("gost");
37 if (ENGINE_init(eg) <= 0)
40 /* better than digest_gost */
41 EVP_GOST_34_11 = ENGINE_get_digest(eg, NID_id_GostR3411_94);
42 if (EVP_GOST_34_11 == NULL)
45 /* from the openssl.cnf */
46 if (ENGINE_register_pkey_asn1_meths(eg) <= 0)
48 if (ENGINE_ctrl_cmd_string(eg,
50 "id-Gost28147-89-CryptoPro-A-ParamSet",
58 AC_MSG_RESULT([Found GOST engine])
59 acx_cv_lib_openssl_gost_support=yes
61 AC_MSG_RESULT([Cannot find GOST engine])
62 AC_MSG_ERROR([OpenSSL library has no GOST support])
64 AC_MSG_WARN([Cannot test, assuming GOST engine])
65 acx_cv_lib_openssl_gost_support=yes
70 CPPFLAGS=$tmp_CPPFLAGS