From a170809d792816448cb4c95f3473531a1a917e69 Mon Sep 17 00:00:00 2001 From: Dmitry Belyavskiy Date: Sun, 3 Jan 2016 23:09:13 +0300 Subject: openssl 1.1.0 compatibility --- gost_pmeth.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'gost_pmeth.c') diff --git a/gost_pmeth.c b/gost_pmeth.c index 2d580ae..6b38e60 100644 --- a/gost_pmeth.c +++ b/gost_pmeth.c @@ -146,8 +146,10 @@ static int pkey_gost_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) case EVP_PKEY_CTRL_SET_IV: OPENSSL_assert(p2 != NULL); pctx->shared_ukm = OPENSSL_malloc((int)p1); - if (!pctx->shared_ukm) + if (pctx->shared_ukm == NULL) { + GOSTerr(GOST_F_PKEY_GOST_CTRL, ERR_R_MALLOC_FAILURE); return 0; + } memcpy(pctx->shared_ukm, p2, (int)p1); return 1; case EVP_PKEY_CTRL_PEER_KEY: @@ -566,13 +568,12 @@ static int pkey_gost_mac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) GOST_R_MAC_KEY_NOT_SET); return 0; } - return mctx->digest->md_ctrl(mctx, EVP_MD_CTRL_SET_KEY, 0, - key); + return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) + (mctx, EVP_MD_CTRL_SET_KEY, 0, key); } else { - return mctx->digest->md_ctrl(mctx, EVP_MD_CTRL_SET_KEY, 32, - &(data->key)); + return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) + (mctx, EVP_MD_CTRL_SET_KEY, 32, &(data->key)); } - return mctx->digest->md_ctrl(mctx, EVP_MD_CTRL_SET_KEY, 32, key); } case EVP_PKEY_CTRL_MAC_LEN: { @@ -707,7 +708,8 @@ static int pkey_gost_mac_signctx(EVP_PKEY_CTX *ctx, unsigned char *sig, return 1; } - mctx->digest->md_ctrl(mctx, EVP_MD_CTRL_MAC_LEN, data->mac_size, NULL); + EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) + (mctx, EVP_MD_CTRL_MAC_LEN, data->mac_size, NULL); ret = EVP_DigestFinal_ex(mctx, sig, &tmpsiglen); *siglen = data->mac_size; return ret; -- cgit v1.1 From aed4f443f97e96ed015a7962606b10e1977edd51 Mon Sep 17 00:00:00 2001 From: Dmitry Belyavskiy Date: Sat, 26 Mar 2016 17:05:07 +0300 Subject: Opaquization fixes + sources formatting. --- gost_pmeth.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'gost_pmeth.c') diff --git a/gost_pmeth.c b/gost_pmeth.c index 6b38e60..d84c7ef 100644 --- a/gost_pmeth.c +++ b/gost_pmeth.c @@ -369,10 +369,12 @@ static int pkey_gost2012cp_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) */ int pack_sign_cp(DSA_SIG *s, int order, unsigned char *sig, size_t *siglen) { + BIGNUM *sig_r = NULL, *sig_s = NULL; + DSA_SIG_get0(&sig_r, &sig_s, s); *siglen = 2 * order; memset(sig, 0, *siglen); - store_bignum(s->s, sig, order); - store_bignum(s->r, sig + order, order); + store_bignum(sig_s, sig, order); + store_bignum(sig_r, sig + order, order); DSA_SIG_free(s); return 1; } @@ -418,14 +420,16 @@ static int pkey_gost_ec_cp_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, DSA_SIG *unpack_cp_signature(const unsigned char *sig, size_t siglen) { DSA_SIG *s; + BIGNUM *sig_r = NULL, *sig_s = NULL; s = DSA_SIG_new(); if (s == NULL) { GOSTerr(GOST_F_UNPACK_CP_SIGNATURE, ERR_R_MALLOC_FAILURE); return NULL; } - s->s = BN_bin2bn(sig, siglen / 2, NULL); - s->r = BN_bin2bn(sig + siglen / 2, siglen / 2, NULL); + DSA_SIG_get0(&sig_r, &sig_s, s); + sig_s = BN_bin2bn(sig, siglen / 2, NULL); + sig_r = BN_bin2bn(sig + siglen / 2, siglen / 2, NULL); return s; } @@ -480,7 +484,7 @@ static int pkey_gost_mac_init(EVP_PKEY_CTX *ctx) struct gost_mac_key *key = EVP_PKEY_get0(pkey); if (key) { data->mac_param_nid = key->mac_param_nid; - data->mac_size = key->mac_size; + data->mac_size = key->mac_size; } } @@ -568,11 +572,11 @@ static int pkey_gost_mac_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2) GOST_R_MAC_KEY_NOT_SET); return 0; } - return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) - (mctx, EVP_MD_CTRL_SET_KEY, 0, key); + return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) + (mctx, EVP_MD_CTRL_SET_KEY, 0, key); } else { - return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) - (mctx, EVP_MD_CTRL_SET_KEY, 32, &(data->key)); + return EVP_MD_meth_get_ctrl(EVP_MD_CTX_md(mctx)) + (mctx, EVP_MD_CTRL_SET_KEY, 32, &(data->key)); } } case EVP_PKEY_CTRL_MAC_LEN: @@ -659,7 +663,7 @@ static int pkey_gost_mac_keygen_base(EVP_PKEY_CTX *ctx, return 0; memcpy(keydata->key, data->key, 32); keydata->mac_param_nid = data->mac_param_nid; - keydata->mac_size = data->mac_size; + keydata->mac_size = data->mac_size; EVP_PKEY_assign(pkey, mac_nid, keydata); return 1; } @@ -678,9 +682,9 @@ static int pkey_gost_mac_signctx_init(EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx) { struct gost_mac_pmeth_data *data = EVP_PKEY_CTX_get_data(ctx); - if (data == NULL) { - pkey_gost_mac_init(ctx); - } + if (data == NULL) { + pkey_gost_mac_init(ctx); + } data = EVP_PKEY_CTX_get_data(ctx); if (!data) { -- cgit v1.1 From a72a02c4dd5778eea83db6e9e17d89f0d2b278dd Mon Sep 17 00:00:00 2001 From: Dmitry Belyavskiy Date: Sat, 19 Nov 2016 21:54:18 +0300 Subject: Build with -Werror --- gost_pmeth.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gost_pmeth.c') diff --git a/gost_pmeth.c b/gost_pmeth.c index d84c7ef..2ef949d 100644 --- a/gost_pmeth.c +++ b/gost_pmeth.c @@ -369,8 +369,8 @@ static int pkey_gost2012cp_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey) */ int pack_sign_cp(DSA_SIG *s, int order, unsigned char *sig, size_t *siglen) { - BIGNUM *sig_r = NULL, *sig_s = NULL; - DSA_SIG_get0(&sig_r, &sig_s, s); + const BIGNUM *sig_r = NULL, *sig_s = NULL; + DSA_SIG_get0(s, &sig_r, &sig_s); *siglen = 2 * order; memset(sig, 0, *siglen); store_bignum(sig_s, sig, order); @@ -420,14 +420,14 @@ static int pkey_gost_ec_cp_sign(EVP_PKEY_CTX *ctx, unsigned char *sig, DSA_SIG *unpack_cp_signature(const unsigned char *sig, size_t siglen) { DSA_SIG *s; - BIGNUM *sig_r = NULL, *sig_s = NULL; + const BIGNUM *sig_r = NULL, *sig_s = NULL; s = DSA_SIG_new(); if (s == NULL) { GOSTerr(GOST_F_UNPACK_CP_SIGNATURE, ERR_R_MALLOC_FAILURE); return NULL; } - DSA_SIG_get0(&sig_r, &sig_s, s); + DSA_SIG_get0(s, &sig_r, &sig_s); sig_s = BN_bin2bn(sig, siglen / 2, NULL); sig_r = BN_bin2bn(sig + siglen / 2, siglen / 2, NULL); return s; -- cgit v1.1