From: Pauli Date: Wed, 30 Jul 2025 02:31:55 +0000 (+1000) Subject: decode_der2key: convert to use generated parameter parsing X-Git-Tag: openssl-3.6.0-alpha1~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=360388e55d9d8ce31f06137eec9815fcaedd3b28;p=thirdparty%2Fopenssl.git decode_der2key: convert to use generated parameter parsing Reviewed-by: Paul Yang Reviewed-by: Shane Lontis Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/28152) --- diff --git a/providers/implementations/encode_decode/decode_der2key.c.in b/providers/implementations/encode_decode/decode_der2key.c.in index c24d24659b8..d3258ddf1a9 100644 --- a/providers/implementations/encode_decode/decode_der2key.c.in +++ b/providers/implementations/encode_decode/decode_der2key.c.in @@ -6,6 +6,9 @@ * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ +{- +use OpenSSL::paramnames qw(produce_param_decoder); +-} /* * low level APIs are deprecated for public use, but still ok for @@ -42,8 +45,8 @@ #include "prov/implementations.h" #include "prov/endecoder_local.h" #include "internal/nelem.h" -#include "ml_dsa_codecs.h" -#include "ml_kem_codecs.h" +#include "prov/ml_dsa_codecs.h" +#include "prov/ml_kem_codecs.h" #ifndef OPENSSL_NO_SLH_DSA typedef struct { @@ -169,23 +172,27 @@ der2key_newctx(void *provctx, const struct keytype_desc_st *desc) return ctx; } +{- produce_param_decoder('der2key_set_ctx_params', + (['DECODER_PARAM_PROPERTIES', 'propq', 'utf8_string'], + )); -} + static const OSSL_PARAM *der2key_settable_ctx_params(ossl_unused void *provctx) { - static const OSSL_PARAM settables[] = { - OSSL_PARAM_utf8_string(OSSL_DECODER_PARAM_PROPERTIES, NULL, 0), - OSSL_PARAM_END - }; - return settables; + return der2key_set_ctx_params_list; } static int der2key_set_ctx_params(void *vctx, const OSSL_PARAM params[]) { struct der2key_ctx_st *ctx = vctx; - const OSSL_PARAM *p; - char *str = ctx->propq; + struct der2key_set_ctx_params_st p; + char *str; + + if (ctx == NULL || !der2key_set_ctx_params_decoder(params, &p)) + return 0; - p = OSSL_PARAM_locate_const(params, OSSL_DECODER_PARAM_PROPERTIES); - if (p != NULL && !OSSL_PARAM_get_utf8_string(p, &str, sizeof(ctx->propq))) + str = ctx->propq; + if (p.propq != NULL + && !OSSL_PARAM_get_utf8_string(p.propq, &str, sizeof(ctx->propq))) return 0; return 1;