From: Pauli Date: Wed, 10 Mar 2021 08:37:07 +0000 (+1000) Subject: update set_ctx_param MAC calls to return 1 for a NULL params X-Git-Tag: openssl-3.0.0-alpha14~304 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a6b62bb427e828edecf52c2280f9958d97142b6;p=thirdparty%2Fopenssl.git update set_ctx_param MAC calls to return 1 for a NULL params Reviewed-by: Shane Lontis (Merged from https://github.com/openssl/openssl/pull/14383) --- diff --git a/providers/implementations/macs/blake2_mac_impl.c b/providers/implementations/macs/blake2_mac_impl.c index 35a162246ee..e1ffa04bfdd 100644 --- a/providers/implementations/macs/blake2_mac_impl.c +++ b/providers/implementations/macs/blake2_mac_impl.c @@ -185,6 +185,9 @@ static int blake2_mac_set_ctx_params(void *vmacctx, const OSSL_PARAM params[]) struct blake2_mac_data_st *macctx = vmacctx; const OSSL_PARAM *p; + if (params == NULL) + return 1; + if ((p = OSSL_PARAM_locate_const(params, OSSL_MAC_PARAM_SIZE)) != NULL) { size_t size; diff --git a/providers/implementations/macs/cmac_prov.c b/providers/implementations/macs/cmac_prov.c index 9807799fe01..0795c245a77 100644 --- a/providers/implementations/macs/cmac_prov.c +++ b/providers/implementations/macs/cmac_prov.c @@ -184,6 +184,9 @@ static int cmac_set_ctx_params(void *vmacctx, const OSSL_PARAM params[]) OSSL_LIB_CTX *ctx = PROV_LIBCTX_OF(macctx->provctx); const OSSL_PARAM *p; + if (params == NULL) + return 1; + if (!ossl_prov_cipher_load_from_params(&macctx->cipher, params, ctx)) return 0; diff --git a/providers/implementations/macs/hmac_prov.c b/providers/implementations/macs/hmac_prov.c index 7188232d7d7..f291e574caa 100644 --- a/providers/implementations/macs/hmac_prov.c +++ b/providers/implementations/macs/hmac_prov.c @@ -294,6 +294,9 @@ static int hmac_set_ctx_params(void *vmacctx, const OSSL_PARAM params[]) const OSSL_PARAM *p; int flags = 0; + if (params == NULL) + return 1; + if (!ossl_prov_digest_load_from_params(&macctx->digest, params, ctx)) return 0; diff --git a/providers/implementations/macs/kmac_prov.c b/providers/implementations/macs/kmac_prov.c index 361ff8e716c..8735705f1be 100644 --- a/providers/implementations/macs/kmac_prov.c +++ b/providers/implementations/macs/kmac_prov.c @@ -379,6 +379,9 @@ static int kmac_set_ctx_params(void *vmacctx, const OSSL_PARAM *params) struct kmac_data_st *kctx = vmacctx; const OSSL_PARAM *p; + if (params == NULL) + return 1; + if ((p = OSSL_PARAM_locate_const(params, OSSL_MAC_PARAM_XOF)) != NULL && !OSSL_PARAM_get_int(p, &kctx->xof_mode)) return 0; diff --git a/providers/implementations/macs/siphash_prov.c b/providers/implementations/macs/siphash_prov.c index 3f2e3267e0c..0181d68ed1f 100644 --- a/providers/implementations/macs/siphash_prov.c +++ b/providers/implementations/macs/siphash_prov.c @@ -195,6 +195,9 @@ static int siphash_set_params(void *vmacctx, const OSSL_PARAM *params) const OSSL_PARAM *p = NULL; size_t size; + if (params == NULL) + return 1; + if ((p = OSSL_PARAM_locate_const(params, OSSL_MAC_PARAM_SIZE)) != NULL) { if (!OSSL_PARAM_get_size_t(p, &size) || !SipHash_set_hash_size(&ctx->siphash, size))