From: Simo Sorce Date: Wed, 23 Apr 2025 22:38:59 +0000 (-0400) Subject: SKEYMGMT: Expose settable params X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=273ceaa7c323fc5c9be8fd0b303972058de4a1ed;p=thirdparty%2Fopenssl.git SKEYMGMT: Expose settable params This is needed for tools that do things like passing -skeyopt hexraw-bytes:0102030405060708090a0b0c0d0e0f10 to tools. Signed-off-by: Simo Sorce Reviewed-by: Dmitry Belyavskiy Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27483) --- diff --git a/providers/implementations/skeymgmt/aes_skmgmt.c b/providers/implementations/skeymgmt/aes_skmgmt.c index 6d3b5f377fb..17be480131f 100644 --- a/providers/implementations/skeymgmt/aes_skmgmt.c +++ b/providers/implementations/skeymgmt/aes_skmgmt.c @@ -48,5 +48,7 @@ const OSSL_DISPATCH ossl_aes_skeymgmt_functions[] = { { OSSL_FUNC_SKEYMGMT_FREE, (void (*)(void))generic_free }, { OSSL_FUNC_SKEYMGMT_IMPORT, (void (*)(void))aes_import }, { OSSL_FUNC_SKEYMGMT_EXPORT, (void (*)(void))aes_export }, + { OSSL_FUNC_SKEYMGMT_IMP_SETTABLE_PARAMS, + (void (*)(void))generic_imp_settable_params }, OSSL_DISPATCH_END }; diff --git a/providers/implementations/skeymgmt/generic.c b/providers/implementations/skeymgmt/generic.c index b41bf8e12dc..5fb3fad7e3b 100644 --- a/providers/implementations/skeymgmt/generic.c +++ b/providers/implementations/skeymgmt/generic.c @@ -65,6 +65,16 @@ end: return generic; } +static const OSSL_PARAM generic_import_params[] = { + OSSL_PARAM_octet_string(OSSL_SKEY_PARAM_RAW_BYTES, NULL, 0), + OSSL_PARAM_END +}; + +const OSSL_PARAM *generic_imp_settable_params(void *provctx) +{ + return generic_import_params; +} + int generic_export(void *keydata, int selection, OSSL_CALLBACK *param_callback, void *cbarg) { @@ -89,5 +99,7 @@ const OSSL_DISPATCH ossl_generic_skeymgmt_functions[] = { { OSSL_FUNC_SKEYMGMT_FREE, (void (*)(void))generic_free }, { OSSL_FUNC_SKEYMGMT_IMPORT, (void (*)(void))generic_import }, { OSSL_FUNC_SKEYMGMT_EXPORT, (void (*)(void))generic_export }, + { OSSL_FUNC_SKEYMGMT_IMP_SETTABLE_PARAMS, + (void (*)(void))generic_imp_settable_params }, OSSL_DISPATCH_END }; diff --git a/providers/implementations/skeymgmt/skeymgmt_lcl.h b/providers/implementations/skeymgmt/skeymgmt_lcl.h index c180c1d3035..a7e7605050d 100644 --- a/providers/implementations/skeymgmt/skeymgmt_lcl.h +++ b/providers/implementations/skeymgmt/skeymgmt_lcl.h @@ -15,5 +15,6 @@ OSSL_FUNC_skeymgmt_import_fn generic_import; OSSL_FUNC_skeymgmt_export_fn generic_export; OSSL_FUNC_skeymgmt_free_fn generic_free; +OSSL_FUNC_skeymgmt_imp_settable_params_fn generic_imp_settable_params; #endif