Compare commits

...

8 Commits

Author SHA1 Message Date
Valerio Setti
de9ff8f334 makefile: allow TF-PSA-Crypto path to be specified
This follows the same idea used in CMake: instead of assuming tf-psa-crypto
is always a subfolder of mbedtls, allow its path to be specified.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-07-29 17:29:00 +02:00
Valerio Setti
3e1139ba1b cmake: Allow generic path for TF-PSA-Crypto repo
Instead of requiring TF-PSA-Crypto to be inside the "mbedtls" folder,
allow it to be placed anywhere and its path to be specified when calling
CMake.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2026-07-29 17:29:00 +02:00
Valerio Setti
884c5f81a5 doc: configure doxygen file before
This is already done in TF-PSA-Crypto and it's useful to have this feature
also in Mbed TLS since we might want to use CMake variables to configure
the *.doxyfile.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-07-29 17:29:00 +02:00
David Horstmann
3bb3738679
Merge pull request #10820 from minosgalanakis/tools/fix-auto-generated-files
Fix generate_errors.pl
2026-07-20 09:55:59 +00:00
David Horstmann
12556bc2a2
Merge pull request #10804 from valeriosetti/improve-rsa-pubkey-import-err-code
pk: improve error code failure reporting when RSA public key parsing fails (1/2)
2026-07-15 11:09:33 +00:00
Minos Galanakis
32ae7d92d6 Fix generate_errors.pl
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2026-07-09 15:20:32 +01:00
Valerio Setti
a5b83aea58 tests: x509parse: add temporary fallback mechanism for PK error codes
Add a temporary fallback mechanism in 'x509parse_crt' while crypto#827
is merged.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-07-07 22:56:30 +02:00
Valerio Setti
8607628249 tests: x509parse: adjust some PK related error codes
After crypto#827 some PK error codes changed from
MBEDTLS_ERR_PK_INVALID_PUBKEY to MBEDTLS_ERR_PK_INVALID_ALG.
This commit adjusts failing test cases.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-07-02 14:05:15 +02:00
14 changed files with 114 additions and 97 deletions

View File

@ -67,6 +67,9 @@ endif()
# Set the project and framework root directory.
set(MBEDTLS_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(MBEDTLS_FRAMEWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/framework)
if(NOT DEFINED TF_PSA_CRYPTO_DIR)
set(TF_PSA_CRYPTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto)
endif()
option(ENABLE_PROGRAMS "Build Mbed TLS programs." ON)
@ -349,7 +352,7 @@ set(TF_PSA_CRYPTO_TARGET_PREFIX ${MBEDTLS_TARGET_PREFIX} CACHE STRING "")
set(TF_PSA_CRYPTO_FATAL_WARNINGS ${MBEDTLS_FATAL_WARNINGS} CACHE BOOL "")
set(USE_STATIC_TF_PSA_CRYPTO_LIBRARY ${USE_STATIC_MBEDTLS_LIBRARY} CACHE BOOL "")
set(USE_SHARED_TF_PSA_CRYPTO_LIBRARY ${USE_SHARED_MBEDTLS_LIBRARY} CACHE BOOL "")
add_subdirectory(tf-psa-crypto)
add_subdirectory(${TF_PSA_CRYPTO_DIR} tf-psa-crypto)
set(tfpsacrypto_target "${TF_PSA_CRYPTO_TARGET_PREFIX}tfpsacrypto")
if (USE_STATIC_MBEDTLS_LIBRARY)
@ -379,12 +382,12 @@ endforeach(target)
# empty.
#
set(TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/core
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/dispatch
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/drivers/builtin/src
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/extras
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/platform
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/utilities
${TF_PSA_CRYPTO_DIR}/core
${TF_PSA_CRYPTO_DIR}/dispatch
${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
${TF_PSA_CRYPTO_DIR}/extras
${TF_PSA_CRYPTO_DIR}/platform
${TF_PSA_CRYPTO_DIR}/utilities
)
add_subdirectory(library)
@ -433,10 +436,10 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
${MBEDTLS_FRAMEWORK_DIR}/tests/include
tests/include
include
tf-psa-crypto/include
tf-psa-crypto/drivers/builtin/include
tf-psa-crypto/drivers/everest/include
tf-psa-crypto/drivers/pqcp/include
${TF_PSA_CRYPTO_DIR}/include
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
${TF_PSA_CRYPTO_DIR}/drivers/everest/include
${TF_PSA_CRYPTO_DIR}/drivers/pqcp/include
library
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}
)
@ -470,11 +473,11 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
${MBEDTLS_FRAMEWORK_DIR}/tests/include
tests/include
include
tf-psa-crypto/include
tf-psa-crypto/drivers/builtin/include
${TF_PSA_CRYPTO_DIR}/include
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
library
tf-psa-crypto/drivers/everest/include
tf-psa-crypto/drivers/pqcp/include
${TF_PSA_CRYPTO_DIR}/drivers/everest/include
${TF_PSA_CRYPTO_DIR}/drivers/pqcp/include
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}
)
@ -488,9 +491,12 @@ if(ENABLE_PROGRAMS)
add_subdirectory(programs)
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doxygen/mbedtls.doxyfile.in
${PROJECT_BINARY_DIR}/doxygen/mbedtls.doxyfile)
ADD_CUSTOM_TARGET(${MBEDTLS_TARGET_PREFIX}mbedtls-apidoc
COMMAND doxygen mbedtls.doxyfile
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doxygen)
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doxygen)
if(ENABLE_TESTING)
enable_testing()

