From 5506cd0bbd874b164f59e3e6a6a530426a2b38bf Mon Sep 17 00:00:00 2001 From: Pauli Date: Wed, 3 Mar 2021 09:20:21 +1000 Subject: prov: update digests to support modified ctx params Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/14383) --- providers/implementations/digests/md5_sha1_prov.c | 17 ++++++++++------- providers/implementations/digests/mdc2_prov.c | 16 +++++++++------- providers/implementations/digests/sha2_prov.c | 17 ++++++++++------- providers/implementations/digests/sha3_prov.c | 16 +++++++++------- 4 files changed, 38 insertions(+), 28 deletions(-) (limited to 'providers/implementations/digests') diff --git a/providers/implementations/digests/md5_sha1_prov.c b/providers/implementations/digests/md5_sha1_prov.c index e41ac815c5..e7b8389b2b 100644 --- a/providers/implementations/digests/md5_sha1_prov.c +++ b/providers/implementations/digests/md5_sha1_prov.c @@ -42,13 +42,16 @@ static int md5_sha1_set_ctx_params(void *vctx, const OSSL_PARAM params[]) const OSSL_PARAM *p; MD5_SHA1_CTX *ctx = (MD5_SHA1_CTX *)vctx; - if (ctx != NULL && params != NULL) { - p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS); - if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING) - return ossl_md5_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET, - p->data_size, p->data); - } - return 0; + if (ctx == NULL) + return 0; + if (params == NULL) + return 1; + + p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS); + if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING) + return ossl_md5_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET, + p->data_size, p->data); + return 1; } /* ossl_md5_sha1_functions */ diff --git a/providers/implementations/digests/mdc2_prov.c b/providers/implementations/digests/mdc2_prov.c index edd73ed89e..de39f8a104 100644 --- a/providers/implementations/digests/mdc2_prov.c +++ b/providers/implementations/digests/mdc2_prov.c @@ -41,15 +41,17 @@ static int mdc2_set_ctx_params(void *vctx, const OSSL_PARAM params[]) const OSSL_PARAM *p; MDC2_CTX *ctx = (MDC2_CTX *)vctx; - if (ctx != NULL && params != NULL) { - p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_PAD_TYPE); - if (p != NULL && !OSSL_PARAM_get_uint(p, &ctx->pad_type)) { - ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER); - return 0; - } + if (ctx == NULL) + return 0; + if (params == NULL) return 1; + + p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_PAD_TYPE); + if (p != NULL && !OSSL_PARAM_get_uint(p, &ctx->pad_type)) { + ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER); + return 0; } - return 0; /* Null Parameter */ + return 1; } /* ossl_mdc2_functions */ diff --git a/providers/implementations/digests/sha2_prov.c b/providers/implementations/digests/sha2_prov.c index 96f4cc7004..3b731796bd 100644 --- a/providers/implementations/digests/sha2_prov.c +++ b/providers/implementations/digests/sha2_prov.c @@ -45,13 +45,16 @@ static int sha1_set_ctx_params(void *vctx, const OSSL_PARAM params[]) const OSSL_PARAM *p; SHA_CTX *ctx = (SHA_CTX *)vctx; - if (ctx != NULL && params != NULL) { - p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS); - if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING) - return ossl_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET, - p->data_size, p->data); - } - return 0; + if (ctx == NULL) + return 0; + if (params == NULL) + return 1; + + p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_SSL3_MS); + if (p != NULL && p->data_type == OSSL_PARAM_OCTET_STRING) + return ossl_sha1_ctrl(ctx, EVP_CTRL_SSL3_MASTER_SECRET, + p->data_size, p->data); + return 1; } /* ossl_sha1_functions */ diff --git a/providers/implementations/digests/sha3_prov.c b/providers/implementations/digests/sha3_prov.c index 0db6f86be8..168825d475 100644 --- a/providers/implementations/digests/sha3_prov.c +++ b/providers/implementations/digests/sha3_prov.c @@ -284,15 +284,17 @@ static int shake_set_ctx_params(void *vctx, const OSSL_PARAM params[]) const OSSL_PARAM *p; KECCAK1600_CTX *ctx = (KECCAK1600_CTX *)vctx; - if (ctx != NULL && params != NULL) { - p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_XOFLEN); - if (p != NULL && !OSSL_PARAM_get_size_t(p, &ctx->md_size)) { - ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER); - return 0; - } + if (ctx == NULL) + return 0; + if (params == NULL) return 1; + + p = OSSL_PARAM_locate_const(params, OSSL_DIGEST_PARAM_XOFLEN); + if (p != NULL && !OSSL_PARAM_get_size_t(p, &ctx->md_size)) { + ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER); + return 0; } - return 0; /* Null Parameter */ + return 1; } #define IMPLEMENT_SHA3_functions(bitlen) \ -- cgit v1.2.3