summaryrefslogtreecommitdiffstats
path: root/crypto/store/store_register.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/store/store_register.c')
-rw-r--r--crypto/store/store_register.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/crypto/store/store_register.c b/crypto/store/store_register.c
index a138edc636..bde190e78e 100644
--- a/crypto/store/store_register.c
+++ b/crypto/store/store_register.c
@@ -28,7 +28,7 @@ DEFINE_RUN_ONCE_STATIC(do_registry_init)
* Functions for manipulating OSSL_STORE_LOADERs
*/
-OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(const char *scheme)
+OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme)
{
OSSL_STORE_LOADER *res = OPENSSL_zalloc(sizeof(*res));
@@ -49,10 +49,16 @@ OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(const char *scheme)
return NULL;
}
+ res->engine = e;
res->scheme = scheme;
return res;
}
+const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader)
+{
+ return loader->engine;
+}
+
const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader)
{
return loader->scheme;
@@ -257,3 +263,16 @@ void ossl_store_destroy_loaders_int(void)
CRYPTO_THREAD_lock_free(registry_lock);
registry_lock = NULL;
}
+
+/*
+ * Functions to list OSSL_STORE loaders
+ */
+
+IMPLEMENT_LHASH_DOALL_ARG_CONST(OSSL_STORE_LOADER, void);
+int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER
+ *loader, void *do_arg),
+ void *do_arg)
+{
+ lh_OSSL_STORE_LOADER_doall_void(loader_register, do_function, do_arg);
+ return 1;
+}