summaryrefslogtreecommitdiffstats
path: root/crypto/provider_local.h
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-06-18 15:56:54 +0100
committerMatt Caswell <matt@openssl.org>2021-06-24 14:48:14 +0100
commit352d482a2990cc04adff48aeda9c080d4a839f1e (patch)
treebee0041c8a4b777653125cab5ed8280b19def1b0 /crypto/provider_local.h
parent1d74203cf5d8542d349fbb2d5f35ad40994dec9f (diff)
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.h15
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);