mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
DECODER: Add support for OSSL_FUNC_decoder_does_selection()
OSSL_FUNC_decoder_does_selection() is a dispatchable decoder implementation function that should return 1 if the given |selection| is supported by an decoder implementation and 0 if not. This can be used by libcrypto functionality to figure out if an encoder implementation should be considered or not. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/13248)
This commit is contained in:
parent
ebfdb63d96
commit
67c91ca23e
@ -198,6 +198,11 @@ void *ossl_decoder_from_dispatch(int id, const OSSL_ALGORITHM *algodef,
|
||||
decoder->settable_ctx_params =
|
||||
OSSL_FUNC_decoder_settable_ctx_params(fns);
|
||||
break;
|
||||
case OSSL_FUNC_DECODER_DOES_SELECTION:
|
||||
if (decoder->does_selection == NULL)
|
||||
decoder->does_selection =
|
||||
OSSL_FUNC_decoder_does_selection(fns);
|
||||
break;
|
||||
case OSSL_FUNC_DECODER_DECODE:
|
||||
if (decoder->decode == NULL)
|
||||
decoder->decode = OSSL_FUNC_decoder_decode(fns);
|
||||
|
@ -46,6 +46,7 @@ struct ossl_decoder_st {
|
||||
OSSL_FUNC_decoder_gettable_params_fn *gettable_params;
|
||||
OSSL_FUNC_decoder_set_ctx_params_fn *set_ctx_params;
|
||||
OSSL_FUNC_decoder_settable_ctx_params_fn *settable_ctx_params;
|
||||
OSSL_FUNC_decoder_does_selection_fn *does_selection;
|
||||
OSSL_FUNC_decoder_decode_fn *decode;
|
||||
OSSL_FUNC_decoder_export_object_fn *export_object;
|
||||
};
|
||||
|
@ -789,8 +789,9 @@ OSSL_CORE_MAKE_FUNC(void, encoder_free_object, (void *obj))
|
||||
# define OSSL_FUNC_DECODER_GETTABLE_PARAMS 4
|
||||
# define OSSL_FUNC_DECODER_SET_CTX_PARAMS 5
|
||||
# define OSSL_FUNC_DECODER_SETTABLE_CTX_PARAMS 6
|
||||
# define OSSL_FUNC_DECODER_DECODE 10
|
||||
# define OSSL_FUNC_DECODER_EXPORT_OBJECT 11
|
||||
# define OSSL_FUNC_DECODER_DOES_SELECTION 10
|
||||
# define OSSL_FUNC_DECODER_DECODE 11
|
||||
# define OSSL_FUNC_DECODER_EXPORT_OBJECT 20
|
||||
OSSL_CORE_MAKE_FUNC(void *, decoder_newctx, (void *provctx))
|
||||
OSSL_CORE_MAKE_FUNC(void, decoder_freectx, (void *ctx))
|
||||
OSSL_CORE_MAKE_FUNC(int, decoder_get_params, (OSSL_PARAM params[]))
|
||||
@ -801,8 +802,10 @@ OSSL_CORE_MAKE_FUNC(int, decoder_set_ctx_params,
|
||||
OSSL_CORE_MAKE_FUNC(const OSSL_PARAM *, decoder_settable_ctx_params,
|
||||
(void *provctx))
|
||||
|
||||
OSSL_CORE_MAKE_FUNC(int, decoder_does_selection,
|
||||
(void *provctx, int selection))
|
||||
OSSL_CORE_MAKE_FUNC(int, decoder_decode,
|
||||
(void *ctx, OSSL_CORE_BIO *in,
|
||||
(void *ctx, OSSL_CORE_BIO *in, int selection,
|
||||
OSSL_CALLBACK *metadata_cb, void *metadata_cbarg,
|
||||
OSSL_PASSPHRASE_CALLBACK *pw_cb, void *pw_cbarg))
|
||||
OSSL_CORE_MAKE_FUNC(int, decoder_export_object,
|
||||
|
Loading…
Reference in New Issue
Block a user