From d9c6a411c69168e17402c616c58caf22c0a4b003 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 12 Dec 2025 19:56:26 +0100 Subject: [PATCH] Introduce intermediate variables for various TF-PSA-Crypto lists Use separate variables for the crypto part of lists of generated C files, generated objects, sample programs and test data files. No behavior change. Signed-off-by: Gilles Peskine Signed-off-by: Gilles Peskine --- library/Makefile | 33 ++++++++++++++++++--------------- programs/Makefile | 25 +++++++++++++++++-------- tests/Makefile | 28 +++++++++++++++++----------- 3 files changed, 52 insertions(+), 34 deletions(-) diff --git a/library/Makefile b/library/Makefile index 3ee40fb71c..4c2e21dab5 100644 --- a/library/Makefile +++ b/library/Makefile @@ -104,11 +104,13 @@ else gen_file_dep = | endif -OBJS_CRYPTO = $(patsubst %.c, %.o,$(wildcard $(TF_PSA_CRYPTO_CORE_PATH)/*.c $(TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_PATH)/*.c)) -GENERATED_OBJS_CRYPTO = $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.o -OBJS_CRYPTO := $(filter-out $(GENERATED_OBJS_CRYPTO),$(OBJS_CRYPTO)) -OBJS_CRYPTO += $(GENERATED_OBJS_CRYPTO) -OBJS_CRYPTO+=$(THIRDPARTY_CRYPTO_OBJECTS) +TF_PSA_CRYPTO_LIBRARY_OBJS := $(patsubst %.c, %.o,$(wildcard $(TF_PSA_CRYPTO_CORE_PATH)/*.c $(TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_PATH)/*.c)) +TF_PSA_CRYPTO_LIBRARY_GENERATED_OBJS = $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.o +TF_PSA_CRYPTO_LIBRARY_OBJS := $(filter-out $(TF_PSA_CRYPTO_LIBRARY_GENERATED_OBJS),$(TF_PSA_CRYPTO_LIBRARY_OBJS)) +TF_PSA_CRYPTO_LIBRARY_OBJS += $(TF_PSA_CRYPTO_LIBRARY_GENERATED_OBJS) +TF_PSA_CRYPTO_LIBRARY_OBJS+=$(THIRDPARTY_CRYPTO_OBJECTS) + +OBJS_CRYPTO = $(TF_PSA_CRYPTO_LIBRARY_OBJS) OBJS_X509= \ mbedtls_config.o \ @@ -268,6 +270,15 @@ libmbedcrypto.dll: $(OBJS_CRYPTO) echo " CC $<" $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -S -o $@ -c $< +# List the generated files from crypto that are needed in the build, +# because we don't have the list in a consumable form. +TF_PSA_CRYPTO_LIBRARY_GENERATED_FILES := \ + $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers.h \ + $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.c \ + $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_before.h \ + $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_final.h \ + $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_user.h + # List the generated files without running a script, so that this # works with no tooling dependencies when GEN_FILES is disabled. GENERATED_FILES := \ @@ -276,16 +287,8 @@ GENERATED_FILES := \ mbedtls_config_check_user.h \ error.c \ version_features.c \ - ssl_debug_helpers_generated.c - -# Also list the generated files from crypto that are needed in the build, -# because we don't have the list in a consumable form. -GENERATED_FILES += \ - $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers.h \ - $(TF_PSA_CRYPTO_CORE_PATH)/psa_crypto_driver_wrappers_no_static.c \ - $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_before.h \ - $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_final.h \ - $(TF_PSA_CRYPTO_CORE_PATH)/tf_psa_crypto_config_check_user.h + ssl_debug_helpers_generated.c \ + $(TF_PSA_CRYPTO_LIBRARY_GENERATED_FILES) .PHONY: generated_files generated_files: $(GENERATED_FILES) diff --git a/programs/Makefile b/programs/Makefile index 47745de052..e6bbf70a02 100644 --- a/programs/Makefile +++ b/programs/Makefile @@ -27,6 +27,16 @@ endif LOCAL_CFLAGS += -I$(FRAMEWORK)/tests/programs +TF_PSA_CRYPTO_APPS := \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/aead_demo \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/crypto_examples \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/hmac_demo \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/key_ladder_demo \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/psa_constant_names \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/psa_hash \ + $(TF_PSA_CRYPTO_PATH)/programs/test/which_aes \ +# End of APPS + ## The following assignment is the list of base names of applications that ## will be built on Windows. Extra Linux/Unix/POSIX-only applications can ## be declared by appending with `APPS += ...` afterwards. @@ -36,13 +46,7 @@ LOCAL_CFLAGS += -I$(FRAMEWORK)/tests/programs ## Note: Variables cannot be used to define an apps path. This cannot be ## substituted by the script generate_visualc_files.pl. APPS = \ - ../tf-psa-crypto/programs/psa/aead_demo \ - ../tf-psa-crypto/programs/psa/crypto_examples \ - ../tf-psa-crypto/programs/psa/hmac_demo \ - ../tf-psa-crypto/programs/psa/key_ladder_demo \ - ../tf-psa-crypto/programs/psa/psa_constant_names \ - ../tf-psa-crypto/programs/psa/psa_hash \ - ../tf-psa-crypto/programs/test/which_aes \ + $(TF_PSA_CRYPTO_APPS) \ ssl/dtls_client \ ssl/dtls_server \ ssl/mini_client \ @@ -107,8 +111,13 @@ fuzz: ${MBEDLIBS} ${MBEDTLS_TEST_OBJS} ${MBEDTLS_TEST_OBJS}: $(MAKE) -C ../tests mbedtls_test +TF_PSA_CRYPTO_PROGRAMS_GENERATED_FILES := \ + $(TF_PSA_CRYPTO_PATH)/programs/psa/psa_constant_names_generated.c + .PHONY: generated_files -GENERATED_FILES = ../tf-psa-crypto/programs/psa/psa_constant_names_generated.c test/query_config.c +GENERATED_FILES := \ + test/query_config.c \ + $(TF_PSA_CRYPTO_PROGRAMS_GENERATED_FILES) generated_files: $(GENERATED_FILES) ../tf-psa-crypto/programs/psa/psa_constant_names_generated.c: $(gen_file_dep) ../tf-psa-crypto/scripts/generate_psa_constants.py diff --git a/tests/Makefile b/tests/Makefile index 7ebc10b6d0..8e8dcf6177 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -24,7 +24,7 @@ GENERATED_BIGNUM_DATA_FILES := $(addprefix ../tf-psa-crypto/,$(shell \ ifeq ($(GENERATED_BIGNUM_DATA_FILES),FAILED) $(error "$(PYTHON) ../framework/scripts/generate_bignum_tests.py --list" failed) endif -GENERATED_CRYPTO_DATA_FILES += $(GENERATED_BIGNUM_DATA_FILES) +TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES += $(GENERATED_BIGNUM_DATA_FILES) GENERATED_MBEDTLS_CONFIG_DATA_FILES := $(patsubst tests/%,%,$(shell \ $(PYTHON) ../framework/scripts/generate_config_tests.py --list || \ @@ -44,7 +44,7 @@ endif GENERATED_CONFIG_DATA_FILES := $(GENERATED_MBEDTLS_CONFIG_DATA_FILES) $(GENERATED_PSA_CONFIG_DATA_FILES) GENERATED_DATA_FILES += $(GENERATED_MBEDTLS_CONFIG_DATA_FILES) -GENERATED_CRYPTO_DATA_FILES += $(GENERATED_PSA_CONFIG_DATA_FILES) +TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES += $(GENERATED_PSA_CONFIG_DATA_FILES) GENERATED_ECP_DATA_FILES := $(addprefix ../tf-psa-crypto/,$(shell \ $(PYTHON) ../framework/scripts/generate_ecp_tests.py --list || \ @@ -53,7 +53,7 @@ GENERATED_ECP_DATA_FILES := $(addprefix ../tf-psa-crypto/,$(shell \ ifeq ($(GENERATED_ECP_DATA_FILES),FAILED) $(error "$(PYTHON) ../framework/scripts/generate_ecp_tests.py --list" failed) endif -GENERATED_CRYPTO_DATA_FILES += $(GENERATED_ECP_DATA_FILES) +TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES += $(GENERATED_ECP_DATA_FILES) GENERATED_PSA_DATA_FILES := $(addprefix ../tf-psa-crypto/,$(shell \ $(PYTHON) ../framework/scripts/generate_psa_tests.py --list || \ @@ -62,12 +62,18 @@ GENERATED_PSA_DATA_FILES := $(addprefix ../tf-psa-crypto/,$(shell \ ifeq ($(GENERATED_PSA_DATA_FILES),FAILED) $(error "$(PYTHON) ../framework/scripts/generate_psa_tests.py --list" failed) endif -GENERATED_CRYPTO_DATA_FILES += $(GENERATED_PSA_DATA_FILES) +TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES += $(GENERATED_PSA_DATA_FILES) -GENERATED_FILES = $(GENERATED_DATA_FILES) $(GENERATED_CRYPTO_DATA_FILES) -GENERATED_FILES += include/test/test_keys.h \ - ../tf-psa-crypto/tests/include/test/test_keys.h \ - include/test/test_certs.h +TF_PSA_CRYPTO_TESTS_GENERATED_C_FILES = \ + ../tf-psa-crypto/tests/include/test/test_keys.h +GENERATED_C_FILES = \ + include/test/test_keys.h include/test/test_certs.h + +GENERATED_FILES = \ + $(GENERATED_DATA_FILES) \ + $(TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES) \ + $(GENERATED_C_FILES) \ + $(TF_PSA_CRYPTO_TESTS_GENERATED_C_FILES) # Generated files needed to (fully) run ssl-opt.sh .PHONY: ssl-opt @@ -163,15 +169,15 @@ generated_psa_test_data: # Application name is same as .data file's base name and can be # constructed by stripping path 'suites/' and extension .data. DATA_FILES = $(filter-out $(GENERATED_DATA_FILES), $(wildcard suites/test_suite_*.data)) -CRYPTO_DATA_FILES = $(filter-out $(GENERATED_CRYPTO_DATA_FILES), $(wildcard ../tf-psa-crypto/tests/suites/test_suite_*.data)) +TF_PSA_CRYPTO_TESTS_DATA_FILES = $(filter-out $(TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES), $(wildcard $(TF_PSA_CRYPTO_PATH)/tests/suites/test_suite_*.data)) # Make sure that generated data files are included even if they don't # exist yet when the makefile is parsed. DATA_FILES += $(GENERATED_DATA_FILES) -CRYPTO_DATA_FILES += $(GENERATED_CRYPTO_DATA_FILES) +TF_PSA_CRYPTO_TESTS_DATA_FILES += $(TF_PSA_CRYPTO_TESTS_GENERATED_DATA_FILES) APPS = $(basename $(subst suites/,,$(DATA_FILES))) -CRYPTO_APPS = $(basename $(subst suites/,,$(CRYPTO_DATA_FILES))) +CRYPTO_APPS = $(basename $(subst suites/,,$(TF_PSA_CRYPTO_TESTS_DATA_FILES))) # Construct executable name by adding OS specific suffix $(EXEXT). BINARIES := $(addsuffix $(EXEXT),$(APPS))