Lines Matching refs:provider
23 - internal provider routines
27 #include "internal/provider.h"
60 /* Return pointer to the provider's context */
67 int (*cb)(OSSL_PROVIDER *provider,
78 /* Thin wrappers around calls to the provider */
93 int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t bitnum);
94 int ossl_provider_test_operation_bit(OSSL_PROVIDER *provider, size_t bitnum,
106 to handle a provider, regardless of if it's built in to the
107 application or the OpenSSL libraries, or if it's a loadable provider
109 Instances of this type are commonly referred to as "provider objects".
111 A provider object is always stored in a set of provider objects
124 ossl_provider_find() finds an existing provider object in the provider
130 The provider object it finds has its reference count incremented.
132 ossl_provider_new() creates a new provider object named I<name> and
133 stores it in the provider object store, unless there already is one
141 The reference count of a newly created provider object will always
144 If I<init_function> is NULL, the provider is assumed to be a
147 If I<init_function> isn't NULL, the provider is assumed to be built
153 ossl_provider_up_ref() increments the provider object I<prov>'s
156 ossl_provider_free() decrements the provider object I<prov>'s
157 reference count; when it drops to zero, the provider object is assumed
163 provider module given the provider object I<prov>.
165 the path from the provider name and the default module directory (more
169 provider I<prov> is registered in.
171 ossl_provider_add_parameter() adds a global parameter for the provider
174 provider will use the name to find the value it wants.
175 Only text parameters can be given, and it's up to the provider to
178 ossl_provider_set_child() marks this provider as a child of a provider in the
180 the provider's B<OSSL_provider_init> function.
182 ossl_provider_get_parent() obtains the handle on the parent provider.
185 provider. If I<activate> is nonzero then the parent provider is also activated.
188 provider. If I<deactivate> is nonzero then the parent provider is also
195 ossl_provider_activate() "activates" the provider for the given
196 provider object I<prov> by incrementing its activation count, flagging
216 If I<upcalls> is nonzero then, if this is a child provider, upcalls to the
218 then the provider will only be activated if it is a child provider. Otherwise
221 ossl_provider_deactivate() "deactivates" the provider for the given
222 provider object I<prov> by decrementing its activation count. When
227 ossl_provider_add_to_store() adds the provider I<prov> to the provider store and
229 of fallback providers, unless I<retain_fallbacks> is true. If a provider of the
232 pointer to the provider of the given name that is now in the store. The
234 reference to the provider that should be used is passed back in the
237 ossl_provider_ctx() returns a context created by the provider.
238 Outside of the provider, it's completely opaque, but it needs to be
239 passed back to some of the provider functions.
241 ossl_provider_get0_dispatch() returns the dispatch table that the provider
262 ossl_provider_teardown() calls the provider's I<teardown> function, if
263 the provider has one.
265 ossl_provider_gettable_params() calls the provider's I<gettable_params>
266 function, if the provider has one.
268 parameters that the provider has for the provider object.
270 ossl_provider_get_params() calls the provider's parameter request
275 ossl_provider_get_capabilities() calls the provider's I<get_capabilities> function,
276 if the provider has one. It provides the name of the I<capability> and a
278 the provider. The callback gets passed OSSL_PARAM details about the capability as
281 ossl_provider_query_operation() calls the provider's
282 I<query_operation> function, if the provider has one.
286 ossl_provider_unquery_operation() informs the provider that the result of
291 in a bitstring that's internal to I<provider>.
294 is set (1) or not (0) in the internal I<provider> bitstring, and sets
303 passed to the provider's B<OSSL_provider_init> function.
306 context about provider creation or removal events for the child library context
311 Locating a provider module happens as follows:
319 Otherwise, use the provider object's name as module path, with
332 provider module.
340 provider object (I<OSSL_PROVIDER>) on success, or NULL on error.
368 I<OSSL_PARAM> array if this function is available in the provider,
372 If this function isn't available in the provider, 0 is returned.
380 If this function isn't available in the provider or the provider does not
385 L<OSSL_PROVIDER(3)>, L<provider(7)>, L<openssl(1)>