]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_ctl.c
tcl_tests: ca.try: Ignore openssl crl exit status for 'corrupted CRL' test
[openssl-gost/engine.git] / gost_ctl.c
index 6c93c4584d6ddd2cfa63d9d877e1e01e2a5b9703..60280b1c1322830c37cf9f78ef8b6f109ff537f2 100644 (file)
 #include "gost_lcl.h"
 
 static char *gost_params[GOST_PARAM_MAX + 1] = { NULL };
-static const char *gost_envnames[] = { "CRYPT_PARAMS" };
-
-const ENGINE_CMD_DEFN gost_cmds[] = {
-/*- { GOST_CTRL_RNG,
-    "RNG",
-    "Type of random number generator to use",
-    ENGINE_CMD_FLAG_STRING
-    },
-    { GOST_CTRL_RNG_PARAMS,
-    "RNG_PARAMS",
-    "Parameter for random number generator",
-    ENGINE_CMD_FLAG_STRING
-    },
-*/ {GOST_CTRL_CRYPT_PARAMS,
-           "CRYPT_PARAMS",
-           "OID of default GOST 28147-89 parameters",
-           ENGINE_CMD_FLAG_STRING},
-    {0, NULL, NULL, 0}
-};
+static const char *gost_envnames[] =
+    { "CRYPT_PARAMS", "GOST_PBE_HMAC", "GOST_PK_FORMAT" };
 
 void gost_param_free()
 {
     int i;
-    for (i = 0; i <= GOST_PARAM_MAX; i++)
-        if (gost_params[i] != NULL) {
-            OPENSSL_free(gost_params[i]);
-            gost_params[i] = NULL;
-        }
+
+    for (i = 0; i <= GOST_PARAM_MAX; i++) {
+        OPENSSL_free(gost_params[i]);
+        gost_params[i] = NULL;
+    }
 
 }
 
@@ -50,8 +33,9 @@ int gost_control_func(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
 {
     int param = cmd - ENGINE_CMD_BASE;
     int ret = 0;
-    if (param < 0 || param > GOST_PARAM_MAX)
+    if (param < 0 || param > GOST_PARAM_MAX) {
         return -1;
+    }
     ret = gost_set_default_param(param, p);
     return ret;
 }
@@ -59,15 +43,14 @@ int gost_control_func(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
 const char *get_gost_engine_param(int param)
 {
     char *tmp;
-    if (param < 0 || param > GOST_PARAM_MAX)
+    if (param < 0 || param >= GOST_PARAM_MAX)
         return NULL;
     if (gost_params[param] != NULL) {
         return gost_params[param];
     }
     tmp = getenv(gost_envnames[param]);
     if (tmp) {
-        if (gost_params[param])
-            OPENSSL_free(gost_params[param]);
+        OPENSSL_free(gost_params[param]);
         gost_params[param] = BUF_strdup(tmp);
         return gost_params[param];
     }
@@ -77,16 +60,17 @@ const char *get_gost_engine_param(int param)
 int gost_set_default_param(int param, const char *value)
 {
     const char *tmp;
-    if (param < 0 || param > GOST_PARAM_MAX)
+    if (param < 0 || param >= GOST_PARAM_MAX)
         return 0;
     tmp = getenv(gost_envnames[param]);
+
     /*
      * if there is value in the environment, use it, else -passed string *
      */
-    if (!tmp)
+    if (!tmp) {
         tmp = value;
-    if (gost_params[param])
-        OPENSSL_free(gost_params[param]);
+    }
+    OPENSSL_free(gost_params[param]);
     gost_params[param] = BUF_strdup(tmp);
 
     return 1;