• Home
  • Raw
  • Download

Lines Matching +full:- +full:- +full:config

6 # SPDX-License-Identifier: Apache-2.0
12 # http://www.apache.org/licenses/LICENSE-2.0
27 # -------
32 # ---------------
44 # * Basic Unix tools (Windows users note: a Unix-style find must be before
51 # * arm-gcc and mingw-gcc
52 # * ArmCC 5 and ArmCC 6, unless invoked with --no-armcc
62 # The behavior on an error depends on whether --keep-going (alias -k)
64 # * Without --keep-going: the script stops on the first error without
67 # * With --keep-going: the script runs all requested components and
72 # script -c tests/scripts/all.sh
77 # ---------------------
97 # fails if any command in it returns a non-zero status.
101 # cleaned-up state, and don't need to perform the cleanup themselves.
107 # This cleans up after an in-tree use of CMake.
119 # Abort on errors (even on the left-hand side of a pipe).
121 set -e -o pipefail -u
124 if [ -d library -a -d include -a -d tests ]; then :; else
138 # Files clobbered by config.py
140 # Files clobbered by in-tree cmake
149 # Seed value used with the --release-test option.
151 # See also RELEASE_SEED in basic-build-test.sh. Debugging is easier if
154 # basic-build-test.sh as well.
158 … : ${MBEDTLS_TEST_PLATFORM="$(uname -s | tr -c \\n0-9A-Za-z _)-$(uname -m | tr -c \\n0-9A-Za-z _)"}
166 : ${GNUTLS_CLI:="gnutls-cli"}
167 : ${GNUTLS_SERV:="gnutls-serv"}
173 : ${ARM_NONE_EABI_GCC_PREFIX:=arm-none-eabi-}
174 : ${ARM_LINUX_GNUEABI_GCC_PREFIX:=arm-linux-gnueabi-}
176 # if MAKEFLAGS is not set add the -j option to speed up invocations of make
177 if [ -z "${MAKEFLAGS+set}" ]; then
178 export MAKEFLAGS="-j$(all_sh_nproc)"
185 ASAN_CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all'
191 ALL_COMPONENTS=$(sed -n 's/^ *component_\([0-9A-Z_a-z]*\) *().*/\1/p' <"$0")
209 set -f
229 $0 --no-armcc --except test_memsan
233 -h|--help Print this help and exit.
234 --list-all-components List all available test components and exit.
235 --list-components List components supported on this platform and exit.
238 -q|--quiet Only output component names, and errors if any.
239 -f|--force Force the tests to overwrite any modified files.
240 -k|--keep-going Run all tests and report errors at the end.
241 -m|--memory Additional optional memory tests.
242 --append-outcome Append to the outcome file (if used).
243 --arm-none-eabi-gcc-prefix=<string>
244 Prefix for a cross-compiler for arm-none-eabi
246 --arm-linux-gnueabi-gcc-prefix=<string>
247 Prefix for a cross-compiler for arm-linux-gnueabi
249 --armcc Run ARM Compiler builds (on by default).
250 --restore First clean up the build tree, restoring backed up
253 --error-test Error test mode: run a failing function in addition
255 --except Exclude the COMPONENTs listed on the command line,
257 --no-append-outcome Write a new outcome file and analyze it (default).
258 --no-armcc Skip ARM Compiler builds.
259 --no-force Refuse to overwrite modified files (default).
260 --no-keep-going Stop at the first error (default).
261 --no-memory No additional memory tests (default).
262 --no-quiet Print full ouput from components.
263 --out-of-source-dir=<path> Directory used for CMake out-of-source build tests.
264 --outcome-file=<path> File where test outcomes are written (not done if
266 --random-seed Use a random seed value for randomized tests (default).
267-r|--release-test Run this script in release mode. This fixes the seed value to ${RELEASE_SEED…
268 -s|--seed Integer seed value to use for this test run.
271 --armc5-bin-dir=<ARMC5_bin_dir_path> ARM Compiler 5 bin directory.
272 --armc6-bin-dir=<ARMC6_bin_dir_path> ARM Compiler 6 bin directory.
273 --gnutls-cli=<GnuTLS_cli_path> GnuTLS client executable to use for most tests.
274 --gnutls-serv=<GnuTLS_serv_path> GnuTLS server executable to use for most tests.
275 --gnutls-legacy-cli=<GnuTLS_cli_path> GnuTLS client executable to use for legacy tests.
276 --gnutls-legacy-serv=<GnuTLS_serv_path> GnuTLS server executable to use for legacy tests.
277 --openssl=<OpenSSL_path> OpenSSL executable to use for most tests.
278 --openssl-legacy=<OpenSSL_path> OpenSSL executable to use for legacy tests..
279--openssl-next=<OpenSSL_path> OpenSSL executable to use for recent things like ARIA
284 # Remove built files as well as the cmake cache/config.
291 find . -name .git -prune -o \
292 -iname CMakeFiles -exec rm -rf {} \+ -o \
293 \( -iname cmake_install.cmake -o \
294 -iname CTestTestfile.cmake -o \
295 -iname CMakeCache.txt -o \
296 -path './cmake/*.cmake' \) -exec rm -f {} \+
297 # Recover files overwritten by in-tree CMake builds
298 rm -f include/Makefile include/mbedtls/Makefile programs/*/Makefile
301 rm -rf programs/test/cmake_subproject/build
302 rm -f programs/test/cmake_subproject/Makefile
303 rm -f programs/test/cmake_subproject/cmake_subproject
306 rm -rf programs/test/cmake_package/build
307 rm -f programs/test/cmake_package/Makefile
308 rm -f programs/test/cmake_package/cmake_package
311 rm -rf programs/test/cmake_package_install/build
312 rm -f programs/test/cmake_package_install/Makefile
313 rm -f programs/test/cmake_package_install/cmake_package_install
317 cp -p "$x$backup_suffix" "$x"
322 # in non-keep-going mode).
327 rm -f "$x$backup_suffix"
339 trap - $1
340 kill -$1 $$
353 sysctl -n hw.ncpuonline || # NetBSD, OpenBSD
354 sysctl -n hw.ncpu || # FreeBSD
361 if [ -n "${current_component:-}" ]; then
367 if [ $QUIET -eq 1 ]; then
384 WARNING_CFLAGS='-xc -std=c99' make lib
387 "$ARMC6_FROMELF" -z library/*.o
417 while [ $# -gt 0 ]; do
419 --append-outcome) append_outcome=1;;
420 --arm-none-eabi-gcc-prefix) shift; ARM_NONE_EABI_GCC_PREFIX="$1";;
421 --arm-linux-gnueabi-gcc-prefix) shift; ARM_LINUX_GNUEABI_GCC_PREFIX="$1";;
422 --armcc) no_armcc=;;
423 --armc5-bin-dir) shift; ARMC5_BIN_DIR="$1";;
424 --armc6-bin-dir) shift; ARMC6_BIN_DIR="$1";;
425 --error-test) error_test=$((error_test + 1));;
426 --except) all_except=1;;
427 --force|-f) FORCE=1;;
428 --gnutls-cli) shift; GNUTLS_CLI="$1";;
429 --gnutls-legacy-cli) shift; GNUTLS_LEGACY_CLI="$1";;
430 --gnutls-legacy-serv) shift; GNUTLS_LEGACY_SERV="$1";;
431 --gnutls-serv) shift; GNUTLS_SERV="$1";;
432 --help|-h) usage; exit;;
433 --keep-going|-k) KEEP_GOING=1;;
434 --list-all-components) printf '%s\n' $ALL_COMPONENTS; exit;;
435 --list-components) printf '%s\n' $SUPPORTED_COMPONENTS; exit;;
436 --memory|-m) MEMORY=1;;
437 --no-append-outcome) append_outcome=0;;
438 --no-armcc) no_armcc=1;;
439 --no-force) FORCE=0;;
440 --no-keep-going) KEEP_GOING=0;;
441 --no-memory) MEMORY=0;;
442 --no-quiet) QUIET=0;;
443 --openssl) shift; OPENSSL="$1";;
444 --openssl-legacy) shift; OPENSSL_LEGACY="$1";;
445 --openssl-next) shift; OPENSSL_NEXT="$1";;
446 --outcome-file) shift; MBEDTLS_TEST_OUTCOME_FILE="$1";;
447 --out-of-source-dir) shift; OUT_OF_SOURCE_DIR="$1";;
448 --quiet|-q) QUIET=1;;
449 --random-seed) unset SEED;;
450 --release-test|-r) SEED=$RELEASE_SEED;;
451 --restore) restore_first=1;;
452 --seed|-s) shift; SEED="$1";;
453 -*)
455 echo >&2 "Run $0 --help for usage."
464 if [ -z "$COMMAND_LINE_COMPONENTS" ] && [ $restore_first -eq 0 ]; then
468 # --no-armcc is a legacy option. The modern way is --except '*_armcc*'.
470 if [ -n "$no_armcc" ] && [ $all_except -eq 1 ]; then
475 if [ $all_except -eq 0 ]; then
479 set -f
495 if [ $unsupported -ne 0 ]; then
503 if is_component_included "$component"; [ $? -eq $all_except ]; then
513 if [ $FORCE -eq 1 ]; then
514 rm -rf "$OUT_OF_SOURCE_DIR"
515 git checkout-index -f -q $CONFIG_H
519 if [ -d "$OUT_OF_SOURCE_DIR" ]; then
520 echo "Warning - there is an existing directory at '$OUT_OF_SOURCE_DIR'" >&2
522 echo "the script as: $0 --force --out-of-source-dir $OUT_OF_SOURCE_DIR"
526 if ! git diff --quiet include/mbedtls/mbedtls_config.h; then
527 … err_msg "Warning - the configuration file 'include/mbedtls/mbedtls_config.h' has been edited. "
529 echo "script as: $0 --force"
541 case "$(head -n1 Makefile)" in
543 …git update-index --no-skip-worktree Makefile library/Makefile programs/Makefile tests/Makefile pro…
544 … git checkout -- Makefile library/Makefile programs/Makefile tests/Makefile programs/fuzz/Makefile
551 cp -p "$x" "$x$backup_suffix"
567 if [ -t 1 ]; then
568 case "${TERM:-}" in
577 failure_summary_file=$PWD/all-sh-failures-$$.log
593 *make*[\ /]tests*) false;; # make tests, make CFLAGS=-I../tests, ...
610 failed_command=${report_failed_command-$BASH_COMMAND}
612 if [[ $last_failure_status -eq $previous_failure_status &&
614 ${#FUNCNAME[@]} == $((previous_failure_funcall_depth - 1)) ]]
627 text="$current_section: $failed_command -> $last_failure_status"
640 if [ $failure_count -gt 0 ]; then
646 elif [ -z "${1-}" ]; then
649 if [ -n "${1-}" ]; then
652 rm -f "$failure_summary_file"
653 if [ $failure_count -gt 0 ]; then
682 if [ -n "$MBEDTLS_TEST_OUTCOME_FILE" ] && [ "$append_outcome" -eq 0 ]; then
683 rm -f "$MBEDTLS_TEST_OUTCOME_FILE"
688 if [ $QUIET -eq 1 ]; then
695 echo "MBEDTLS_TEST_OUTCOME_FILE: ${MBEDTLS_TEST_OUTCOME_FILE:-(none)}"
696 echo "SEED: ${SEED-"UNSET"}"
720 # and ssl-opt.sh, we just export the variables they require.
724 # Avoid passing --seed flag in every call to ssl-opt.sh
725 if [ -n "${SEED-}" ]; then
747 *_mingw[_\ ]*) check_tools "i686-w64-mingw32-gcc";;
767 if [ $QUIET -eq 1 ]; then
784 if [ $QUIET -eq 1 ]; then
814 msg "Check: check-generated-files, files generated with make" # 2s
816 tests/scripts/check-generated-files.sh
818 msg "Check: check-generated-files -u, files present" # 2s
819 tests/scripts/check-generated-files.sh -u
821 tests/scripts/check-generated-files.sh
823 msg "Check: check-generated-files -u, files absent" # 2s
825 tests/scripts/check-generated-files.sh -u
827 tests/scripts/check-generated-files.sh
835 tests/scripts/check-doxy-blocks.pl
845 rm -f ChangeLog.new
846 scripts/assemble_changelog.py -o ChangeLog.new
847 if [ -e ChangeLog.new ]; then
849 # non-empty.
850 diff -u ChangeLog ChangeLog.new || true
857 tests/scripts/check_names.py -v
862 if [ $QUIET -eq 1 ]; then
863 opt='--quiet'
883 msg "build: make, default config (out-of-box)" # ~1min
889 msg "test: main suites make, default config (out-of-box)" # ~10s
892 msg "selftest: make, default config (out-of-box)" # ~10s
901 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
910 msg "test: ssl-opt.sh (ASan build)" # ~ 1 min
911 tests/ssl-opt.sh
916 msg "test: context-info.sh (ASan build)" # ~ 15 sec
917 tests/context-info.sh
921 msg "build: full config, cmake, gcc, ASan"
922 scripts/config.py full
923 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
926 msg "test: main suites (inc. selftests) (full config, ASan build)"
932 msg "test: ssl-opt.sh (full config, ASan build)"
933 tests/ssl-opt.sh
935 msg "test: compat.sh (full config, ASan build)"
938 msg "test: context-info.sh (full config, ASan build)" # ~ 15 sec
939 tests/context-info.sh
943 msg "build: full config - USE_PSA_CRYPTO + PSA_CRYPTO_KEY_ID_ENCODES_OWNER, cmake, gcc, ASan"
944 scripts/config.py full
945 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
946 scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
947 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
950 msg "test: full config - USE_PSA_CRYPTO + PSA_CRYPTO_KEY_ID_ENCODES_OWNER, cmake, gcc, ASan"
959 grep -x -F "$(sed -n 's/^ *# *define *\([A-Z_a-z][0-9A-Z_a-z]*\)..*/\1/p' "$1")"
963 …msg "build: full config - USE_PSA_CRYPTO + PSA_CRYPTO_KEY_ID_ENCODES_OWNER + PSA_CRYPTO_SPM, make,…
964 scripts/config.py full
965 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
966 scripts/config.py unset MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
967 scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER
968 scripts/config.py set MBEDTLS_PSA_CRYPTO_SPM
972 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/spe' lib
974 # Check that if a symbol is renamed by crypto_spe.h, the non-renamed
981 msg "build: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make"
982 scripts/config.py unset MBEDTLS_PSA_CRYPTO_C
983 scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C
984 scripts/config.py set MBEDTLS_PSA_CRYPTO_CLIENT
987 msg "test: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make"
992 msg "build: default config minus MBEDTLS_GENPRIME"
993 scripts/config.py unset MBEDTLS_GENPRIME
996 msg "test: default config minus MBEDTLS_GENPRIME"
1001 msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s
1002 # test-ref-configs works by overwriting mbedtls_config.h; this makes cmake
1003 # want to re-generate generated files that depend on it, quite correctly.
1006 # cmake can't know this, but re-generation is actually not necessary as
1008 # whether they're on or off. So, disable cmake's (over-sensitive here)
1011 CC=gcc cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan .
1012 tests/scripts/test-ref-configs.pl
1017 scripts/config.py unset MBEDTLS_SSL_RENEGOTIATION
1018 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1021 msg "test: !MBEDTLS_SSL_RENEGOTIATION - main suites (inc. selftests) (ASan build)" # ~ 50s
1024 msg "test: !MBEDTLS_SSL_RENEGOTIATION - ssl-opt.sh (ASan build)" # ~ 6 min
1025 tests/ssl-opt.sh
1030 scripts/config.py unset MBEDTLS_PEM_PARSE_C
1031 scripts/config.py unset MBEDTLS_FS_IO
1032 scripts/config.py unset MBEDTLS_PSA_ITS_FILE_C # requires a filesystem
1033 scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C # requires PSA ITS
1034 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1037 …msg "test: !MBEDTLS_PEM_PARSE_C !MBEDTLS_FS_IO - main suites (inc. selftests) (ASan build)" # ~ 50s
1040 msg "test: !MBEDTLS_PEM_PARSE_C !MBEDTLS_FS_IO - ssl-opt.sh (ASan build)" # ~ 6 min
1041 tests/ssl-opt.sh
1046 scripts/config.py set MBEDTLS_RSA_NO_CRT
1047 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1050 msg "test: RSA_NO_CRT - main suites (inc. selftests) (ASan build)" # ~ 50s
1053 msg "test: RSA_NO_CRT - RSA-related part of ssl-opt.sh (ASan build)" # ~ 5s
1054 tests/ssl-opt.sh -f RSA
1056 msg "test: RSA_NO_CRT - RSA-related part of compat.sh (ASan build)" # ~ 3 min
1057 tests/compat.sh -t RSA
1059 msg "test: RSA_NO_CRT - RSA-related part of context-info.sh (ASan build)" # ~ 15 sec
1060 tests/context-info.sh
1065 scripts/config.py full
1066 scripts/config.py unset MBEDTLS_CTR_DRBG_C
1067 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1069 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1072 msg "test: Full minus CTR_DRBG, classic crypto - main suites"
1078 msg "test: Full minus CTR_DRBG, classic crypto - ssl-opt.sh (subset)"
1079 tests/ssl-opt.sh -f 'Default\|SSL async private.*delay=\|tickets enabled on server'
1081 msg "test: Full minus CTR_DRBG, classic crypto - compat.sh (subset)"
1082 tests/compat.sh -m tls12 -t 'ECDSA PSK' -V NO -p OpenSSL
1087 scripts/config.py full
1088 scripts/config.py unset MBEDTLS_CTR_DRBG_C
1089 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1091 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1094 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - main suites"
1100 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - ssl-opt.sh (subset)"
1101 tests/ssl-opt.sh -f 'Default\|SSL async private.*delay=\|tickets enabled on server'
1103 msg "test: Full minus CTR_DRBG, USE_PSA_CRYPTO - compat.sh (subset)"
1104 tests/compat.sh -m tls12 -t 'ECDSA PSK' -V NO -p OpenSSL
1109 scripts/config.py full
1110 scripts/config.py unset MBEDTLS_HMAC_DRBG_C
1111 scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC # requires HMAC_DRBG
1112 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1114 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1117 msg "test: Full minus HMAC_DRBG, classic crypto - main suites"
1123 # Test SSL with non-deterministic ECDSA. Only test features that
1125 msg "test: Full minus HMAC_DRBG, classic crypto - ssl-opt.sh (subset)"
1126 tests/ssl-opt.sh -f 'Default\|SSL async private: sign'
1130 msg "test: Full minus HMAC_DRBG, classic crypto - compat.sh (ECDSA)"
1131 tests/compat.sh -m tls12 -t 'ECDSA'
1136 scripts/config.py full
1137 scripts/config.py unset MBEDTLS_HMAC_DRBG_C
1138 scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC # requires HMAC_DRBG
1139 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1141 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1144 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - main suites"
1150 # Test SSL with non-deterministic ECDSA. Only test features that
1152 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - ssl-opt.sh (subset)"
1153 tests/ssl-opt.sh -f 'Default\|SSL async private: sign'
1157 msg "test: Full minus HMAC_DRBG, USE_PSA_CRYPTO - compat.sh (ECDSA)"
1158 tests/compat.sh -m tls12 -t 'ECDSA'
1163 scripts/config.py full
1164 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1165 scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
1166 scripts/config.py unset MBEDTLS_ENTROPY_C
1167 scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
1168 scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT
1169 scripts/config.py unset MBEDTLS_CTR_DRBG_C
1170 scripts/config.py unset MBEDTLS_HMAC_DRBG_C
1171 scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC # requires HMAC_DRBG
1174 # make them use the PSA RNG with -DMBEDTLS_TEST_USE_PSA_CRYPTO_RNG.
1175 make CFLAGS="$ASAN_CFLAGS -O2 -DMBEDTLS_TEST_USE_PSA_CRYPTO_RNG" LDFLAGS="$ASAN_CFLAGS"
1177 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, classic crypto - main suites"
1180 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, classic crypto - ssl-opt.sh (subset)"
1181 tests/ssl-opt.sh -f 'Default'
1186 scripts/config.py full
1187 scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
1188 scripts/config.py unset MBEDTLS_ENTROPY_C
1189 scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
1190 scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT
1191 scripts/config.py unset MBEDTLS_CTR_DRBG_C
1192 scripts/config.py unset MBEDTLS_HMAC_DRBG_C
1193 scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC # requires HMAC_DRBG
1194 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1196 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - main suites"
1199 msg "test: PSA_CRYPTO_EXTERNAL_RNG minus *_DRBG, PSA crypto - ssl-opt.sh (subset)"
1200 tests/ssl-opt.sh -f 'Default\|opaque'
1205 scripts/config.py full
1206 scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
1207 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1208 scripts/config.py unset MBEDTLS_CTR_DRBG_C
1209 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1215 tests/ssl-opt.sh -f 'Default\|opaque'
1220 scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
1221 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Asan .
1224 msg "test: Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
1227 msg "test: Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
1228 tests/ssl-opt.sh -f ECDH
1230 msg "test: Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 min
1232 tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA\|DES'
1237 scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
1238 scripts/config.py unset MBEDTLS_ECDSA_C
1239 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
1240 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
1241 scripts/config.py unset MBEDTLS_ECJPAKE_C
1243 for c in $(sed -n 's/#define \(MBEDTLS_ECP_DP_[0-9A-Z_a-z]*_ENABLED\).*/\1/p' <"$CONFIG_H"); do
1244 scripts/config.py unset "$c"
1246 scripts/config.py set MBEDTLS_ECP_DP_CURVE25519_ENABLED
1248 make CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1256 scripts/config.py set MBEDTLS_SSL_IN_CONTENT_LEN 16384
1257 scripts/config.py set MBEDTLS_SSL_OUT_CONTENT_LEN 4096
1258 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1261 msg "test: small SSL_OUT_CONTENT_LEN - ssl-opt.sh MFL and large packet tests"
1262 tests/ssl-opt.sh -f "Max fragment\|Large packet"
1267 scripts/config.py set MBEDTLS_SSL_IN_CONTENT_LEN 4096
1268 scripts/config.py set MBEDTLS_SSL_OUT_CONTENT_LEN 16384
1269 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1272 msg "test: small SSL_IN_CONTENT_LEN - ssl-opt.sh MFL tests"
1273 tests/ssl-opt.sh -f "Max fragment"
1278 scripts/config.py set MBEDTLS_SSL_DTLS_MAX_BUFFERING 1000
1279 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1282 msg "test: small MBEDTLS_SSL_DTLS_MAX_BUFFERING #0 - ssl-opt.sh specific reordering test"
1283 …tests/ssl-opt.sh -f "DTLS reordering: Buffer out-of-order hs msg before reassembling next, free bu…
1288 scripts/config.py set MBEDTLS_SSL_DTLS_MAX_BUFFERING 190
1289 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1292 msg "test: small MBEDTLS_SSL_DTLS_MAX_BUFFERING #1 - ssl-opt.sh specific reordering test"
1293 …tests/ssl-opt.sh -f "DTLS reordering: Buffer encrypted Finished message, drop for fragmented NewSe…
1298 scripts/config.py full
1301 grep -q '^0:psa_crypto_init:' tests/statuses.log
1302 rm -f tests/statuses.log
1306 msg "build: cmake, full config, clang" # ~ 50s
1307 scripts/config.py full
1308 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On .
1311 msg "test: main suites (full config, clang)" # ~ 5s
1314 msg "test: psa_constant_names (full config, clang)" # ~ 1s
1317 msg "test: ssl-opt.sh default, ECJPAKE, SSL async (full config)" # ~ 1s
1318 tests/ssl-opt.sh -f 'Default\|ECJPAKE\|SSL async private'
1320 msg "test: compat.sh DES, 3DES & NULL (full config)" # ~ 2 min
1321 …S_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '^$' -f 'NULL\|DES'
1324 env OPENSSL_CMD="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA'
1330 # - unset MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN - does the failure persist?
1331 # - or alternatively, change the build type to MemSanDbg, which enables
1334 msg "build: cmake MSan (clang), full config with constant flow testing"
1335 scripts/config.py full
1336 scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN
1337 scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
1338 CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
1347 # (heap buffer overflows, use of uninitialized memory, use-after-free,
1351 # - unset MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND - does the failure persist?
1352 # - or alternatively, build with debug info and manually run the offending
1353 # test suite with valgrind --track-origins=yes, then check if the origin
1355 msg "build: cmake release GCC, full config with constant flow testing"
1356 scripts/config.py full
1357 scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND
1358 cmake -D CMAKE_BUILD_TYPE:String=Release .
1371 scripts/config.py set MBEDTLS_DEPRECATED_REMOVED
1372 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1379 msg "build: make, full_no_deprecated config" # ~ 30s
1380 scripts/config.py full_no_deprecated
1381 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1383 msg "test: make, full_no_deprecated config" # ~ 5s
1391 msg "build: make, full_no_deprecated config, MBEDTLS_DEPRECATED_WARNING" # ~ 30s
1392 scripts/config.py full_no_deprecated
1393 scripts/config.py unset MBEDTLS_DEPRECATED_REMOVED
1394 scripts/config.py set MBEDTLS_DEPRECATED_WARNING
1395 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra'
1397 msg "test: make, full_no_deprecated config, MBEDTLS_DEPRECATED_WARNING" # ~ 5s
1404 msg "build: make, full config + MBEDTLS_DEPRECATED_WARNING, expect warnings" # ~ 30s
1405 scripts/config.py full
1406 scripts/config.py set MBEDTLS_DEPRECATED_WARNING
1408 make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=cpp' lib programs
1410 msg "build: make tests, full config + MBEDTLS_DEPRECATED_WARNING, expect warnings" # ~ 30s
1415 …make CC=gcc CFLAGS='-O -Werror -Wall -Wextra -Wno-error=deprecated-declarations -Wno-error=cpp -DM…
1417 msg "test: full config + MBEDTLS_TEST_DEPRECATED" # ~ 30s
1424 ! nm "$@" 2>/dev/null | grep -v ':$' | grep .
1429 scripts/config.py crypto
1430 make CFLAGS='-O1 -Werror'
1435 msg "build: make, crypto only, full config"
1436 scripts/config.py crypto_full
1437 make CFLAGS='-O1 -Werror'
1442 msg "build: make, crypto only, baremetal config"
1443 scripts/config.py crypto_baremetal
1444 make CFLAGS='-O1 -Werror'
1455 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1460 msg "test/build: depends-hashes.pl (gcc)" # ~ 2 min
1461 tests/scripts/depends-hashes.pl
1465 msg "test/build: depends-hashes.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)"
1466 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1467 tests/scripts/depends-hashes.pl
1471 msg "test/build: depends-pkalgs.pl (gcc)" # ~ 2 min
1472 tests/scripts/depends-pkalgs.pl
1476 msg "test/build: depends-pkalgs.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)"
1477 scripts/config.py set MBEDTLS_USE_PSA_CRYPTO
1478 tests/scripts/depends-pkalgs.pl
1482 msg "test/build: key-exchanges (gcc)" # ~ 1 min
1483 tests/scripts/key-exchanges.pl
1488 scripts/config.py full
1497 scripts/config.py full
1500 scripts/config.py unset MBEDTLS_AESNI_C
1501 scripts/config.py unset MBEDTLS_PADLOCK_C
1503 scripts/config.py unset MBEDTLS_THREADING_PTHREAD
1506 scripts/config.py unset MBEDTLS_PK_PARSE_EC_EXTENDED
1509 scripts/config.py set-all 'MBEDTLS_([A-Z0-9]*|NIST_KW)_ALT'
1510 scripts/config.py unset MBEDTLS_DHM_ALT #incompatible with MBEDTLS_DEBUG_C
1513 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib
1518 scripts/config.py full
1519 scripts/config.py set MBEDTLS_DHM_ALT
1521 scripts/config.py unset MBEDTLS_DEBUG_C
1524 make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib
1528 # full minus MBEDTLS_USE_PSA_CRYPTO: run the same set of tests as basic-build-test.sh
1529 msg "build: cmake, full config minus MBEDTLS_USE_PSA_CRYPTO, ASan"
1530 scripts/config.py full
1531 scripts/config.py set MBEDTLS_ECP_RESTARTABLE # not using PSA, so enable restartable ECC
1532 scripts/config.py unset MBEDTLS_PSA_CRYPTO_C
1533 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1534 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3
1535 scripts/config.py unset MBEDTLS_PSA_ITS_FILE_C
1536 scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C
1537 scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C
1538 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
1544 msg "test: ssl-opt.sh (full minus MBEDTLS_USE_PSA_CRYPTO)"
1545 tests/ssl-opt.sh
1551 …TLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '3DES\|DES-CBC3' -f 'NULL\|DE…
1554 env OPENSSL_CMD="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA'
1562 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
1563 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
1566 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C
1567 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C
1570 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
1571 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
1574 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C
1575 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C
1577 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1578 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1579 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1580 scripts/config.py unset MBEDTLS_ECDSA_C
1581 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
1582 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
1584 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
1585 …"$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIB…
1601 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
1602 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
1609 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
1610 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
1614 # - the test library can compute the RSA signatures even in the case of a
1617 # - the dependency of RSA signature tests on PSA_WANT_ALG_SHA_xyz is
1620 # - when testing a signature key with an algorithm wildcard built from
1624 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1625 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160_C
1627 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA1_C
1628 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C
1631 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_PEM_PARSE_C
1632 scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_BASE64_C
1635 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
1636 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
1639 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA1_C
1640 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C
1641 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_PEM_PARSE_C
1642 scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_BASE64_C
1646 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1647 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1650 scripts/config.py unset MBEDTLS_PKCS1_V15
1651 scripts/config.py unset MBEDTLS_PKCS1_V21
1652 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
1653 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
1654 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
1655 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
1656 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
1657 scripts/config.py unset MBEDTLS_RSA_C
1658 scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT
1660 scripts/config.py unset MBEDTLS_MD5_C
1661 scripts/config.py unset MBEDTLS_RIPEMD160_C
1662 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1
1663 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_1
1664 scripts/config.py unset MBEDTLS_SSL_CBC_RECORD_SPLITTING
1666 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
1667 …S="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBT…
1684 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
1685 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
1688 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
1689 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
1691 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1692 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1693 scripts/config.py unset MBEDTLS_MD5_C
1694 scripts/config.py unset MBEDTLS_RIPEMD160_C
1695 scripts/config.py unset MBEDTLS_SHA1_C
1697 scripts/config.py unset MBEDTLS_SHA384_C
1698 scripts/config.py unset MBEDTLS_SHA512_C
1700 scripts/config.py unset MBEDTLS_SSL_PROTO_SSL3
1701 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1
1702 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_1
1704 scripts/config.py unset MBEDTLS_SSL_CBC_RECORD_SPLITTING
1705 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
1706 …S="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBT…
1722 …loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g'…
1723 make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS"
1725 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1726 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1733 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER
1734 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING
1735 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_CMAC
1737 scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC
1738 scripts/config.py unset MBEDTLS_CIPHER_PADDING_PKCS7
1739 scripts/config.py unset MBEDTLS_CIPHER_MODE_CTR
1740 scripts/config.py unset MBEDTLS_CIPHER_MODE_CFB
1741 scripts/config.py unset MBEDTLS_CIPHER_MODE_OFB
1742 scripts/config.py unset MBEDTLS_CIPHER_MODE_XTS
1743 scripts/config.py unset MBEDTLS_DES_C
1745 …loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&…
1746 …S="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBT…
1760 scripts/config.py full
1761 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1762 scripts/config.py unset MBEDTLS_PSA_CRYPTO_DRIVERS
1763 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1764 make CC=gcc CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1773 scripts/config.py full
1774 scripts/config.py unset MBEDTLS_CHACHAPOLY_C
1775 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_GCM
1776 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_CHACHA20_POLY1305
1777 make CC=gcc CFLAGS="$ASAN_CFLAGS -O2" LDFLAGS="$ASAN_CFLAGS"
1790 scripts/config.py full
1791 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1792 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1793 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1794 scripts/config.py unset MBEDTLS_ECDSA_C
1795 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
1796 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
1798 …GS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_ECDSA -DMBEDTLS_PSA_ACCEL_ALG_DE…
1806 scripts/config.py full
1807 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1808 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1809 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1810 scripts/config.py unset MBEDTLS_ECDH_C
1811 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
1812 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
1813 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
1814 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
1815 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
1817 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_ECDH -I../tests/…
1824 scripts/config.py full
1825 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1826 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1827 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1828 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_KEY_PAIR 1
1829 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
1831 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAI…
1838 scripts/config.py full
1839 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1840 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1841 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1842 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY 1
1843 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_KEY_TYPE_ECC_KEY_PAIR
1845 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_K…
1852 scripts/config.py full
1853 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1854 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1855 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1857 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_HMAC -I../tests/…
1865 scripts/config.py full
1866 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1867 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1868 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1869 scripts/config.py unset MBEDTLS_HKDF_C
1871 scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3
1873 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_HKDF -I../tests/…
1879 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_MD5 - other hashes"
1880 scripts/config.py full
1881 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1882 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1883 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1884 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1885 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1886 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1887 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
1888 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1889 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
1891 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/i…
1897 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_RIPEMD160 - other hashes"
1898 scripts/config.py full
1899 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1900 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1901 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1902 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1903 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1904 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1905 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
1906 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1907 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
1909 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../t…
1915 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_1 - other hashes"
1916 scripts/config.py full
1917 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1918 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1919 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1920 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1921 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1922 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1923 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
1924 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1925 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
1927 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests…
1933 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_224 - other hashes"
1934 scripts/config.py full
1935 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1936 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1937 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1938 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1939 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1940 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1941 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1942 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
1944 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_224 -I../tes…
1950 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_256 - other hashes"
1951 scripts/config.py full
1952 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1953 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1954 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1955 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1956 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1957 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1958 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1959 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1960 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512
1962 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_256 -I../tes…
1968 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_384 - other hashes"
1969 scripts/config.py full
1970 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1971 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1972 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1973 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1974 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1975 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1976 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1977 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
1979 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tes…
1985 msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_SHA_512 - other hashes"
1986 scripts/config.py full
1987 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
1988 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
1989 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
1990 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_MD5
1991 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160
1992 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_1
1993 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224
1994 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256
1995 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384
1997 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tes…
2004 scripts/config.py full
2005 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2006 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2007 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2008 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PKCS1V15_CRYPT 1
2009 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
2010 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
2011 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
2013 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_CRYP…
2020 scripts/config.py full
2021 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2022 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2023 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2024 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PKCS1V15_SIGN 1
2025 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
2026 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
2027 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
2029 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIG…
2036 scripts/config.py full
2037 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2038 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2039 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2040 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_OAEP 1
2041 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
2042 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
2043 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PSS
2045 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_OAEP -I../te…
2052 scripts/config.py full
2053 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2054 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2055 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2056 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
2057 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
2058 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_PKCS1V15_SIGN
2059 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RSA_OAEP
2061 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RSA_PSS -I../tes…
2068 scripts/config.py full
2069 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2070 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2071 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2072 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
2073 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_RSA_KEY_PAIR 1
2075 …make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAI…
2082 scripts/config.py full
2083 scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG
2084 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2085 scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO
2086 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_ALG_RSA_PSS 1
2087 scripts/config.py -f include/psa/crypto_config.h set PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY 1
2089 …ake CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_K…
2096 msg "build: full config except platform/fsio/net, make, gcc, C99" # ~ 30s
2097 scripts/config.py full
2098 scripts/config.py unset MBEDTLS_PLATFORM_C
2099 scripts/config.py unset MBEDTLS_NET_C
2100 scripts/config.py unset MBEDTLS_PLATFORM_MEMORY
2101 scripts/config.py unset MBEDTLS_PLATFORM_PRINTF_ALT
2102 scripts/config.py unset MBEDTLS_PLATFORM_FPRINTF_ALT
2103 scripts/config.py unset MBEDTLS_PLATFORM_SNPRINTF_ALT
2104 scripts/config.py unset MBEDTLS_PLATFORM_TIME_ALT
2105 scripts/config.py unset MBEDTLS_PLATFORM_EXIT_ALT
2106 scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT
2107 scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
2108 scripts/config.py unset MBEDTLS_FS_IO
2109 scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C
2110 scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C
2111 scripts/config.py unset MBEDTLS_PSA_ITS_FILE_C
2113 # to re-enable platform integration features otherwise disabled in C99 builds
2114 make CC=gcc CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic -Os -D_DEFAULT_SOURCE' lib programs
2115 make CC=gcc CFLAGS='-Werror -Wall -Wextra -Os' test
2120 msg "build: full config with NO_STD_FUNCTION, make, gcc" # ~ 30s
2121 scripts/config.py full
2122 scripts/config.py set MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
2123 scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED
2124 scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT
2125 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Check .
2130 msg "build: full config except ssl_srv.c, make, gcc" # ~ 30s
2131 scripts/config.py full
2132 scripts/config.py unset MBEDTLS_SSL_SRV_C
2133 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1'
2137 msg "build: full config except ssl_cli.c, make, gcc" # ~ 30s
2138 scripts/config.py full
2139 scripts/config.py unset MBEDTLS_SSL_CLI_C
2140 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1'
2146 msg "build: full config except net_sockets.c, make, gcc -std=c99 -pedantic" # ~ 30s
2147 scripts/config.py full
2148 scripts/config.py unset MBEDTLS_NET_C # getaddrinfo() undeclared, etc.
2149 scripts/config.py set MBEDTLS_NO_PLATFORM_ENTROPY # uses syscall() on GNU/Linux
2150 make CC=gcc CFLAGS='-Werror -Wall -Wextra -O1 -std=c99 -pedantic' lib
2154 msg "build: default config with memory buffer allocator and backtrace enabled"
2155 scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
2156 scripts/config.py set MBEDTLS_PLATFORM_MEMORY
2157 scripts/config.py set MBEDTLS_MEMORY_BACKTRACE
2158 scripts/config.py set MBEDTLS_MEMORY_DEBUG
2159 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
2167 msg "build: default config with memory buffer allocator"
2168 scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
2169 scripts/config.py set MBEDTLS_PLATFORM_MEMORY
2170 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
2176 msg "test: ssl-opt.sh, MBEDTLS_MEMORY_BUFFER_ALLOC_C"
2178 tests/ssl-opt.sh -e '^DTLS proxy'
2183 msg "build: default config except MFL extension (ASan build)" # ~ 30s
2184 scripts/config.py unset MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
2185 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2188 msg "test: ssl-opt.sh, MFL-related tests"
2189 tests/ssl-opt.sh -f "Max fragment length"
2193 msg "build: default config with MBEDTLS_SSL_KEEP_PEER_CERTIFICATE disabled (ASan build)"
2194 scripts/config.py unset MBEDTLS_SSL_KEEP_PEER_CERTIFICATE
2195 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2201 msg "test: ssl-opt.sh, !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
2202 tests/ssl-opt.sh
2207 msg "test: context-info.sh, !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE"
2208 tests/context-info.sh
2213 scripts/config.py unset MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
2214 scripts/config.py set MBEDTLS_SSL_IN_CONTENT_LEN 16384
2215 scripts/config.py set MBEDTLS_SSL_OUT_CONTENT_LEN 4096
2216 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2220 tests/ssl-opt.sh -f "Max fragment length\|Large buffer"
2222 msg "test: context-info.sh (disabled MFL extension case)"
2223 tests/context-info.sh
2228 scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
2229 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2235 msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH enabled"
2236 tests/ssl-opt.sh
2244 scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
2245 scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID
2247 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2253 …msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabl…
2254 tests/ssl-opt.sh
2262 scripts/config.py unset MBEDTLS_DEBUG_C
2263 scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID
2273 msg "build: default config with memory buffer allocator and MFL extension"
2274 scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C
2275 scripts/config.py set MBEDTLS_PLATFORM_MEMORY
2276 scripts/config.py set MBEDTLS_MEMORY_DEBUG
2277 scripts/config.py set MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
2278 scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH
2279 CC=gcc cmake -DCMAKE_BUILD_TYPE:String=Release .
2286 tests/ssl-opt.sh -f "Handshake memory usage"
2291 scripts/config.py unset MBEDTLS_CIPHER_NULL_CIPHER
2292 scripts/config.py unset MBEDTLS_CIPHER_MODE_CBC
2293 scripts/config.py unset MBEDTLS_CMAC_C
2299 msg "test ssl-opt.sh: !MBEDTLS_SSL_SOME_MODES_USE_MAC"
2300 tests/ssl-opt.sh -f 'Default\|EtM' -e 'without EtM'
2304 msg "build: default config without MBEDTLS_HAVE_TIME_DATE"
2305 scripts/config.py unset MBEDTLS_HAVE_TIME_DATE
2306 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Check .
2309 msg "test: !MBEDTLS_HAVE_TIME_DATE - main suites"
2315 scripts/config.py set MBEDTLS_PLATFORM_MEMORY
2316 scripts/config.py set MBEDTLS_PLATFORM_CALLOC_MACRO calloc
2317 scripts/config.py set MBEDTLS_PLATFORM_FREE_MACRO free
2318 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2327 scripts/config.py full
2328 …make CC=gcc CFLAGS="'-DMBEDTLS_CONFIG_FILE=\"$PWD/tests/configs/config-wrapper-malloc-0-null.h\"' …
2338 msg "test ssl-opt.sh: malloc(0) returns NULL (ASan+UBSan build)"
2344 tests/ssl-opt.sh -e 'proxy'
2348 msg "build: default config with AES_FEWER_TABLES enabled"
2349 scripts/config.py set MBEDTLS_AES_FEWER_TABLES
2350 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
2357 msg "build: default config with AES_ROM_TABLES enabled"
2358 scripts/config.py set MBEDTLS_AES_ROM_TABLES
2359 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
2366 msg "build: default config with AES_ROM_TABLES and AES_FEWER_TABLES enabled"
2367 scripts/config.py set MBEDTLS_AES_FEWER_TABLES
2368 scripts/config.py set MBEDTLS_AES_ROM_TABLES
2369 make CC=gcc CFLAGS='-Werror -Wall -Wextra'
2377 scripts/config.py full
2378 scripts/config.py unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
2379 scripts/config.py set MBEDTLS_ENTROPY_FORCE_SHA256
2380 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2389 scripts/config.py full
2390 scripts/config.py unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
2391 scripts/config.py set MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
2392 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2401 scripts/config.py full
2402 scripts/config.py unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
2403 scripts/config.py set MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
2404 scripts/config.py set MBEDTLS_ENTROPY_FORCE_SHA256
2405 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2413 msg "build: default config + MBEDTLS_PSA_CRYPTO_SE_C"
2414 scripts/config.py set MBEDTLS_PSA_CRYPTO_SE_C
2415 make CC=clang CFLAGS="$ASAN_CFLAGS -Os" LDFLAGS="$ASAN_CFLAGS"
2417 msg "test: default config + MBEDTLS_PSA_CRYPTO_SE_C"
2423 scripts/config.py full
2424 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS
2425 scripts/config.py set MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
2426 loc_cflags="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST_ALL"
2427 …loc_cflags="${loc_cflags} '-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/user-config-for-test.h\"'"
2428 loc_cflags="${loc_cflags} -I../tests/include -O2"
2446 cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On .
2457 make CC="$cc" CFLAGS="$opt -std=c99 -pedantic -Wall -Wextra -Werror"
2460 # optimizations use inline assembly whereas runs with -O0
2468 scripts/config.py full
2469 test_build_opt 'full config' clang -O0 -Os -O2
2473 scripts/config.py full
2474 test_build_opt 'full config' gcc -O0 -Os -O2
2479 # Use the full config so as to catch a maximum of places where
2481 scripts/config.py full
2484 make CFLAGS="-I '$PWD' -DMBEDTLS_CONFIG_FILE='\"full_config.h\"'"
2485 rm -f full_config.h
2489 # Build without optimization, so as to use portable C code (in a 32-bit
2490 # build) and not the i386-specific inline assembly.
2491 msg "build: i386, make, gcc -O0 (ASan build)" # ~ 30s
2492 scripts/config.py full
2493 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O0" LDFLAGS="-m32 $ASAN_CFLAGS"
2495 msg "test: i386, make, gcc -O0 (ASan build)"
2499 case $(uname -m) in
2508 msg "build: i386, make, gcc -O2 (ASan build)" # ~ 30s
2509 scripts/config.py full
2510 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O2" LDFLAGS="-m32 $ASAN_CFLAGS"
2512 msg "test: i386, make, gcc -O2 (ASan build)"
2515 msg "test ssl-opt.sh, i386, make, gcc-O2"
2516 tests/ssl-opt.sh
2524 scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
2525 make CC=gcc CFLAGS="$ASAN_CFLAGS -m32 -O2" LDFLAGS="-m32 $ASAN_CFLAGS"
2527 msg "test: i386, Everest ECDH context - main suites (inc. selftests) (ASan build)" # ~ 50s
2530 msg "test: i386, Everest ECDH context - ECDH-related part of ssl-opt.sh (ASan build)" # ~ 5s
2531 tests/ssl-opt.sh -f ECDH
2533 …msg "test: i386, Everest ECDH context - compat.sh with some ECDH ciphersuites (ASan build)" # ~ 3 …
2535 tests/compat.sh -f ECDH -V NO -e 'ARIA\|CAMELLIA\|CHACHA\|DES'
2542 msg "build: 64-bit ILP32, make, gcc" # ~ 30s
2543 scripts/config.py full
2544 make CC=gcc CFLAGS='-Werror -Wall -Wextra -mx32' LDFLAGS='-mx32'
2546 msg "test: 64-bit ILP32, make, gcc"
2550 case $(uname -m) in
2558 scripts/config.py set MBEDTLS_MPI_WINDOW_SIZE 1
2559 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2562 msg "test: MBEDTLS_MPI_WINDOW_SIZE=1 - main suites (inc. selftests) (ASan build)" # ~ 10s
2567 msg "build: gcc, force 32-bit bignum limbs"
2568 scripts/config.py unset MBEDTLS_HAVE_ASM
2569 scripts/config.py unset MBEDTLS_AESNI_C
2570 scripts/config.py unset MBEDTLS_PADLOCK_C
2571 make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT32'
2573 msg "test: gcc, force 32-bit bignum limbs"
2578 msg "build: gcc, force 64-bit bignum limbs"
2579 scripts/config.py unset MBEDTLS_HAVE_ASM
2580 scripts/config.py unset MBEDTLS_AESNI_C
2581 scripts/config.py unset MBEDTLS_PADLOCK_C
2582 make CC=gcc CFLAGS='-Werror -Wall -Wextra -DMBEDTLS_HAVE_INT64'
2584 msg "test: gcc, force 64-bit bignum limbs"
2590 scripts/config.py full
2591 scripts/config.py set MBEDTLS_NO_UDBL_DIVISION
2592 make CFLAGS='-Werror -O1'
2600 scripts/config.py full
2601 scripts/config.py set MBEDTLS_NO_64BIT_MULTIPLICATION
2602 make CFLAGS='-Werror -O1'
2610 scripts/config.py full
2612 scripts/config.py unset MBEDTLS_DEBUG_C
2613 scripts/config.py unset MBEDTLS_ERROR_C
2614 scripts/config.py set MBEDTLS_ERROR_STRERROR_DUMMY
2615 scripts/config.py unset MBEDTLS_VERSION_FEATURES
2616 make CFLAGS='-Werror -Os'
2624 scripts/config.pl full
2625 scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
2626 scripts/config.pl set MBEDTLS_X509_REMOVE_INFO
2627 make CFLAGS='-Werror -O2'
2632 msg "test: ssl-opt.sh, full + MBEDTLS_X509_REMOVE_INFO" # ~ 1 min
2633 tests/ssl-opt.sh
2637 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1" # ~ 10s
2638 scripts/config.py baremetal
2639 …I_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -O1' lib
2641 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -O1"
2646 msg "build: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=arm5vte" # ~ 10s
2647 scripts/config.py baremetal
2652 # https://github.com/ARMmbed/mbedtls/pull/3449#issuecomment-675313720
2653 …c" AR="${ARM_LINUX_GNUEABI_GCC_PREFIX}ar" CFLAGS='-Werror -Wall -Wextra -march=armv5te -O1' LDFLAG…
2655 msg "size: ${ARM_LINUX_GNUEABI_GCC_PREFIX}gcc -march=armv5te -O1"
2663 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=arm5vte" # ~ 10s
2664 scripts/config.py baremetal
2667 # in case the gcc-arm-linux-gnueabi toolchain is not available
2668 …NONE_EABI_GCC_PREFIX}ar" CFLAGS='-std=c99 -Werror -Wall -Wextra -march=armv5te -O1' LDFLAGS='-marc…
2670 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -march=armv5te -O1"
2675 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus" # ~ 10s
2676 scripts/config.py baremetal
2677 …r" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra -mthumb -mcpu=cortex-
2679 msg "size: ${ARM_NONE_EABI_GCC_PREFIX}gcc -mthumb -mcpu=cortex-m0plus -Os"
2684 msg "build: ${ARM_NONE_EABI_GCC_PREFIX}gcc -DMBEDTLS_NO_UDBL_DIVISION, make" # ~ 10s
2685 scripts/config.py baremetal
2686 scripts/config.py set MBEDTLS_NO_UDBL_DIVISION
2687 …_EABI_GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -Wall -Wextra' lib
2688 echo "Checking that software 64-bit division is not required"
2694 scripts/config.py baremetal
2695 scripts/config.py set MBEDTLS_NO_64BIT_MULTIPLICATION
2696 …GCC_PREFIX}ar" LD="${ARM_NONE_EABI_GCC_PREFIX}ld" CFLAGS='-std=c99 -Werror -O1 -march=armv6-m -mth…
2697 echo "Checking that software 64-bit multiplication is not required"
2703 scripts/config.py baremetal
2704 make CC="$ARMC5_CC" AR="$ARMC5_AR" WARNING_CFLAGS='--strict --c99' lib
2707 "$ARMC5_FROMELF" -z library/*.o
2711 # ARM Compiler 6 - Target ARMv7-A
2712 armc6_build_test "--target=arm-arm-none-eabi -march=armv7-a"
2714 # ARM Compiler 6 - Target ARMv7-M
2715 armc6_build_test "--target=arm-arm-none-eabi -march=armv7-m"
2717 # ARM Compiler 6 - Target ARMv8-A - AArch32
2718 armc6_build_test "--target=arm-arm-none-eabi -march=armv8.2-a"
2720 # ARM Compiler 6 - Target ARMv8-M
2721 armc6_build_test "--target=arm-arm-none-eabi -march=armv8-m.main"
2723 # ARM Compiler 6 - Target ARMv8-A - AArch64
2724 armc6_build_test "--target=aarch64-arm-none-eabi -march=armv8.2-a"
2728 msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding"
2729 scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3
2730 scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
2731 scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1
2732 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2734 msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding"
2736 msg "ssl-opt.sh (TLS 1.3)"
2737 if_build_succeeded tests/ssl-opt.sh
2741 msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding"
2742 scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3
2743 scripts/config.py unset MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
2744 scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1
2745 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2747 msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding"
2749 msg "ssl-opt.sh (TLS 1.3 no compatibility mode)"
2750 if_build_succeeded tests/ssl-opt.sh
2754 msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding"
2755 scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3
2756 scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
2757 scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16
2758 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2760 msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding"
2762 msg "ssl-opt.sh (TLS 1.3 with padding)"
2763 if_build_succeeded tests/ssl-opt.sh
2767 msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable"
2768 scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3
2769 scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
2770 scripts/config.py set MBEDTLS_ECP_RESTARTABLE
2771 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2773 msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable"
2775 msg "ssl-opt.sh (TLS 1.3 with ecp_restartable)"
2776 if_build_succeeded tests/ssl-opt.sh
2780 msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest"
2781 scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3
2782 scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE
2783 scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED
2784 scripts/config.py unset MBEDTLS_ECP_RESTARTABLE
2785 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan .
2787 msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest"
2789 msg "ssl-opt.sh (TLS 1.3 with everest)"
2790 if_build_succeeded tests/ssl-opt.sh
2794 msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s
2795 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
2798 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror' WINDO…
2801 msg "build: Windows cross build - mingw64, make (DLL)" # ~ 30s
2802 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
2803 …make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall
2807 case $(i686-w64-mingw32-gcc -dumpversion) in
2808 [0-5]*) false;;
2815 scripts/config.py unset MBEDTLS_AESNI_C # memsan doesn't grok asm
2816 CC=clang cmake -D CMAKE_BUILD_TYPE:String=MemSan .
2822 msg "test: ssl-opt.sh (MSan)" # ~ 1 min
2823 tests/ssl-opt.sh
2827 if [ "$MEMORY" -gt 0 ]; then
2835 CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release .
2843 if [ "$MEMORY" -gt 0 ]; then
2844 msg "test: ssl-opt.sh --memcheck (Release)"
2845 tests/ssl-opt.sh --memcheck
2848 if [ "$MEMORY" -gt 1 ]; then
2849 msg "test: compat.sh --memcheck (Release)"
2850 tests/compat.sh --memcheck
2853 if [ "$MEMORY" -gt 0 ]; then
2854 msg "test: context-info.sh --memcheck (Release)"
2855 tests/context-info.sh --memcheck
2865 # Attempt to parse lsb-release to find out distribution and version. If not
2867 if [[ -f /etc/lsb-release ]]; then
2869 while read -r lsb_line; do
2874 done < /etc/lsb-release
2886 [ "$distrib_id" != "Ubuntu" ] || [ "$distrib_ver_major" -gt 16 ]
2890 msg "build: cmake 'out-of-source' build"
2894 cmake -D CMAKE_BUILD_TYPE:String=Check "$MBEDTLS_ROOT_DIR"
2897 msg "test: cmake 'out-of-source' build"
2902 # file is missing (ssl-opt.sh tolerates the absence of some files so
2904 ./tests/ssl-opt.sh -f 'Fallback SCSV: beginning of list' 2>ssl-opt.err
2905 cat ssl-opt.err >&2
2906 # If ssl-opt.err is non-empty, record an error and keep going.
2907 [ ! -s ssl-opt.err ]
2908 rm ssl-opt.err
2910 rm -rf "$OUT_OF_SOURCE_DIR"
2914 msg "build: cmake 'as-subdirectory' build"
2927 msg "build: cmake 'as-package' build"
2940 msg "build: cmake 'as-installed-package' build"
2963 if [ -z "$(gdb -batch -nw -ex 'set disable-randomization off' 2>&1)" ]; then
2964 gdb_disable_aslr='set disable-randomization off'
2967 for optimization_flag in -O2 -O3 -Ofast -Os; do
2971 …gdb -ex "$gdb_disable_aslr" -x tests/scripts/test_zeroize.gdb -nw -batch -nx 2>&1 | tee test_zeroi…
2973 not grep -i "error" test_zeroize.log
2974 rm -f test_zeroize.log
2983 msg "build: make, default config (out-of-box), libmbedcrypto.a only"
2984 make -C library libmbedcrypto.a
2991 # psa-compliance-tests only supports CMake >= 3.10.0
2992 ver="$(cmake --version)"
2999 [ "$ver_major" -eq 3 ] && [ "$ver_minor" -ge 10 ]
3004 tests/scripts/check-python-files.sh
3011 # harmless info on stdout so it can be suppress with --quiet.
3015 python3 -m unittest tests/scripts/translate_ciphers.py 2>&1
3035 # Function invoked by --error-test to test error reporting.
3038 if [ $KEEP_GOING -ne 0 ]; then
3044 # Expected error: 'grep non_existent /dev/null -> 1'
3046 # Expected error: '! grep -q . tests/scripts/all.sh -> 1'
3047 not grep -q . "$0"
3048 # Expected error: 'make unknown_target -> 2'
3070 if [ $KEEP_GOING -eq 1 ]; then
3071 # We want to keep running if the subshell fails, so 'set -e' must
3076 if [ $QUIET -eq 1 ]; then
3081 if [ $KEEP_GOING -eq 1 ]; then
3082 # Keep "set -e" off, and run an ERR trap instead to record failures.
3083 set -E
3088 if [ $KEEP_GOING -eq 1 ]; then
3089 trap - ERR
3094 if [ $KEEP_GOING -eq 1 ]; then
3095 set -e
3096 if [ $component_status -ne 0 ]; then
3116 if [ $KEEP_GOING -eq 1 ]; then