X-Git-Url: http://www.wagner.pp.ru/gitweb/?a=blobdiff_plain;f=gost_ctl.c;h=60280b1c1322830c37cf9f78ef8b6f109ff537f2;hb=HEAD;hp=8e3c1c62462adcfbcaba428cdbba676b2cdb8ec9;hpb=57d07eb0dc22bee10aebb0bd37cbdf2258413564;p=openssl-gost%2Fengine.git diff --git a/gost_ctl.c b/gost_ctl.c index 8e3c1c6..60280b1 100644 --- a/gost_ctl.c +++ b/gost_ctl.c @@ -15,19 +15,8 @@ #include "gost_lcl.h" static char *gost_params[GOST_PARAM_MAX + 1] = { NULL }; -static const char *gost_envnames[] = { "CRYPT_PARAMS", "GOST_PBE_HMAC" }; - -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}, - {0, NULL, NULL, 0} -}; +static const char *gost_envnames[] = + { "CRYPT_PARAMS", "GOST_PBE_HMAC", "GOST_PK_FORMAT" }; void gost_param_free() { @@ -44,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; } @@ -53,7 +43,7 @@ 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]; @@ -70,14 +60,16 @@ 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; + } OPENSSL_free(gost_params[param]); gost_params[param] = BUF_strdup(tmp);