View File

@ -6,9 +6,9 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
CASE_SENSE_NAMES = NO
INPUT = ../include input ../tf-psa-crypto/include ../tests/include/alt-dummy
INPUT = "@CMAKE_CURRENT_LIST_DIR@/include" "@CMAKE_CURRENT_LIST_DIR@/doxygen/input" "@TF_PSA_CRYPTO_DIR@/include" "@CMAKE_CURRENT_LIST_DIR@/tests/include/alt-dummy"
FILE_PATTERNS = *.h
EXCLUDE = ../tf-psa-crypto/include/mbedtls/private
EXCLUDE = "../@TF_PSA_CRYPTO_DIR@/include/mbedtls/private"
RECURSIVE = YES
EXCLUDE_SYMLINKS = YES
SOURCE_BROWSER = YES
@ -22,7 +22,7 @@ GENERATE_LATEX = NO
GENERATE_XML = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
INCLUDE_PATH = ../include ../tf-psa-crypto/include ../tf-psa-crypto/drivers/builtin/include
INCLUDE_PATH = "@CMAKE_CURRENT_LIST_DIR@/include" "@TF_PSA_CRYPTO_DIR@/include" "@TF_PSA_CRYPTO_DIR@/drivers/builtin/include"
EXPAND_AS_DEFINED = MBEDTLS_PRIVATE
CLASS_DIAGRAMS = NO
HAVE_DOT = YES

View File

