X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=doc%2Fman3%2FOSSL_PROVIDER.pod;h=63633842fa201a77dbe678f08db66169027f8c04;hb=3c49e4ff519abee92d9557eca8653ab82cd5787c;hp=3f1a9466535d25f469732fec53dffca134314091;hpb=33388b44b67145af2181b1e9528c381c8ea0d1b6;p=openssl.git diff --git a/doc/man3/OSSL_PROVIDER.pod b/doc/man3/OSSL_PROVIDER.pod index 3f1a946653..63633842fa 100644 --- a/doc/man3/OSSL_PROVIDER.pod +++ b/doc/man3/OSSL_PROVIDER.pod @@ -4,9 +4,11 @@ OSSL_PROVIDER_set_default_search_path, OSSL_PROVIDER, OSSL_PROVIDER_load, OSSL_PROVIDER_unload, -OSSL_PROVIDER_available, +OSSL_PROVIDER_available, OSSL_PROVIDER_do_all, OSSL_PROVIDER_gettable_params, OSSL_PROVIDER_get_params, -OSSL_PROVIDER_add_builtin, OSSL_PROVIDER_name - provider routines +OSSL_PROVIDER_query_operation, OSSL_PROVIDER_get0_provider_ctx, +OSSL_PROVIDER_add_builtin, OSSL_PROVIDER_name, +OSSL_PROVIDER_get_capabilities - provider routines =head1 SYNOPSIS @@ -20,15 +22,29 @@ OSSL_PROVIDER_add_builtin, OSSL_PROVIDER_name - provider routines OSSL_PROVIDER *OSSL_PROVIDER_load(OPENSSL_CTX *libctx, const char *name); int OSSL_PROVIDER_unload(OSSL_PROVIDER *prov); int OSSL_PROVIDER_available(OPENSSL_CTX *libctx, const char *name); + int OSSL_PROVIDER_do_all(OPENSSL_CTX *ctx, + int (*cb)(OSSL_PROVIDER *provider, void *cbdata), + void *cbdata); const OSSL_PARAM *OSSL_PROVIDER_gettable_params(OSSL_PROVIDER *prov); int OSSL_PROVIDER_get_params(OSSL_PROVIDER *prov, OSSL_PARAM params[]); + const OSSL_ALGORITHM *OSSL_PROVIDER_query_operation(const OSSL_PROVIDER *prov, + int operation_id, + int *no_cache); + void *OSSL_PROVIDER_get0_provider_ctx(const OSSL_PROVIDER *prov); + int OSSL_PROVIDER_add_builtin(OPENSSL_CTX *libctx, const char *name, ossl_provider_init_fn *init_fn); const char *OSSL_PROVIDER_name(const OSSL_PROVIDER *prov); + int OSSL_PROVIDER_get_capabilities(const OSSL_PROVIDER *prov, + const char *capability, + OSSL_CALLBACK *cb, + void *arg); + + =head1 DESCRIPTION B is a type that holds internal information about @@ -66,6 +82,10 @@ runs its teardown function. OSSL_PROVIDER_available() checks if a named provider is available for use. +OSSL_PROVIDER_do_all() iterates over all loaded providers, calling +I for each one, with the current provider in I and the +I that comes from the caller. + OSSL_PROVIDER_gettable_params() is used to get a provider parameter descriptor set as a constant B array. See L for more information. @@ -75,17 +95,38 @@ The caller must prepare the B array before calling this function, and the variables acting as buffers for this parameter array should be filled with data when it returns successfully. +OSSL_PROVIDER_query_operation() calls the provider's I +function (see L), if the provider has one. It returns an +array of I for the given I terminated by an all +NULL OSSL_ALGORITHM entry. This is considered a low-level function that most +applications should not need to call. + +OSSL_PROVIDER_get0_provider_ctx() returns the provider context for the given +provider. The provider context is an opaque handle set by the provider itself +and is passed back to the provider by libcrypto in various function calls. + +If it is permissible to cache references to this array then I<*no_store> is set +to 0 or 1 otherwise. If the array is not cacheable then it is assumed to +have a short lifetime. + OSSL_PROVIDER_name() returns the name of the given provider. +OSSL_PROVIDER_get_capabilities() provides information about the capabilities +supported by the provider specified in I with the capability name +I. For each capability of that name supported by the provider it +will call the callback I and supply a set of Bs describing the +capability. It will also pass back the argument I. For more details about +capabilities and what they can be used for please see +L. + =head1 RETURN VALUES -OSSL_PROVIDER_add() returns 1 on success, or 0 on error. +OSSL_PROVIDER_add(), OSSL_PROVIDER_unload(), OSSL_PROVIDER_get_params() and +OSSL_PROVIDER_get_capabilities() return 1 on success, or 0 on error. OSSL_PROVIDER_load() returns a pointer to a provider object on success, or B on error. -OSSL_PROVIDER_unload() returns 1 on success, or 0 on error. - OSSL_PROVIDER_available() returns 1 if the named provider is available, otherwise 0. @@ -94,6 +135,9 @@ of constant B, or NULL if none is provided. OSSL_PROVIDER_get_params() returns 1 on success, or 0 on error. +OSSL_PROVIDER_query_operation() returns an array of OSSL_ALGORITHM or NULL on +error. + =head1 EXAMPLES This demonstrates how to load the provider module "foo" and ask for