diff options
author | Pauli <paul.dale@oracle.com> | 2020-09-25 10:19:19 +1000 |
---|---|---|
committer | Pauli <ppzgs1@gmail.com> | 2021-02-24 21:24:36 +1000 |
commit | b0001d0cf2539b9309712e3e04f407dcbb04352c (patch) | |
tree | fb7e81074c5d0ca84b3ae37f47bc612eb608b26e /doc/man7 | |
parent | 8b3facd7324b6c2f36f6414c0552da26378aae4a (diff) |
provider: add an unquery function to allow providers to clean up.
Without this, a provider has no way to know that an application
has finished with the array it returned earlier. A non-caching provider
requires this information.
Fixes #12974
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/12974)
Diffstat (limited to 'doc/man7')
-rw-r--r-- | doc/man7/provider-base.pod | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/doc/man7/provider-base.pod b/doc/man7/provider-base.pod index 8659431437..3b4416dac0 100644 --- a/doc/man7/provider-base.pod +++ b/doc/man7/provider-base.pod @@ -86,6 +86,8 @@ provider-base const OSSL_ALGORITHM *provider_query_operation(void *provctx, int operation_id, const int *no_store); + void provider_unquery_operation(void *provctx, int operation_id, + const OSSL_ALGORITHM *algs); const OSSL_ITEM *provider_get_reason_strings(void *provctx); int provider_get_capabilities(void *provctx, const char *capability, OSSL_CALLBACK *cb, void *arg); @@ -154,6 +156,7 @@ F<libcrypto>): provider_gettable_params OSSL_FUNC_PROVIDER_GETTABLE_PARAMS provider_get_params OSSL_FUNC_PROVIDER_GET_PARAMS provider_query_operation OSSL_FUNC_PROVIDER_QUERY_OPERATION + provider_unquery_operation OSSL_FUNC_PROVIDER_UNQUERY_OPERATION provider_get_reason_strings OSSL_FUNC_PROVIDER_GET_REASON_STRINGS provider_get_capabilities OSSL_FUNC_PROVIDER_GET_CAPABILITIES provider_self_test OSSL_FUNC_PROVIDER_SELF_TEST @@ -274,6 +277,11 @@ It should indicate if the core may store a reference to this array by setting I<*no_store> to 0 (core may store a reference) or 1 (core may not store a reference). +provider_unquery_operation() informs the provider that the result of a +provider_query_operation() is no longer directly required and that the function +pointers have been copied. The I<operation_id> should match that passed to +provider_query_operation() and I<algs> should be its return value. + provider_get_reason_strings() should return a constant B<OSSL_ITEM> array that provides reason strings for reason codes the provider may use when reporting errors using core_put_error(). |