diff options
author | Matt Caswell <matt@openssl.org> | 2021-06-18 16:56:54 +0200 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2021-06-24 15:48:14 +0200 |
commit | 352d482a2990cc04adff48aeda9c080d4a839f1e (patch) | |
tree | bee0041c8a4b777653125cab5ed8280b19def1b0 /crypto/provider_local.h | |
parent | Instantiate user-added builtin providers when we need them (diff) | |
download | openssl-352d482a2990cc04adff48aeda9c080d4a839f1e.tar.xz openssl-352d482a2990cc04adff48aeda9c080d4a839f1e.zip |
Instantiate configuration supplied providers when we need them
If provider specified in a config file are not "activated" then we defer
instantiating the provider object until it is actually needed.
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15854)
Diffstat (limited to 'crypto/provider_local.h')
-rw-r--r-- | crypto/provider_local.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crypto/provider_local.h b/crypto/provider_local.h index 8ac692130f..6c34bda51a 100644 --- a/crypto/provider_local.h +++ b/crypto/provider_local.h @@ -9,10 +9,25 @@ #include <openssl/core.h> +typedef struct { + char *name; + char *value; +} INFOPAIR; +DEFINE_STACK_OF(INFOPAIR) + struct provider_info_st { char *name; + char *path; OSSL_provider_init_fn *init; + STACK_OF(INFOPAIR) *parameters; unsigned int is_fallback:1; }; extern const struct provider_info_st ossl_predefined_providers[]; + +void ossl_provider_info_clear(struct provider_info_st *info); +int ossl_provider_info_add_to_store(OSSL_LIB_CTX *libctx, + const struct provider_info_st *entry); +int ossl_provider_info_add_parameter(struct provider_info_st *provinfo, + const char *name, + const char *value); |