diff options
-rw-r--r-- | crypto/build.info | 4 | ||||
-rw-r--r-- | test/build.info | 8 | ||||
-rw-r--r-- | test/endecode_test.c | 14 |
3 files changed, 24 insertions, 2 deletions
diff --git a/crypto/build.info b/crypto/build.info index c04db55911..a45bf8deef 100644 --- a/crypto/build.info +++ b/crypto/build.info @@ -74,8 +74,8 @@ DEFINE[../providers/libfips.a]=$CPUIDDEF # already gets everything that the static libcrypto.a has, and doesn't need it # added again. IF[{- !$disabled{module} && !$disabled{shared} -}] - SOURCE[../providers/liblegacy.a]=$CPUID_COMMON - DEFINE[../providers/liblegacy.a]=$CPUIDDEF + SOURCE[../providers/legacy]=$CPUID_COMMON + DEFINE[../providers/legacy]=$CPUIDDEF ENDIF # Implementations are now spread across several libraries, so the CPUID define diff --git a/test/build.info b/test/build.info index 4b3b5efe67..3d7e2aac8b 100644 --- a/test/build.info +++ b/test/build.info @@ -881,6 +881,14 @@ IF[{- !$disabled{tests} -}] SOURCE[endecode_test]=endecode_test.c helpers/predefined_dhparams.c INCLUDE[endecode_test]=.. ../include ../apps/include DEPEND[endecode_test]=../libcrypto.a libtestutil.a + IF[{- !$disabled{module} && !$disabled{legacy} -}] + DEFINE[endecode_test]=STATIC_LEGACY + SOURCE[endecode_test]=../providers/legacyprov.c + INCLUDE[endecode_test]=../providers/common/include \ + ../providers/implementations/include + DEPEND[endecode_test]=../providers/liblegacy.a \ + ../providers/libcommon.a + ENDIF IF[{- !$disabled{'deprecated-3.0'} -}] PROGRAMS{noinst}=endecoder_legacy_test diff --git a/test/endecode_test.c b/test/endecode_test.c index e3f7b81f69..14648287eb 100644 --- a/test/endecode_test.c +++ b/test/endecode_test.c @@ -26,6 +26,10 @@ #include "helpers/predefined_dhparams.h" #include "testutil.h" +#ifdef STATIC_LEGACY +OSSL_provider_init_fn ossl_legacy_provider_init; +#endif + /* Extended test macros to allow passing file & line number */ #define TEST_FL_ptr(a) test_ptr(file, line, #a, a) #define TEST_FL_mem_eq(a, m, b, n) test_mem_eq(file, line, #a, #b, a, m, b, n) @@ -1325,6 +1329,16 @@ int setup_tests(void) if (is_fips_3_0_0 < 0) return 0; +#ifdef STATIC_LEGACY + /* + * This test is always statically linked against libcrypto. We must not + * attempt to load legacy.so that might be dynamically linked against + * libcrypto. Instead we use a built-in version of the legacy provider. + */ + if (!OSSL_PROVIDER_add_builtin(testctx, "legacy", ossl_legacy_provider_init)) + return 0; +#endif + /* Separate provider/ctx for generating the test data */ if (!TEST_ptr(keyctx = OSSL_LIB_CTX_new())) return 0; |