Lines Matching defs:provider
14 #include <openssl/provider.h>
27 #include "internal/provider.h"
40 * single instance of a provider.
49 * provider that registered those callbacks.
52 * provider store. Each provider that exists in the parent provider store, has
53 * an associated child provider in the child library context's provider store.
74 * The provider flag_lock: Used to control updates to the various provider
78 * The provider refcnt_lock: Only ever used to control updates to the provider
81 * The provider optbits_lock: Used to control access to the provider's
84 * The store default_path_lock: Used to control access to the provider store's
87 * The store lock: Used to control the stack of provider's held within the
88 * provider store, as well as the stack of registered child provider callbacks.
102 * provider store lock, the provider flag_lock and the provider refcnt_lock.
105 * 1) provider store lock
106 * 2) provider flag_lock
107 * 3) provider refcnt_lock
116 * provider callbacks. No other locks may be held during such callbacks.
131 int (*create_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata);
132 int (*remove_cb)(const OSSL_CORE_HANDLE *provider, void *cbdata);
163 * In the FIPS module inner provider, this isn't needed, since the
164 * error upcalls are always direct calls to the outer provider.
166 int error_lib; /* ERR library number, one for each provider */
168 ERR_STRING_DATA *error_strings; /* Copy of what the provider gives us */
190 /* Whether this provider is the child of some other provider */
232 * Since this is only called when the provider store is being emptied, we
329 /* Needs to be freed before the child provider data is freed */
526 * We assume that the requested provider does not already exist in the store.
546 /* Check if this is a predefined builtin provider */
554 /* Check if this is a user added builtin provider */
579 * At this point, the provider is only partially "loaded". To be
581 * then be added to the provider store.
659 * The provider is already in the store. Probably two threads
660 * independently initialised their own provider objects with the same
664 * If we get here then we know we did not create provider children
687 * When the refcount drops to zero, we clean up the provider.
690 * there may be other structures hanging on to the provider after
692 * provider's services. Therefore, we deinit late.
714 * We deregister thread handling whether or not the provider was
716 * the provider may still have registered a thread handler.
790 * What "activation" means depends on the provider form; for built in
791 * providers (in the library or the application alike), the provider
793 * initialize it. However, for dynamically loadable provider modules,
847 * If the init function isn't set, it indicates that this provider is
922 /* Check for and call the initialise function for the provider. */
925 "name=%s, provider has no provider init function",
1026 /* With this flag set, this provider has become fully "loaded". */
1035 * Deactivate a provider. If upcalls is 0 then we suppress any upcalls to a
1036 * parent provider. If removechildren is 0 then we suppress any calls to remove
1072 * now down the ref count in the parent provider. We do the actual down
1112 * Activate a provider.
1123 * If the provider hasn't been added to the store, then we don't need
1252 * provider is a child. If its not, this is still success.
1351 int (*cb)(OSSL_PROVIDER *provider,
1374 * Under lock, grab a copy of the provider list and up_ref each
1375 * provider so that they don't disappear underneath us.
1397 * to avoid upping the ref count on the parent provider, which we
1409 * theory this could mean the parent provider goes inactive, whilst
1456 * to the provider in the store, so this should never drop to 0.
1550 /* Wrappers around calls to the provider */
1619 int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t bitnum)
1624 if (!CRYPTO_THREAD_write_lock(provider->opbits_lock))
1626 if (provider->operation_bits_sz <= byte) {
1627 unsigned char *tmp = OPENSSL_realloc(provider->operation_bits,
1631 CRYPTO_THREAD_unlock(provider->opbits_lock);
1635 provider->operation_bits = tmp;
1636 memset(provider->operation_bits + provider->operation_bits_sz,
1637 '\0', byte + 1 - provider->operation_bits_sz);
1638 provider->operation_bits_sz = byte + 1;
1640 provider->operation_bits[byte] |= bit;
1641 CRYPTO_THREAD_unlock(provider->opbits_lock);
1645 int ossl_provider_test_operation_bit(OSSL_PROVIDER *provider, size_t bitnum,
1657 if (!CRYPTO_THREAD_read_lock(provider->opbits_lock))
1659 if (provider->operation_bits_sz > byte)
1660 *result = ((provider->operation_bits[byte] & bit) != 0);
1661 CRYPTO_THREAD_unlock(provider->opbits_lock);
1710 const OSSL_CORE_HANDLE *provider,
1713 const OSSL_CORE_HANDLE *provider,
1826 * Core functions for the provider
1829 * This is the set of functions that the core makes available to the provider
1974 * The FIPS module inner provider doesn't implement these. They aren't
1975 * needed there, since the FIPS module upcalls are always the outer provider
2009 * provider error and will be treated as such.