Replumbing: Add an OSSL_PROVIDER iterator with callback
[openssl.git] / doc / internal / man3 / ossl_provider_new.pod
index 79964d6548fbd30ff0fbdf8092762c0142b82dd3..c21012bf19abf0b1429437ec608cc9c3946f0fc7 100644 (file)
@@ -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
@@ -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);
@@ -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().