free up gost ciphers Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
diff --git a/engines/ccgost/gost_crypt.c b/engines/ccgost/gost_crypt.c index 9c6dcc5..63009a2 100644 --- a/engines/ccgost/gost_crypt.c +++ b/engines/ccgost/gost_crypt.c
@@ -109,6 +109,14 @@ return _hidden_gost89_cnt; } +void cipher_gost_destroy(void) +{ + EVP_CIPHER_meth_free(_hidden_Gost28147_89_cipher); + _hidden_Gost28147_89_cipher = NULL; + EVP_CIPHER_meth_free(_hidden_gost89_cnt); + _hidden_gost89_cnt = NULL; +} + /* Implementation of GOST 28147-89 in MAC (imitovstavka) mode */ /* Init functions which set specific parameters */ static int gost_imit_init_cpa(EVP_MD_CTX *ctx);
diff --git a/engines/ccgost/gost_eng.c b/engines/ccgost/gost_eng.c index bc43848..38ed25c 100644 --- a/engines/ccgost/gost_eng.c +++ b/engines/ccgost/gost_eng.c
@@ -77,6 +77,7 @@ static int gost_engine_destroy(ENGINE *e) { digest_gost_destroy(); + cipher_gost_destroy(); imit_gost_cpa_destroy(); gost_param_free();
diff --git a/engines/ccgost/gost_lcl.h b/engines/ccgost/gost_lcl.h index 895e2d6..61f657c 100644 --- a/engines/ccgost/gost_lcl.h +++ b/engines/ccgost/gost_lcl.h
@@ -145,6 +145,7 @@ /* EVP_MD structure for GOST R 34.11 */ EVP_MD *digest_gost(void); void digest_gost_destroy(void); +void cipher_gost_destroy(void); /* EVP_MD structure for GOST 28147 in MAC mode */ const EVP_MD *imit_gost_cpa(void); void imit_gost_cpa_destroy(void);