diff options
author | Matt Caswell <matt@openssl.org> | 2021-05-04 16:23:31 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2021-05-11 15:03:13 +0100 |
commit | abaa2dd2981ba3c15456016c6248f539242cfb49 (patch) | |
tree | 4c1318ac7498852d82656fd742bd6de9caf0f281 /include/internal | |
parent | 8c627075656cf2709680eeb5aa1826f00db2e483 (diff) |
Don't convert pre-existing providers into children
If a provider explicitly loads another provider into a child libctx where
it wasn't previously loaded then we don't start treating it like a child
if the parent libctx subsequently loads the same provider.
Fixes #14925
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14991)
Diffstat (limited to 'include/internal')
-rw-r--r-- | include/internal/provider.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/internal/provider.h b/include/internal/provider.h index 7d5ccccbd1..5b0af7a335 100644 --- a/include/internal/provider.h +++ b/include/internal/provider.h @@ -41,7 +41,12 @@ int ossl_provider_set_fallback(OSSL_PROVIDER *prov); int ossl_provider_set_module_path(OSSL_PROVIDER *prov, const char *module_path); int ossl_provider_add_parameter(OSSL_PROVIDER *prov, const char *name, const char *value); + +int ossl_provider_is_child(const OSSL_PROVIDER *prov); int ossl_provider_set_child(OSSL_PROVIDER *prov, const OSSL_CORE_HANDLE *handle); +int ossl_provider_convert_to_child(OSSL_PROVIDER *prov, + const OSSL_CORE_HANDLE *handle, + OSSL_provider_init_fn *init_function); const OSSL_CORE_HANDLE *ossl_provider_get_parent(OSSL_PROVIDER *prov); int ossl_provider_up_ref_parent(OSSL_PROVIDER *prov, int activate); int ossl_provider_free_parent(OSSL_PROVIDER *prov, int deactivate); |