Loading crypto/provider_core.c +24 −0 Original line number Diff line number Diff line Loading @@ -328,6 +328,30 @@ int ossl_provider_activate(OSSL_PROVIDER *prov) return 1; } int ossl_provider_forall_loaded(OPENSSL_CTX *ctx, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata) { int ret = 1; int i; struct provider_store_st *store = get_provider_store(ctx); if (store != NULL) { CRYPTO_THREAD_read_lock(store->lock); for (i = 0; i < sk_OSSL_PROVIDER_num(store->providers); i++) { OSSL_PROVIDER *prov = sk_OSSL_PROVIDER_value(store->providers, i); if (prov->flag_initialized && !(ret = cb(prov, cbdata))) break; } CRYPTO_THREAD_unlock(store->lock); } return ret; } /* Getters of Provider Object data */ const char *ossl_provider_name(OSSL_PROVIDER *prov) { Loading doc/internal/man3/ossl_provider_new.pod +11 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ ossl_provider_find, ossl_provider_new, ossl_provider_upref, ossl_provider_free, ossl_provider_add_module_location, ossl_provider_activate, ossl_provider_name, ossl_provider_dso, ossl_provider_activate, ossl_provider_forall_loaded, ossl_provider_name, ossl_provider_dso, ossl_provider_module_name, ossl_provider_module_path, ossl_provider_teardown, ossl_provider_get_param_types, ossl_provider_get_params - internal provider routines Loading @@ -25,6 +26,12 @@ ossl_provider_get_params - internal provider routines /* Load and initialize the Provider */ int ossl_provider_activate(OSSL_PROVIDER *prov); /* Iterate over all loaded providers */ int ossl_provider_forall_loaded(OPENSSL_CTX *, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata); /* Getters for other library functions */ const char *ossl_provider_name(OSSL_PROVIDER *prov); const DSO *ossl_provider_dso(OSSL_PROVIDER *prov); Loading Loading @@ -102,6 +109,9 @@ be located in that module, and called. =back ossl_provider_forall_loaded() iterates over all the currently "activated" providers, and calls C<cb> for each of them. ossl_provider_name() returns the name that was given with ossl_provider_new(). Loading include/internal/provider.h +6 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,12 @@ int ossl_provider_add_module_location(OSSL_PROVIDER *prov, const char *loc); */ int ossl_provider_activate(OSSL_PROVIDER *prov); /* Iterate over all loaded providers */ int ossl_provider_forall_loaded(OPENSSL_CTX *, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata); /* Getters for other library functions */ const char *ossl_provider_name(OSSL_PROVIDER *prov); const DSO *ossl_provider_dso(OSSL_PROVIDER *prov); Loading Loading
crypto/provider_core.c +24 −0 Original line number Diff line number Diff line Loading @@ -328,6 +328,30 @@ int ossl_provider_activate(OSSL_PROVIDER *prov) return 1; } int ossl_provider_forall_loaded(OPENSSL_CTX *ctx, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata) { int ret = 1; int i; struct provider_store_st *store = get_provider_store(ctx); if (store != NULL) { CRYPTO_THREAD_read_lock(store->lock); for (i = 0; i < sk_OSSL_PROVIDER_num(store->providers); i++) { OSSL_PROVIDER *prov = sk_OSSL_PROVIDER_value(store->providers, i); if (prov->flag_initialized && !(ret = cb(prov, cbdata))) break; } CRYPTO_THREAD_unlock(store->lock); } return ret; } /* Getters of Provider Object data */ const char *ossl_provider_name(OSSL_PROVIDER *prov) { Loading
doc/internal/man3/ossl_provider_new.pod +11 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,8 @@ ossl_provider_find, ossl_provider_new, ossl_provider_upref, ossl_provider_free, ossl_provider_add_module_location, ossl_provider_activate, ossl_provider_name, ossl_provider_dso, ossl_provider_activate, ossl_provider_forall_loaded, ossl_provider_name, ossl_provider_dso, ossl_provider_module_name, ossl_provider_module_path, ossl_provider_teardown, ossl_provider_get_param_types, ossl_provider_get_params - internal provider routines Loading @@ -25,6 +26,12 @@ ossl_provider_get_params - internal provider routines /* Load and initialize the Provider */ int ossl_provider_activate(OSSL_PROVIDER *prov); /* Iterate over all loaded providers */ int ossl_provider_forall_loaded(OPENSSL_CTX *, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata); /* Getters for other library functions */ const char *ossl_provider_name(OSSL_PROVIDER *prov); const DSO *ossl_provider_dso(OSSL_PROVIDER *prov); Loading Loading @@ -102,6 +109,9 @@ be located in that module, and called. =back ossl_provider_forall_loaded() iterates over all the currently "activated" providers, and calls C<cb> for each of them. ossl_provider_name() returns the name that was given with ossl_provider_new(). Loading
include/internal/provider.h +6 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,12 @@ int ossl_provider_add_module_location(OSSL_PROVIDER *prov, const char *loc); */ int ossl_provider_activate(OSSL_PROVIDER *prov); /* Iterate over all loaded providers */ int ossl_provider_forall_loaded(OPENSSL_CTX *, int (*cb)(OSSL_PROVIDER *provider, void *cbdata), void *cbdata); /* Getters for other library functions */ const char *ossl_provider_name(OSSL_PROVIDER *prov); const DSO *ossl_provider_dso(OSSL_PROVIDER *prov); Loading