mirror of
https://github.com/openssl/openssl.git
synced 2025-03-19 19:50:42 +08:00
Implement OSSL_PROVIDER_get0_provider_ctx()
Implement a function which enables us to get hold of the provider ctx for a loaded provider. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/11834)
This commit is contained in:
parent
5f603a280c
commit
d01d375264
@ -65,6 +65,10 @@ const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov,
|
||||
return ossl_provider_query_operation(prov, operation_id, no_cache);
|
||||
}
|
||||
|
||||
void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov)
|
||||
{
|
||||
return ossl_provider_prov_ctx(prov);
|
||||
}
|
||||
|
||||
int OSSL_PROVIDER_add_builtin(OPENSSL_CTX *libctx, const char *name,
|
||||
OSSL_provider_init_fn *init_fn)
|
||||
|
@ -787,6 +787,14 @@ const char *ossl_provider_module_path(const OSSL_PROVIDER *prov)
|
||||
#endif
|
||||
}
|
||||
|
||||
void *ossl_provider_prov_ctx(const OSSL_PROVIDER *prov)
|
||||
{
|
||||
if (prov != NULL)
|
||||
return prov->provctx;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OPENSSL_CTX *ossl_provider_library_context(const OSSL_PROVIDER *prov)
|
||||
{
|
||||
/* TODO(3.0) just: return prov->libctx; */
|
||||
|
@ -6,8 +6,8 @@ OSSL_PROVIDER_set_default_search_path,
|
||||
OSSL_PROVIDER, OSSL_PROVIDER_load, OSSL_PROVIDER_unload,
|
||||
OSSL_PROVIDER_available, OSSL_PROVIDER_do_all,
|
||||
OSSL_PROVIDER_gettable_params, OSSL_PROVIDER_get_params,
|
||||
OSSL_PROVIDER_query_operation, OSSL_PROVIDER_add_builtin,
|
||||
OSSL_PROVIDER_name - provider routines
|
||||
OSSL_PROVIDER_query_operation, OSSL_PROVIDER_get0_provider_ctx,
|
||||
OSSL_PROVIDER_add_builtin, OSSL_PROVIDER_name - provider routines
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
@ -31,6 +31,7 @@ OSSL_PROVIDER_name - provider routines
|
||||
const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov,
|
||||
int operation_id,
|
||||
int *no_cache);
|
||||
void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov);
|
||||
|
||||
int OSSL_PROVIDER_add_builtin(OPENSSL_CTX *libctx, const char *name,
|
||||
ossl_provider_init_fn *init_fn);
|
||||
@ -88,13 +89,17 @@ function, and the variables acting as buffers for this parameter array
|
||||
should be filled with data when it returns successfully.
|
||||
|
||||
OSSL_PROVIDER_query_operation() calls the provider's I<query_operation>
|
||||
function (see L<provider(7)>), if the provider has one. It should return an
|
||||
function (see L<provider(7)>), if the provider has one. It returns an
|
||||
array of I<OSSL_ALGORITHM> for the given I<operation_id> terminated by an all
|
||||
NULL OSSL_ALGORITHM entry. This is considered a low-level function that most
|
||||
applications should not need to call.
|
||||
|
||||
OSSL_PROVIDER_get0_provider_ctx() returns the provider context for the given
|
||||
provider. The provider context is an opaque handle set by the provider itself
|
||||
and is passed back to the provider by libcrypto in various function calls.
|
||||
|
||||
If it is permissible to cache references to this array then I<*no_store> is set
|
||||
to 0 or 1 otherwise. If the array is not cacheable then it should be assumed to
|
||||
to 0 or 1 otherwise. If the array is not cacheable then it is assumed to
|
||||
have a short lifetime.
|
||||
|
||||
OSSL_PROVIDER_name() returns the name of the given provider.
|
||||
|
@ -64,6 +64,7 @@ const char *ossl_provider_name(const OSSL_PROVIDER *prov);
|
||||
const DSO *ossl_provider_dso(const OSSL_PROVIDER *prov);
|
||||
const char *ossl_provider_module_name(const OSSL_PROVIDER *prov);
|
||||
const char *ossl_provider_module_path(const OSSL_PROVIDER *prov);
|
||||
void *ossl_provider_prov_ctx(const OSSL_PROVIDER *prov);
|
||||
OPENSSL_CTX *ossl_provider_library_context(const OSSL_PROVIDER *prov);
|
||||
|
||||
/* Thin wrappers around calls to the provider */
|
||||
|
@ -33,6 +33,7 @@ int OSSL_PROVIDER_get_params(const OSSL_PROVIDER *prov, OSSL_PARAM params[]);
|
||||
const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov,
|
||||
int operation_id,
|
||||
int *no_cache);
|
||||
void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov);
|
||||
|
||||
/* Add a built in providers */
|
||||
int OSSL_PROVIDER_add_builtin(OPENSSL_CTX *, const char *name,
|
||||
|
@ -5098,3 +5098,4 @@ X509_PUBKEY_eq ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_eq ? 3_0_0 EXIST::FUNCTION:
|
||||
EVP_PKEY_parameters_eq ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_PROVIDER_query_operation ? 3_0_0 EXIST::FUNCTION:
|
||||
OSSL_PROVIDER_get0_provider_ctx ? 3_0_0 EXIST::FUNCTION:
|
||||
|
Loading…
x
Reference in New Issue
Block a user