]> wagner.pp.ru Git - openssl-gost/engine.git/blobdiff - gost_ec_keyx.c
added more test for mac 12
[openssl-gost/engine.git] / gost_ec_keyx.c
index 2dd0d3ad11939bb797ed93e69cc8b56f1187e8a9..60b5e7798a177b89b5c6b3bae9e9ddd8c0037e21 100644 (file)
@@ -29,9 +29,9 @@ static int VKO_compute_key(unsigned char *shared_key, size_t shared_key_size,
     BN_CTX *ctx = BN_CTX_new();
     EVP_MD_CTX mdctx;
     const EVP_MD *md;
-    int effective_dgst_nid = (dgst_nid == NID_id_GostR3411_2012_512) ?
-        NID_id_GostR3411_2012_256 : dgst_nid;
-    int buf_len = (dgst_nid == NID_id_GostR3411_2012_512) ? 128 : 64,
+    int effective_dgst_nid = (dgst_nid == NID_md_gost12_512) ?
+        NID_md_gost12_256 : dgst_nid;
+    int buf_len = (dgst_nid == NID_md_gost12_512) ? 128 : 64,
         half_len = buf_len >> 1;
 
     if (!ctx) {
@@ -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;
 }