This commit is contained in:
Richard Levitte 2025-10-08 11:05:19 +02:00 committed by GitHub
commit 277cdecdb4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 25 additions and 11 deletions

View File

@ -452,6 +452,8 @@ my @disablables = (
"crypto-mdebug",
"allocfail-tests",
"ct",
"default-fallback-provider", # Don't make the default provider a fallback
"default-provider", # Don't include the default provider at all
"default-thread-pool",
"demos",
"h3demo",
@ -720,7 +722,9 @@ my @disable_cascades = (
"deprecated-3.0" => [ "engine", "srp" ],
"http" => [ "ocsp" ]
"http" => [ "ocsp" ],
"default-provider" => [ "default-fallback-provider" ],
);
# Avoid protocol support holes. Also disable all versions below N, if version

View File

@ -1438,7 +1438,6 @@ void *ossl_provider_ctx(const OSSL_PROVIDER *prov)
static int provider_activate_fallbacks(struct provider_store_st *store)
{
int use_fallbacks;
int activated_fallback_count = 0;
int ret = 0;
const OSSL_PROVIDER_INFO *p;
@ -1501,13 +1500,11 @@ static int provider_activate_fallbacks(struct provider_store_st *store)
ossl_provider_free(prov);
goto err;
}
activated_fallback_count++;
}
if (activated_fallback_count > 0) {
store->use_fallbacks = 0;
ret = 1;
}
store->use_fallbacks = 0;
ret = 1;
err:
CRYPTO_THREAD_unlock(store->lock);
return ret;

View File

@ -10,18 +10,29 @@
#include <openssl/core.h>
#include "provider_local.h"
#ifndef OPENSSL_NO_DEFAULT_PROVIDER
OSSL_provider_init_fn ossl_default_provider_init;
#endif
OSSL_provider_init_fn ossl_base_provider_init;
OSSL_provider_init_fn ossl_null_provider_init;
OSSL_provider_init_fn ossl_fips_intern_provider_init;
#ifdef STATIC_LEGACY
OSSL_provider_init_fn ossl_legacy_provider_init;
#endif
#ifndef OPENSSL_NO_DEFAULT_FALLBACK_PROVIDER
# define DEFAULT_FALLBACK 1
#else
# define DEFAULT_FALLBACK 0
#endif
const OSSL_PROVIDER_INFO ossl_predefined_providers[] = {
#ifdef FIPS_MODULE
{ "fips", NULL, ossl_fips_intern_provider_init, NULL, 1 },
#else
{ "default", NULL, ossl_default_provider_init, NULL, 1 },
# ifndef OPENSSL_NO_DEFAULT_PROVIDER
{ "default", NULL, ossl_default_provider_init, NULL, DEFAULT_FALLBACK },
# endif
# ifdef STATIC_LEGACY
{ "legacy", NULL, ossl_legacy_provider_init, NULL, 0 },
# endif

View File

@ -75,9 +75,11 @@ DEPEND[$LIBDEFAULT]=$LIBCOMMON
# by using the appropriate libraries as source). Note that for shared
# libraries, SOURCEd libraries are considered as if they were specified
# with DEPEND.
$DEFAULTGOAL=../libcrypto
SOURCE[$DEFAULTGOAL]=$LIBDEFAULT defltprov.c
INCLUDE[$DEFAULTGOAL]=implementations/include
IF[{- !$disabled{default-provider} -}]
$DEFAULTGOAL=../libcrypto
SOURCE[$DEFAULTGOAL]=$LIBDEFAULT defltprov.c
INCLUDE[$DEFAULTGOAL]=implementations/include
ENDIF
#
# Base provider stuff