]> www.wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_ec_keyx.c
Bugfix.
[openssl-gost/engine.git] / gost_ec_keyx.c
index 2dd0d3ad11939bb797ed93e69cc8b56f1187e8a9..929c7861765e4288906159f9cdc93c9daaf545fb 100644 (file)
@@ -189,7 +189,7 @@ int pkey_GOST_ECcp_encrypt(EVP_PKEY_CTX *pctx, unsigned char *out,
     }
     if (!get_gost_engine_param(GOST_PARAM_CRYPT_PARAMS)
         && param == gost_cipher_list) {
-        param = gost_cipher_list + 1;
+        param = gost_cipher_list;
     }
     if (out) {
         int dgst_nid = NID_undef;
@@ -229,7 +229,7 @@ int pkey_GOST_ECcp_encrypt(EVP_PKEY_CTX *pctx, unsigned char *out,
     }
     ASN1_OBJECT_free(gkt->key_agreement_info->cipher);
     gkt->key_agreement_info->cipher = OBJ_nid2obj(param->nid);
-    if (key_is_ephemeral && sec_key)
+    if (key_is_ephemeral)
         EVP_PKEY_free(sec_key);
     if (!key_is_ephemeral) {
         /* Set control "public key from client certificate used" */
@@ -244,7 +244,7 @@ int pkey_GOST_ECcp_encrypt(EVP_PKEY_CTX *pctx, unsigned char *out,
     GOST_KEY_TRANSPORT_free(gkt);
     return ret;
  err:
-    if (key_is_ephemeral && sec_key)
+    if (key_is_ephemeral)
         EVP_PKEY_free(sec_key);
     GOST_KEY_TRANSPORT_free(gkt);
     return -1;
@@ -331,9 +331,7 @@ int pkey_GOST_ECcp_decrypt(EVP_PKEY_CTX *pctx, unsigned char *key,
 
     ret = 1;
  err:
-    if (eph_key)
-        EVP_PKEY_free(eph_key);
-    if (gkt)
-        GOST_KEY_TRANSPORT_free(gkt);
+    EVP_PKEY_free(eph_key);
+    GOST_KEY_TRANSPORT_free(gkt);
     return ret;
 }