X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gost_ec_keyx.c;h=60b5e7798a177b89b5c6b3bae9e9ddd8c0037e21;hb=cc15b541884dadd6b8bebc9606a318f27c47c468;hp=2dd0d3ad11939bb797ed93e69cc8b56f1187e8a9;hpb=cba16944bff9d8c5dcf37be641822cd3de6d2ec1;p=openssl-gost%2Fengine.git diff --git a/gost_ec_keyx.c b/gost_ec_keyx.c index 2dd0d3a..60b5e77 100644 --- a/gost_ec_keyx.c +++ b/gost_ec_keyx.c @@ -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; }