@ -48,7 +48,7 @@ if(GEN_FILES)
COMMAND
${PERL_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/drivers/builtin/include/mbedtls
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/mbedtls
${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files
${CMAKE_CURRENT_BINARY_DIR}/${TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_DIR}/error.c
@ -234,13 +234,13 @@ endif(USE_SHARED_MBEDTLS_LIBRARY)
foreach(target IN LISTS target_libraries)
add_library(MbedTLS::${target} ALIAS ${target}) # add_subdirectory support
# Include public header files from /include, /tf-psa-crypto/include/ and
# tf-psa-crypto/drivers/builtin/include/. Include private header files
# Include public header files from /include, ${TF_PSA_CRYPTO_DIR}/include/ and
# ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/. Include private header files
# from /library and ${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}.
target_include_directories(${target}
PUBLIC $<BUILD_INTERFACE:${MBEDTLS_DIR}/include/>
$<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/include/>
$<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/drivers/builtin/include/>
$<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/include/>
$<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
PRIVATE ${MBEDTLS_DIR}/library/
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}

View File

@ -24,6 +24,10 @@ ifndef MBEDTLS_PATH
MBEDTLS_PATH := ..
endif
ifndef TF_PSA_CRYPTO_PATH
TF_PSA_CRYPTO_PATH := $(MBEDTLS_PATH)/tf-psa-crypto
endif
ifeq (,$(wildcard $(MBEDTLS_PATH)/framework/exported.make))
# Use the define keyword to get a multi-line message.
# GNU make appends ". Stop.", so tweak the ending of our message accordingly.
@ -36,7 +40,7 @@ This is a fatal error
endif
include $(MBEDTLS_PATH)/framework/exported.make
include $(MBEDTLS_PATH)/tf-psa-crypto/scripts/crypto-common.make
include $(TF_PSA_CRYPTO_PATH)/scripts/crypto-common.make
# For the time being, Mbed TLS uses non-public interfaces of TF-PSA-Crypto,
# so we include both public and internal headers.
@ -159,7 +163,7 @@ include $(TF_PSA_CRYPTO_CORE_PATH)/crypto-library.make
static: libmbedcrypto.a libmbedx509.a libmbedtls.a
cd ../tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile
cd ../tf-psa-crypto/tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile
cd $(TF_PSA_CRYPTO_PATH)/tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile
shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)

View File

@ -196,7 +196,7 @@ endif
test/metatest$(EXEXT): $(FRAMEWORK)/tests/programs/metatest.c $(DEP)
echo " CC $(FRAMEWORK)/tests/programs/metatest.c"
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -I../library -I../tf-psa-crypto/core -I../tf-psa-crypto/drivers/builtin/src -I../tf-psa-crypto/platform $(FRAMEWORK)/tests/programs/metatest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -I../library -I$(TF_PSA_CRYPTO_PATH)/core -I$(TF_PSA_CRYPTO_PATH)/drivers/builtin/src -I$(TF_PSA_CRYPTO_PATH)/platform $(FRAMEWORK)/tests/programs/metatest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
test/query_config.o: test/query_config.c $(FRAMEWORK)/tests/programs/query_config.h $(DEP)
echo " CC test/query_config.c"

View File

@ -31,19 +31,19 @@ foreach(exe IN LISTS executables_no_common_c executables_with_common_c)
$<TARGET_OBJECTS:mbedtls_test_helpers>
$<TARGET_OBJECTS:mbedtls_test>)
if(NOT FUZZINGENGINE_LIB)
list(APPEND exe_sources ${MBEDTLS_DIR}/tf-psa-crypto/programs/fuzz/fuzz_onefile.c)
list(APPEND exe_sources ${TF_PSA_CRYPTO_DIR}/programs/fuzz/fuzz_onefile.c)
endif()
# This emulates "if ( ... IN_LIST ... )" which becomes available in CMake 3.3
list(FIND executables_with_common_c ${exe} exe_index)
if(${exe_index} GREATER -1)
list(APPEND exe_sources ${MBEDTLS_DIR}/tf-psa-crypto/programs/fuzz/fuzz_common.c)
list(APPEND exe_sources ${TF_PSA_CRYPTO_DIR}/programs/fuzz/fuzz_common.c)
endif()
add_executable(${exe} ${exe_sources})
set_base_compile_options(${exe})
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../framework/tests/include
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/programs/fuzz/
${TF_PSA_CRYPTO_DIR}/programs/fuzz/
${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
if (NOT FUZZINGENGINE_LIB)

View File

@ -3,7 +3,7 @@ MBEDTLS_TEST_PATH:=../../tests
MBEDTLS_PATH := ../..
include ../../scripts/common.make
PROGRAM_FUZZ_PATH:=$(MBEDTLS_PATH)/tf-psa-crypto/programs/fuzz
PROGRAM_FUZZ_PATH:=$(TF_PSA_CRYPTO_PATH)/programs/fuzz
DEP=${MBEDLIBS}
@ -46,9 +46,9 @@ endif
clean:
ifndef WINDOWS
rm -rf $(BINARIES) *.o
rm -rf $(MBEDTLS_PATH)/tf-psa-crypto/programs/fuzz/*.o
rm -rf $(TF_PSA_CRYPTO_PATH)/programs/fuzz/*.o
else
if exist *.o del /Q /F *.o
if exist *.exe del /Q /F *.exe
if exist $(MBEDTLS_PATH)\tf-psa-crypto\programs\fuzz\*.o del /Q /F $(MBEDTLS_PATH)\tf-psa-crypto\programs\fuzz\*.o
if exist $(TF_PSA_CRYPTO_PATH)\programs\fuzz\*.o del /Q /F $(TF_PSA_CRYPTO_PATH)\programs\fuzz\*.o
endif

View File

@ -27,8 +27,8 @@ if(TEST_CPP)
set_base_compile_options(cpp_dummy_build)
target_include_directories(cpp_dummy_build
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include)
PRIVATE ${TF_PSA_CRYPTO_DIR}/include
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include)
target_link_libraries(cpp_dummy_build ${tfpsacrypto_target} ${CMAKE_THREAD_LIBS_INIT})
endif()
@ -38,8 +38,8 @@ if(USE_SHARED_MBEDTLS_LIBRARY AND
set_base_compile_options(dlopen)
target_include_directories(dlopen
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include)
PRIVATE ${TF_PSA_CRYPTO_DIR}/include
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include)
target_link_libraries(dlopen ${CMAKE_DL_LIBS})
endif()
@ -53,14 +53,14 @@ if(GEN_FILES)
${PERL}
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h
${TF_PSA_CRYPTO_DIR}/include/psa/crypto_config.h
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
${CMAKE_CURRENT_BINARY_DIR}/query_config.c
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h
${TF_PSA_CRYPTO_DIR}/include/psa/crypto_config.h
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
)
# this file will also be used in another directory, so create a target, see
@ -92,7 +92,7 @@ foreach(exe IN LISTS executables)
${MBEDTLS_FRAMEWORK_DIR}/tests/programs)
target_include_directories(${exe}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../library
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/core)
${TF_PSA_CRYPTO_DIR}/core)
if(exe STREQUAL "query_compile_time_config")
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
endif()
@ -103,8 +103,8 @@ foreach(exe IN LISTS executables)
endforeach()
target_include_directories(metatest
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/src
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/platform
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
${TF_PSA_CRYPTO_DIR}/platform
)
install(TARGETS ${executables}
DESTINATION "bin"

View File

@ -15,6 +15,10 @@ ifndef MBEDTLS_PATH
MBEDTLS_PATH := ..
endif
ifndef TF_PSA_CRYPTO_PATH
TF_PSA_CRYPTO_PATH := $(MBEDTLS_PATH)/tf-psa-crypto
endif
PSASIM_PATH?=$(abspath $(MBEDTLS_PATH)/framework/psasim)

View File

@ -188,7 +188,7 @@ foreach my $match (@matches)
$first = 0;
foreach my $dep (split(/,/, ${$old_define_name}))
{
${$code_check} .= " || \n " if ($first++);
${$code_check} .= " ||\n " if ($first++);
${$code_check} .= "${$old_define_prefix}${dep}${$old_define_suffix}";
}
${$code_check} .= " */\n\n";
@ -229,7 +229,7 @@ if ($ll_old_define[0] ne "")
my $first = 0;
foreach my $dep (split(/,/, $ll_old_define[0]))
{
$ll_code_check .= " || \n " if ($first++);
$ll_code_check .= " ||\n " if ($first++);
$ll_code_check .= "${ll_old_define[1]}${dep}${ll_old_define[2]}";
}
$ll_code_check .= " */\n";
@ -240,7 +240,7 @@ if ($hl_old_define[0] ne "")
my $first = 0;
foreach my $dep (split(/,/, $hl_old_define[0]))
{
$hl_code_check .= " || \n " if ($first++);
$hl_code_check .= " ||\n " if ($first++);
$hl_code_check .= "${hl_old_define[1]}${dep}${hl_old_define[2]}";
}
$hl_code_check .= " */\n";

View File

@ -147,18 +147,18 @@ function(add_test_suite suite_name)
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
-f ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
-d ${data_file}
-t ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
-p ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
-t ${TF_PSA_CRYPTO_DIR}/tests/suites/main_test.function
-p ${TF_PSA_CRYPTO_DIR}/tests/suites/host_test.function
-s ${CMAKE_CURRENT_SOURCE_DIR}/suites
--helpers-file ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
--helpers-file ${TF_PSA_CRYPTO_DIR}/tests/suites/helpers.function
-o .
DEPENDS
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
${data_file}
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
${TF_PSA_CRYPTO_DIR}/tests/suites/main_test.function
${TF_PSA_CRYPTO_DIR}/tests/suites/host_test.function
${TF_PSA_CRYPTO_DIR}/tests/suites/helpers.function
${mbedtls_target}
BYPRODUCTS
test_suite_${data_name}.datax

View File

@ -107,7 +107,7 @@ include/test/test_keys.h: ../framework/scripts/generate_test_keys.py
TEST_OBJS_DEPS = $(wildcard include/test/*.h include/test/*/*.h)
TEST_OBJS_DEPS += include/test/test_certs.h include/test/test_keys.h \
../tf-psa-crypto/tests/include/test/test_keys.h
$(TF_PSA_CRYPTO_PATH)/tests/include/test/test_keys.h
# Rule to compile common test C files in framework
../framework/tests/src/%.o : ../framework/tests/src/%.c $(TEST_OBJS_DEPS)
@ -150,9 +150,9 @@ c: $(C_FILES)
# the local case. In GNU Make >=3.82, the shortest match applies regardless
# of the order in the makefile. In GNU Make <=3.81, the first matching rule
# applies.
../tf-psa-crypto/tests/%.c: ../tf-psa-crypto/tests/suites/$$(firstword $$(subst ., ,$$*)).function ../tf-psa-crypto/tests/suites/%.data ../framework/scripts/generate_test_code.py ../tf-psa-crypto/tests/suites/helpers.function ../tf-psa-crypto/tests/suites/main_test.function ../tf-psa-crypto/tests/suites/host_test.function
$(TF_PSA_CRYPTO_PATH)/tests/%.c: $(TF_PSA_CRYPTO_PATH)/tests/suites/$$(firstword $$(subst ., ,$$*)).function $(TF_PSA_CRYPTO_PATH)/tests/suites/%.data ../framework/scripts/generate_test_code.py $(TF_PSA_CRYPTO_PATH)/tests/suites/helpers.function $(TF_PSA_CRYPTO_PATH)/tests/suites/main_test.function $(TF_PSA_CRYPTO_PATH)/tests/suites/host_test.function
echo " Gen $@"
cd ../tf-psa-crypto/tests && $(PYTHON) ../../framework/scripts/generate_test_code.py -f suites/$(firstword $(subst ., ,$*)).function \
cd $(TF_PSA_CRYPTO_PATH)/tests && $(PYTHON) ../../framework/scripts/generate_test_code.py -f suites/$(firstword $(subst ., ,$*)).function \
-d suites/$*.data \
-t suites/main_test.function \
-p suites/host_test.function \
@ -160,14 +160,14 @@ c: $(C_FILES)
--helpers-file suites/helpers.function \
-o .
%.c: suites/$$(firstword $$(subst ., ,$$*)).function suites/%.data ../framework/scripts/generate_test_code.py ../tf-psa-crypto/tests/suites/helpers.function ../tf-psa-crypto/tests/suites/main_test.function ../tf-psa-crypto/tests/suites/host_test.function
%.c: suites/$$(firstword $$(subst ., ,$$*)).function suites/%.data ../framework/scripts/generate_test_code.py $(TF_PSA_CRYPTO_PATH)/tests/suites/helpers.function $(TF_PSA_CRYPTO_PATH)/tests/suites/main_test.function $(TF_PSA_CRYPTO_PATH)/tests/suites/host_test.function
echo " Gen $@"
$(PYTHON) ../framework/scripts/generate_test_code.py -f suites/$(firstword $(subst ., ,$*)).function \
-d suites/$*.data \
-t ../tf-psa-crypto/tests/suites/main_test.function \
-p ../tf-psa-crypto/tests/suites/host_test.function \
-t $(TF_PSA_CRYPTO_PATH)/tests/suites/main_test.function \
-p $(TF_PSA_CRYPTO_PATH)/tests/suites/host_test.function \
-s suites \
--helpers-file ../tf-psa-crypto/tests/suites/helpers.function \
--helpers-file $(TF_PSA_CRYPTO_PATH)/tests/suites/helpers.function \
-o .
$(BINARIES): %$(EXEXT): %.c $(MBEDLIBS) $(TEST_OBJS_DEPS) $(MBEDTLS_TEST_OBJS)
@ -182,13 +182,13 @@ LOCAL_CRYPTO_LDFLAGS = $(patsubst -L../library, -L../../library, \
$(LOCAL_LDFLAGS)))))
$(CRYPTO_BINARIES): %$(EXEXT): %.c $(MBEDLIBS) $(TEST_OBJS_DEPS) $(MBEDTLS_TEST_OBJS)
echo " CC $<"
cd ../tf-psa-crypto/tests && $(CC) $(LOCAL_CRYPTO_CFLAGS) $(CFLAGS) $(subst $(EXEXT),,$(@F)).c $(LOCAL_CRYPTO_LDFLAGS) $(LDFLAGS) -o $(@F)
cd $(TF_PSA_CRYPTO_PATH)/tests && $(CC) $(LOCAL_CRYPTO_CFLAGS) $(CFLAGS) $(subst $(EXEXT),,$(@F)).c $(LOCAL_CRYPTO_LDFLAGS) $(LDFLAGS) -o $(@F)
clean:
ifndef WINDOWS
$(MAKE) -C $(PSASIM_PATH) clean
rm -rf $(BINARIES) *.c *.datax
rm -rf $(CRYPTO_BINARIES) ../tf-psa-crypto/tests/*.c ../tf-psa-crypto/tests/*.datax
rm -rf $(CRYPTO_BINARIES) $(TF_PSA_CRYPTO_PATH)/tests/*.c $(TF_PSA_CRYPTO_PATH)/tests/*.datax
rm -f src/*.o src/test_helpers/*.o src/libmbed*
rm -f ../framework/tests/src/*.o ../framework/tests/src/drivers/*.o
rm -f ../framework/tests/include/test/instrument_record_status.h
@ -200,9 +200,9 @@ else
if exist *.c del /Q /F *.c
if exist *.exe del /Q /F *.exe
if exist *.datax del /Q /F *.datax
if exist ../tf-psa-crypto/tests/*.c del /Q /F ../tf-psa-crypto/tests/*.c
if exist ../tf-psa-crypto/tests/*.exe del /Q /F ../tf-psa-crypto/tests/*.exe
if exist ../tf-psa-crypto/tests/*.datax del /Q /F ../tf-psa-crypto/tests/*.datax
if exist $(TF_PSA_CRYPTO_PATH)/tests/*.c del /Q /F $(TF_PSA_CRYPTO_PATH)/tests/*.c
if exist $(TF_PSA_CRYPTO_PATH)/tests/*.exe del /Q /F $(TF_PSA_CRYPTO_PATH)/tests/*.exe
if exist $(TF_PSA_CRYPTO_PATH)/tests/*.datax del /Q /F $(TF_PSA_CRYPTO_PATH)/tests/*.datax
if exist src/*.o del /Q /F src/*.o
if exist src/test_helpers/*.o del /Q /F src/test_helpers/*.o
if exist src/libmbed* del /Q /F src/libmbed*
@ -220,9 +220,9 @@ test: check
# Generate variants of some headers for testing
../framework/tests/include/alt-extra/%_alt.h: ../include/%.h
perl -p -e 's/^(# *(define|ifndef) +\w+_)H\b/$${1}ALT_H/' $< >$@
../framework/tests/include/alt-extra/%_alt.h: ../tf-psa-crypto/include/%.h
../framework/tests/include/alt-extra/%_alt.h: $(TF_PSA_CRYPTO_PATH)/include/%.h
perl -p -e 's/^(# *(define|ifndef) +\w+_)H\b/$${1}ALT_H/' $< >$@
../framework/tests/include/alt-extra/%_alt.h: ../tf-psa-crypto/drivers/builtin/include/%.h
../framework/tests/include/alt-extra/%_alt.h: $(TF_PSA_CRYPTO_PATH)/drivers/builtin/include/%.h
perl -p -e 's/^(# *(define|ifndef) +\w+_)H\b/$${1}ALT_H/' $< >$@
# Generate test library
@ -240,40 +240,40 @@ libtestdriver1.a:
cp -Rf ../library ./libtestdriver1
cp -Rf ../include ./libtestdriver1
cp -Rf ../scripts ./libtestdriver1
cp -Rf ../tf-psa-crypto/core ./libtestdriver1/tf-psa-crypto
cp -Rf ../tf-psa-crypto/include ./libtestdriver1/tf-psa-crypto
cp -Rf ../tf-psa-crypto/drivers/builtin ./libtestdriver1/tf-psa-crypto/drivers/builtin
if [ -d ../tf-psa-crypto/dispatch ]; then \
cp -Rf ../tf-psa-crypto/dispatch ./libtestdriver1/tf-psa-crypto/dispatch; \
cp -Rf $(TF_PSA_CRYPTO_PATH)/core ./libtestdriver1/tf-psa-crypto
cp -Rf $(TF_PSA_CRYPTO_PATH)/include ./libtestdriver1/tf-psa-crypto
cp -Rf $(TF_PSA_CRYPTO_PATH)/drivers/builtin ./libtestdriver1/tf-psa-crypto/drivers/builtin
if [ -d $(TF_PSA_CRYPTO_PATH)/dispatch ]; then \
cp -Rf $(TF_PSA_CRYPTO_PATH)/dispatch ./libtestdriver1/tf-psa-crypto/dispatch; \
fi
if [ -d ../tf-psa-crypto/extras ]; then \
cp -Rf ../tf-psa-crypto/extras ./libtestdriver1/tf-psa-crypto/extras; \
if [ -d $(TF_PSA_CRYPTO_PATH)/extras ]; then \
cp -Rf $(TF_PSA_CRYPTO_PATH)/extras ./libtestdriver1/tf-psa-crypto/extras; \
fi
if [ -d ../tf-psa-crypto/platform ]; then \
cp -Rf ../tf-psa-crypto/platform ./libtestdriver1/tf-psa-crypto/platform; \
if [ -d $(TF_PSA_CRYPTO_PATH)/platform ]; then \
cp -Rf $(TF_PSA_CRYPTO_PATH)/platform ./libtestdriver1/tf-psa-crypto/platform; \
fi
if [ -d ../tf-psa-crypto/utilities ]; then \
cp -Rf ../tf-psa-crypto/utilities ./libtestdriver1/tf-psa-crypto/utilities; \
if [ -d $(TF_PSA_CRYPTO_PATH)/utilities ]; then \
cp -Rf $(TF_PSA_CRYPTO_PATH)/utilities ./libtestdriver1/tf-psa-crypto/utilities; \
fi
cp -Rf ../tf-psa-crypto/scripts ./libtestdriver1/tf-psa-crypto
cp -Rf $(TF_PSA_CRYPTO_PATH)/scripts ./libtestdriver1/tf-psa-crypto
# Set the test driver base (minimal) configuration.
cp ../tf-psa-crypto/tests/configs/config_test_driver.h ./libtestdriver1/include/mbedtls/mbedtls_config.h
cp ../tf-psa-crypto/tests/configs/crypto_config_test_driver.h ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
cp $(TF_PSA_CRYPTO_PATH)/tests/configs/config_test_driver.h ./libtestdriver1/include/mbedtls/mbedtls_config.h
cp $(TF_PSA_CRYPTO_PATH)/tests/configs/crypto_config_test_driver.h ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
# Set the PSA cryptography configuration for the test library.
# The configuration is created by joining the base
# ../tf-psa-crypto/tests/configs/crypto_config_test_driver.h,
# $(TF_PSA_CRYPTO_PATH)/tests/configs/crypto_config_test_driver.h,
# with the the library's PSA_WANT_* macros extracted from
# ./tf-psa-crypto/include/psa/crypto_config.h
# and then extended with entries of
# ../tf-psa-crypto/tests/configs/crypto_config_test_driver_extension.h
# $(TF_PSA_CRYPTO_PATH)/tests/configs/crypto_config_test_driver_extension.h
# to mirror the PSA_ACCEL_* macros.
mv ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h.bak
head -n -1 ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h.bak > ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
grep '^#define PSA_WANT_*' ../tf-psa-crypto/include/psa/crypto_config.h >> ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
cat ../tf-psa-crypto/tests/configs/crypto_config_test_driver_extension.h >> ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
grep '^#define PSA_WANT_*' $(TF_PSA_CRYPTO_PATH)/include/psa/crypto_config.h >> ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
cat $(TF_PSA_CRYPTO_PATH)/tests/configs/crypto_config_test_driver_extension.h >> ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
echo "#endif /* PSA_CRYPTO_CONFIG_H */" >> ./libtestdriver1/tf-psa-crypto/include/psa/crypto_config.h
# Prefix MBEDTLS_* PSA_* symbols with LIBTESTDRIVER1_ as well as
@ -287,16 +287,16 @@ libtestdriver1.a:
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*.h
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/include/*/*/*.h
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/drivers/builtin/src/*.[ch]
if [ -d ../tf-psa-crypto/dispatch ]; then \
if [ -d $(TF_PSA_CRYPTO_PATH)/dispatch ]; then \
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/dispatch/*.[ch]; \
fi
if [ -d ../tf-psa-crypto/extras ]; then \
if [ -d $(TF_PSA_CRYPTO_PATH)/extras ]; then \
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/extras/*.[ch]; \
fi
if [ -d ../tf-psa-crypto/platform ]; then \
if [ -d $(TF_PSA_CRYPTO_PATH)/platform ]; then \
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/platform/*.[ch]; \
fi
if [ -d ../tf-psa-crypto/utilities ]; then \
if [ -d $(TF_PSA_CRYPTO_PATH)/utilities ]; then \
perl -i ./scripts/libtestdriver1_rewrite.pl ./libtestdriver1/tf-psa-crypto/utilities/*.[ch]; \
fi
$(MAKE) -C ./libtestdriver1/library CFLAGS="-I../../ $(CFLAGS)" LDFLAGS="$(LDFLAGS)" libmbedcrypto.a

View File

@ -1769,15 +1769,15 @@ x509parse_crt:"307d3068a0030201008204deadbeef300d06092a864886f70d01010b0500300c3
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, inv internal bitstring length)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
x509parse_crt:"308180306ba0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a300806001304546573743015300d06092A864886F70D0101010500030400300000300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_PUBKEY
x509parse_crt:"308180306ba0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a300806001304546573743015300d06092A864886F70D0101010500030400300000300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_ALG
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, inv internal bitstring tag)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
x509parse_crt:"308180306ba0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a300806001304546573743015300d06092A864886F70D0101010500030400310000300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_PUBKEY
x509parse_crt:"308180306ba0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a300806001304546573743015300d06092A864886F70D0101010500030400310000300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_ALG
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, inv RSA modulus)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
x509parse_crt:"3081873072a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374301c300d06092A864886F70D0101010500030b0030080202ffff0302ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_PUBKEY
x509parse_crt:"3081873072a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374301c300d06092A864886F70D0101010500030b0030080202ffff0302ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_ALG
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, total length mismatch)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
@ -1785,11 +1785,11 @@ x509parse_crt:"3081893074a0030201008204deadbeef300d06092a864886f70d01010b0500300
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, check failed)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
x509parse_crt:"3081873072a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374301c300d06092A864886F70D0101010500030b0030080202ffff0202ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_PUBKEY
x509parse_crt:"3081873072a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374301c300d06092A864886F70D0101010500030b0030080202ffff0202ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_ALG
X509 CRT ASN1 (TBS, inv SubPubKeyInfo, check failed, expanded length notation)
depends_on:PSA_HAVE_ALG_SOME_RSA_VERIFY:PSA_WANT_ALG_SHA_256
x509parse_crt:"308196308180a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374302a300d06092A864886F70D010101050003190030160210fffffffffffffffffffffffffffffffe0202ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_PUBKEY
x509parse_crt:"308196308180a0030201008204deadbeef300d06092a864886f70d01010b0500300c310a30080600130454657374301c170c303930313031303030303030170c303931323331323335393539300c310a30080600130454657374302a300d06092A864886F70D010101050003190030160210fffffffffffffffffffffffffffffffe0202ffff300d06092a864886f70d01010b0500030200ff":"":MBEDTLS_ERR_PK_INVALID_ALG
# We expect an extension parsing error here because the IssuerID is optional.
# Hence, if we find an ASN.1 tag doesn't match the IssuerID, we assume the

View File

@ -1136,12 +1136,15 @@ void x509parse_crt(data_t *buf, char *result_str, int result)
#else
((void) result_str);
#endif
/* Tests whose result is MBEDTLS_ERR_PK_INVALID_PUBKEY might return
* MBEDTLS_ERR_ASN1_UNEXPECTED_TAG until psa#308 is merged. This variable
* is therefore used for backward compatiblity and will be removed in
* mbedtls#10229. */
int result_back_comp = result;
int res;
/* After psa#827 some failing tests that were returning MBEDTLS_ERR_PK_INVALID_PUBKEY
* will return MBEDTLS_ERR_PK_INVALID_ALG instead. We need a temporary
* backward compatibility fix until psa#827 is merged.
*/
int result_back_comp = result;
if (result == MBEDTLS_ERR_PK_INVALID_ALG) {
result_back_comp = MBEDTLS_ERR_PK_INVALID_PUBKEY;
}
mbedtls_x509_crt_init(&crt);
USE_PSA_INIT();