openssl/providers
Hongren Zheng a192b2439c fips provider: explicitly setup cpuid when initializing
Fixes: #23979

Previously fips module relied on OPENSSL_cpuid_setup
being used as constructor by the linker to correctly
setup the capability vector, either via .section .init
(for x86_64) or via __attribute__((constructor)).

This would make ld.so call OPENSSL_cpuid_setup before
the init function for fips module. However, this early
constructing behavior has several disadvantages:

1. Not all platform/toolchain supports such behavior

2. Initialisation sequence is not well defined, and
some function might not be initialized when cpuid_setup
is called

3. Implicit path is hard to maintain and debug

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24419)
2024-05-20 10:14:39 +02:00
..
common Exclude X25519 and X448 from capabilities advertised by FIPS provider 2024-04-19 10:32:27 +02:00
fips fips provider: explicitly setup cpuid when initializing 2024-05-20 10:14:39 +02:00
implementations Intentionally break EVP_DigestFinal for SHAKE128 and SHAKE256 2024-05-15 12:10:32 +02:00
baseprov.c fips: use seed source requested 2023-09-27 17:23:04 +01:00
build.info Add VERSIONINFO resource to legacy provider if it is not builtin 2022-06-02 11:09:10 -04:00
decoders.inc Copyright year updates 2023-09-07 09:59:15 +01:00
defltprov.c Copyright year updates 2023-09-07 09:59:15 +01:00
encoders.inc Copyright year updates 2023-09-07 09:59:15 +01:00
fips-sources.checksums make update 2023-09-28 14:24:31 +01:00
fips.checksum make update 2023-09-28 14:24:31 +01:00
fips.module.sources make update 2023-09-07 10:00:21 +01:00
legacyprov.c Copyright year updates 2023-09-07 09:59:15 +01:00
nullprov.c Copyright year updates 2023-09-07 09:59:15 +01:00
prov_running.c keygen: add FIPS error state management to conditional self tests 2020-09-12 16:46:51 +10:00
stores.inc Add support for loading root CAs from Windows crypto API 2022-09-14 14:10:18 +01:00