]> wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_eng.c
Build gcc-asan-openssl-master on MacOS X as well
[openssl-gost/engine.git] / gost_eng.c
index 08fc59739101013a1ef3be7a65699e1e5bc0c82b..f930faa2f5e2043911206be1ecffd13e33728b0a 100644 (file)
@@ -24,6 +24,22 @@ static const char* engine_gost_id = "gost";
 static const char* engine_gost_name =
         "Reference implementation of GOST engine";
 
+const ENGINE_CMD_DEFN gost_cmds[] = {
+    {GOST_CTRL_CRYPT_PARAMS,
+     "CRYPT_PARAMS",
+     "OID of default GOST 28147-89 parameters",
+     ENGINE_CMD_FLAG_STRING},
+    {GOST_CTRL_PBE_PARAMS,
+     "PBE_PARAMS",
+     "Shortname of default digest alg for PBE",
+     ENGINE_CMD_FLAG_STRING},
+    {GOST_CTRL_PK_FORMAT,
+     "GOST_PK_FORMAT",
+     "Private key format params",
+     ENGINE_CMD_FLAG_STRING},
+    {0, NULL, NULL, 0}
+};
+
 /* Symmetric cipher and digest function registrar */
 
 static int gost_ciphers(ENGINE* e, const EVP_CIPHER** cipher,
@@ -39,6 +55,7 @@ static int gost_pkey_asn1_meths(ENGINE* e, EVP_PKEY_ASN1_METHOD** ameth,
                                 const int** nids, int nid);
 
 static EVP_PKEY_METHOD* pmeth_GostR3410_2001 = NULL,
+        * pmeth_GostR3410_2001DH = NULL,
         * pmeth_GostR3410_2012_256 = NULL,
         * pmeth_GostR3410_2012_512 = NULL,
         * pmeth_Gost28147_MAC = NULL, * pmeth_Gost28147_MAC_12 = NULL,
@@ -46,6 +63,7 @@ static EVP_PKEY_METHOD* pmeth_GostR3410_2001 = NULL,
         * pmeth_magma_mac_acpkm = NULL,  * pmeth_grasshopper_mac_acpkm = NULL;
 
 static EVP_PKEY_ASN1_METHOD* ameth_GostR3410_2001 = NULL,
+        * ameth_GostR3410_2001DH = NULL,
         * ameth_GostR3410_2012_256 = NULL,
         * ameth_GostR3410_2012_512 = NULL,
         * ameth_Gost28147_MAC = NULL, * ameth_Gost28147_MAC_12 = NULL,
@@ -97,6 +115,13 @@ static struct gost_meth_minfo {
         "GOST2001",
         "GOST R 34.10-2001",
     },
+    {
+        NID_id_GostR3410_2001DH,
+        &pmeth_GostR3410_2001DH,
+        &ameth_GostR3410_2001DH,
+        "GOST2001 DH",
+        "GOST R 34.10-2001 DH",
+    },
     {
         NID_id_Gost28147_89_MAC,
         &pmeth_Gost28147_MAC,
@@ -177,9 +202,9 @@ static int gost_engine_destroy(ENGINE* e) {
     int i;
 
     for (i = 0; i < OSSL_NELEM(gost_digest_array); i++)
-       GOST_deinit_digest(gost_digest_array[i]);
+        GOST_deinit_digest(gost_digest_array[i]);
     for (i = 0; i < OSSL_NELEM(gost_cipher_array); i++)
-       GOST_deinit_cipher(gost_cipher_array[i]);
+        GOST_deinit_cipher(gost_cipher_array[i]);
 
     gost_param_free();
 
@@ -262,12 +287,12 @@ static int bind_gost(ENGINE* e, const char* id) {
 
     int i;
     for (i = 0; i < OSSL_NELEM(gost_cipher_array); i++) {
-       if (!EVP_add_cipher(GOST_init_cipher(gost_cipher_array[i])))
+        if (!EVP_add_cipher(GOST_init_cipher(gost_cipher_array[i])))
             goto end;
     }
 
     for (i = 0; i < OSSL_NELEM(gost_digest_array); i++) {
-       if (!EVP_add_digest(GOST_init_digest(gost_digest_array[i])))
+        if (!EVP_add_digest(GOST_init_digest(gost_digest_array[i])))
             goto end;
     }
 
@@ -301,8 +326,8 @@ static int gost_digests(ENGINE *e, const EVP_MD **digest,
 
     for (i = 0; i < OSSL_NELEM(gost_digest_array); i++)
         if (nid == gost_digest_array[i]->nid) {
-           *digest = GOST_init_digest(gost_digest_array[i]);
-           return 1;
+            *digest = GOST_init_digest(gost_digest_array[i]);
+            return 1;
         }
     *digest = NULL;
     return 0;
@@ -325,8 +350,8 @@ static int gost_ciphers(ENGINE *e, const EVP_CIPHER **cipher,
 
     for (i = 0; i < OSSL_NELEM(gost_cipher_array); i++)
         if (nid == gost_cipher_array[i]->nid) {
-           *cipher = GOST_init_cipher(gost_cipher_array[i]);
-           return 1;
+            *cipher = GOST_init_cipher(gost_cipher_array[i]);
+            return 1;
         }
     *cipher = NULL;
     return 0;