and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

...
 
Commits (3)
......@@ -616,8 +616,6 @@ static int addrinfo_wrap(int family, int socktype,
DEFINE_RUN_ONCE_STATIC(do_bio_lookup_init)
{
if (!OPENSSL_init_crypto(0, NULL))
return 0;
bio_lookup_lock = CRYPTO_THREAD_lock_new();
return bio_lookup_lock != NULL;
}
......
......@@ -20,8 +20,6 @@ CRYPTO_ONCE engine_lock_init = CRYPTO_ONCE_STATIC_INIT;
DEFINE_RUN_ONCE(do_engine_lock_init)
{
if (!OPENSSL_init_crypto(0, NULL))
return 0;
global_engine_lock = CRYPTO_THREAD_lock_new();
return global_engine_lock != NULL;
}
......
......@@ -197,7 +197,7 @@ static void ERR_STATE_free(ERR_STATE *s)
DEFINE_RUN_ONCE_STATIC(do_err_strings_init)
{
if (!OPENSSL_init_crypto(0, NULL))
if (!OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL))
return 0;
err_string_lock = CRYPTO_THREAD_lock_new();
if (err_string_lock == NULL)
......
......@@ -429,7 +429,7 @@ static void *rand_ossl_ctx_new(OSSL_LIB_CTX *libctx)
* We need to ensure that base libcrypto thread handling has been
* initialised.
*/
OPENSSL_init_crypto(0, NULL);
OPENSSL_init_crypto(OPENSSL_INIT_BASE_ONLY, NULL);
#endif
dgbl->lock = CRYPTO_THREAD_lock_new();
......
......@@ -7,25 +7,9 @@
* https://www.openssl.org/source/license.html
*/
#include <openssl/err.h>
#include "crypto/store.h"
#include "store_local.h"
static CRYPTO_ONCE store_init = CRYPTO_ONCE_STATIC_INIT;
DEFINE_RUN_ONCE_STATIC(do_store_init)
{
return OPENSSL_init_crypto(0, NULL);
}
int ossl_store_init_once(void)
{
if (!RUN_ONCE(&store_init, do_store_init)) {
ERR_raise(ERR_LIB_OSSL_STORE, ERR_R_MALLOC_FAILURE);
return 0;
}
return 1;
}
void ossl_store_cleanup_int(void)
{
ossl_store_destroy_loaders_int();
......
......@@ -152,13 +152,6 @@ struct ossl_store_ctx_st {
struct ossl_passphrase_data_st pwdata;
};
/*-
* OSSL_STORE init stuff
* ---------------------
*/
int ossl_store_init_once(void);
/*-
* 'file' scheme stuff
* -------------------
......
......@@ -207,8 +207,6 @@ int ossl_store_register_loader_int(OSSL_STORE_LOADER *loader)
}
int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader)
{
if (!ossl_store_init_once())
return 0;
return ossl_store_register_loader_int(loader);
}
......@@ -224,9 +222,6 @@ const OSSL_STORE_LOADER *ossl_store_get0_loader_int(const char *scheme)
template.close = NULL;
template.open_ex = NULL;
if (!ossl_store_init_once())
return NULL;
if (!RUN_ONCE(&registry_init, do_registry_init)) {
ERR_raise(ERR_LIB_OSSL_STORE, ERR_R_MALLOC_FAILURE);
return NULL;
......@@ -275,8 +270,6 @@ OSSL_STORE_LOADER *ossl_store_unregister_loader_int(const char *scheme)
}
OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme)
{
if (!ossl_store_init_once())
return 0;
return ossl_store_unregister_loader_int(scheme);
}
......
......@@ -632,9 +632,6 @@ int OSSL_provider_init(const OSSL_CORE_HANDLE *handle,
goto err;
}
/* TODO(3.0): Tests will hang if this is removed */
(void)RAND_get0_public(libctx);
*out = fips_dispatch_table;
return 1;
err:
......
......@@ -127,7 +127,7 @@ static int ecdsa_keygen_test(int id)
|| !TEST_int_gt(EVP_PKEY_keygen_init(ctx), 0)
|| !TEST_true(EVP_PKEY_CTX_set_group_name(ctx, tst->curve_name))
|| !TEST_int_gt(EVP_PKEY_keygen(ctx, &pkey), 0)
|| !TEST_int_eq(self_test_args.called, 3)
|| !TEST_int_ge(self_test_args.called, 3)
|| !TEST_true(pkey_get_bn_bytes(pkey, OSSL_PKEY_PARAM_PRIV_KEY, &priv,
&priv_len))
|| !TEST_true(pkey_get_bn_bytes(pkey, OSSL_PKEY_PARAM_EC_PUB_X, &pubx,
......