X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gost_eng.c;h=f7ca26318caa6d458c020470456a0692ad339855;hb=361dcb32d8a4b439cdb3cbb85ebd2eebc30f9fbf;hp=1cac94430e344e0cdcd604740ee29d89449a3e66;hpb=a54af1d8031c66f55967fa9faf70b9c5ea96d9b8;p=openssl-gost%2Fengine.git diff --git a/gost_eng.c b/gost_eng.c index 1cac944..f7ca263 100644 --- a/gost_eng.c +++ b/gost_eng.c @@ -50,6 +50,11 @@ static int gost_cipher_nids[] = { NID_magma_cbc, NID_magma_ctr, NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm, +#ifdef NID_kuznyechik_mgm + NID_kuznyechik_mgm, +#else + NID_undef, +#endif 0 }; @@ -122,6 +127,8 @@ static int gost_engine_finish(ENGINE* e) { } static int gost_engine_destroy(ENGINE* e) { + EVP_delete_digest_alias("streebog256"); + EVP_delete_digest_alias("streebog512"); digest_gost_destroy(); digest_gost2012_256_destroy(); digest_gost2012_512_destroy(); @@ -278,6 +285,9 @@ static int bind_gost(ENGINE* e, const char* id) { || !EVP_add_cipher(cipher_gost_grasshopper_ofb()) || !EVP_add_cipher(cipher_gost_grasshopper_ctr()) || !EVP_add_cipher(cipher_gost_grasshopper_ctracpkm()) +#ifdef NID_kuznyechik_mgm + || !EVP_add_cipher(cipher_gost_grasshopper_mgm()) +#endif || !EVP_add_cipher(cipher_magma_cbc()) || !EVP_add_cipher(cipher_magma_ctr()) || !EVP_add_digest(digest_gost()) @@ -293,6 +303,11 @@ static int bind_gost(ENGINE* e, const char* id) { goto end; } + if(!EVP_add_digest_alias(SN_id_GostR3411_2012_256, "streebog256") + || !EVP_add_digest_alias(SN_id_GostR3411_2012_512, "streebog512")) { + goto end; + } + ENGINE_register_all_complete(); ERR_load_GOST_strings(); @@ -363,6 +378,10 @@ static int gost_ciphers(ENGINE* e, const EVP_CIPHER** cipher, *cipher = cipher_gost_grasshopper_ctr(); } else if (nid == NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm) { *cipher = cipher_gost_grasshopper_ctracpkm(); +#ifdef NID_kuznyechik_mgm + } else if (nid == NID_kuznyechik_mgm) { + *cipher = cipher_gost_grasshopper_mgm(); +#endif } else if (nid == NID_magma_cbc) { *cipher = cipher_magma_cbc(); } else if (nid == NID_magma_ctr) {