|
|
@ -823,7 +823,8 @@ namespace crypto |
|
|
|
|
|
|
|
|
|
|
|
bool InitGost () |
|
|
|
bool InitGost () |
|
|
|
{ |
|
|
|
{ |
|
|
|
#if OPENSSL_API_COMPAT < 0x10100000L |
|
|
|
#ifndef OPENSSL_NO_ENGINE |
|
|
|
|
|
|
|
#if (OPENSSL_VERSION_NUMBER < 0x010100000) || defined(LIBRESSL_VERSION_NUMBER) |
|
|
|
ENGINE_load_builtin_engines (); |
|
|
|
ENGINE_load_builtin_engines (); |
|
|
|
ENGINE_load_dynamic (); |
|
|
|
ENGINE_load_dynamic (); |
|
|
|
#else |
|
|
|
#else |
|
|
@ -843,20 +844,26 @@ namespace crypto |
|
|
|
EVP_PKEY_keygen (ctx, &g_GostPKEY); // it seems only way to fill with correct params
|
|
|
|
EVP_PKEY_keygen (ctx, &g_GostPKEY); // it seems only way to fill with correct params
|
|
|
|
EVP_PKEY_CTX_free (ctx); |
|
|
|
EVP_PKEY_CTX_free (ctx); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
LogPrint (eLogError, "Can't initialize GOST. Engines are not supported"); |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void TerminateGost () |
|
|
|
void TerminateGost () |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (g_GostPKEY) |
|
|
|
if (g_GostPKEY) |
|
|
|
EVP_PKEY_free (g_GostPKEY); |
|
|
|
EVP_PKEY_free (g_GostPKEY); |
|
|
|
|
|
|
|
#ifndef OPENSSL_NO_ENGINE |
|
|
|
if (g_GostEngine) |
|
|
|
if (g_GostEngine) |
|
|
|
{ |
|
|
|
{ |
|
|
|
ENGINE_finish (g_GostEngine); |
|
|
|
ENGINE_finish (g_GostEngine); |
|
|
|
ENGINE_free (g_GostEngine); |
|
|
|
ENGINE_free (g_GostEngine); |
|
|
|
#if OPENSSL_API_COMPAT < 0x10100000L |
|
|
|
#if (OPENSSL_VERSION_NUMBER < 0x010100000) || defined(LIBRESSL_VERSION_NUMBER) |
|
|
|
ENGINE_cleanup(); |
|
|
|
ENGINE_cleanup(); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitCrypto (bool precomputation, bool withGost) |
|
|
|
void InitCrypto (bool precomputation, bool withGost) |
|
|
|