summaryrefslogtreecommitdiffstats
path: root/providers/implementations
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-04-06 10:03:22 +0200
committerTomas Mraz <tomas@openssl.org>2022-04-11 11:46:04 +0200
commit444513d0b7eace7cf9681dcc222606822d17e71d (patch)
treeba0cd8a847141a52f5736978c81b010aff47bb64 /providers/implementations
parentaea2d74bdce61c8aaa942cf03fb1ca9761e9f3a8 (diff)
sm2: Allow setting 0 length SM2 dist ID param
Fixes #18022 Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18052) (cherry picked from commit 2904d0a2ae0ec6ce23d5cec66ce8c7bdb005d4e5)
Diffstat (limited to 'providers/implementations')
-rw-r--r--providers/implementations/signature/sm2_sig.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/providers/implementations/signature/sm2_sig.c b/providers/implementations/signature/sm2_sig.c
index 3c700ac887..4934dd3513 100644
--- a/providers/implementations/signature/sm2_sig.c
+++ b/providers/implementations/signature/sm2_sig.c
@@ -430,7 +430,7 @@ static int sm2sig_set_ctx_params(void *vpsm2ctx, const OSSL_PARAM params[])
p = OSSL_PARAM_locate_const(params, OSSL_PKEY_PARAM_DIST_ID);
if (p != NULL) {
void *tmp_id = NULL;
- size_t tmp_idlen;
+ size_t tmp_idlen = 0;
/*
* If the 'z' digest has already been computed, the ID is set too late
@@ -438,7 +438,8 @@ static int sm2sig_set_ctx_params(void *vpsm2ctx, const OSSL_PARAM params[])
if (!psm2ctx->flag_compute_z_digest)
return 0;
- if (!OSSL_PARAM_get_octet_string(p, &tmp_id, 0, &tmp_idlen))
+ if (p->data_size != 0
+ && !OSSL_PARAM_get_octet_string(p, &tmp_id, 0, &tmp_idlen))
return 0;
OPENSSL_free(psm2ctx->id);
psm2ctx->id = tmp_id;