]> wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_eng.c
Debug + formatting
[openssl-gost/engine.git] / gost_eng.c
index 1cac94430e344e0cdcd604740ee29d89449a3e66..f7ca26318caa6d458c020470456a0692ad339855 100644 (file)
@@ -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) {