34794 Commits

Author SHA1 Message Date
Gilles Peskine
b9ff81c4c5 Merge remote-tracking branch 'development' into merge-development-restricted-20260311 2026-03-11 12:32:56 +01:00
David Horstmann
c6e1d67b1b ssl-opt.sh: Check for cert verify skipped
Check that the message "! Certificate verification was skipped" is
present in the output when auth_mode=none. This indicates that the
certificate verify flag MBEDTLS_X509_BADCERT_SKIP_VERIFY was
correctly set.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-03-11 10:36:11 +00:00
Ronald Cron
622b69d1d0 Add change log
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 19:24:19 +01:00
Ronald Cron
759895e7df tls13_hrr_then_tls12_second_client_hello: Improve client and server state checks
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 19:24:19 +01:00
Ronald Cron
139ac457ab tls13_hrr_then_tls12_second_client_hello: Improve some comments
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 19:24:13 +01:00
David Horstmann
624fc2e0de Move TLS 1.3 verify-result setting for PSK
When we are doing PSK, we'd like to set verify_result to
MBEDTLS_X509_BADCERT_SKIP_VERIFY. Previously this was done in
mbedtls_ssl_set_hs_psk() but this is inadequate since this function may
be called for early data (where certificate verification happens later
in the handshake.

Instead, set this value after writing / processing the encrypted
extensions on the server / client respectively, so that we know whether
we are doing certificate verification or not for sure. This change is
effective only for TLS 1.3 as TLS 1.2 sets verify_result for PSK in
ssl_parse_certificate_coordinate().

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-03-10 15:12:47 +00:00
Ronald Cron
b5749b88f6
Merge pull request #10576 from ronald-cron-arm/dtls-client-hello-defragmentation
Add support for (D)TLS 1.2 client hello defragmentation
2026-03-10 14:46:07 +00:00
Ronald Cron
e051abd5e3 tls13_hrr_then_tls12_second_client_hello: Various improvements
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 15:43:46 +01:00
Yi Wu
d9fa082e30 Add changelog
Signed-off-by: Yi Wu <yi.wu2@arm.com>
2026-03-10 11:04:06 +00:00
Ronald Cron
09210ea54f Restore seq number check of post-handshake ClientHello msg
The check was wrongly removed by the commit
"ssl_tls12_server.c: Move ClientHello message_seq adjustment".

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 10:12:55 +01:00
Ronald Cron
7f40da187c ssl_tls12_server.c: Move back the digest update
Move back the digest update just after
the call to mbedtls_ssl_read_record().
It fits well here as we explain in the
comment associated to the call to
mbedtls_ssl_read_record() that we
update it manually.

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-10 08:25:21 +01:00
Ronald Cron
65a038198e Improve comments
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 23:28:50 +01:00
Gilles Peskine
11d1f51631
Merge pull request #10464 from bensze01/abicheck-port
Move abi_check.py to the framework
2026-03-09 13:57:04 +00:00
Valerio Setti
109ce5e687
Merge pull request #10617 from ronald-cron-arm/tf-psa-crypto-reorg-prep
Prepare for TF-PSA-Crypto repository reorganization
2026-03-09 11:49:28 +00:00
Manuel Pégourié-Gonnard
fe2599ea82
Merge pull request #1487 from davidhorstmann-arm/fix-null-pointer-dereference
Fix null pointer dereference in `mbedtls_x509_string_to_names()`
2026-03-09 12:43:08 +01:00
Manuel Pégourié-Gonnard
b6c3aa7f31
Merge pull request #1502 from gilles-peskine-arm/merge-development-restricted-20260309
Merge development public into restricted (ready for fork fix)
2026-03-09 10:13:38 +01:00
Ronald Cron
bef136e607 Update framework pointer to the merge of PR 280
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:30:07 +01:00
Ronald Cron
269b390bb4 components-platform.sh: Fix path of compiler directory
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
aa024253d6 tests: make: Fix spaces instead of tab
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
32479c6a72 cmake: Introduce TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
a400a3bb8a Adapt list_internal_identifiers.py for upcoming directory changes
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
f3a20d25d6 Prepare libtestdriver1 build for upcoming directory changes
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
325170b962 legacy.make: Add globs and paths for tags and cscope
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
24bf98156a components*.sh: Handle current and upcoming object paths
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
03ee085e10 Remove duplicated recursion tests
The recursion tests for the crypto code
are run in a TF-PSA-Crypto component.
No need to run them in an Mbed TLS
component as well.

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
ae82217476 programs: metatest: Add tf-psa-crypto/platform as include dir
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Ronald Cron
1ef64a73e4 programs: metatest: Remove include path duplication
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-03-09 08:28:51 +01:00
Gilles Peskine
ba5774387b Update framework with psasim serialise supporting unsigned and crypto dir reorg prep
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-08 20:30:08 +01:00
Gilles Peskine
cf02249039 Merge remote-tracking branch 'development' into merge-development-restricted-20260309 2026-03-08 20:24:58 +01:00
Gilles Peskine
65da2a38bf
Merge pull request #10606 from gilles-peskine-arm/unix-detection-202601-4.0
Simplify platform requirements before 4.1
2026-03-06 18:06:08 +00:00
Yi Wu
b6ef9ec78f Support DESTDIR for install and add build-system test
Signed-off-by: Yi Wu <yi.wu2@arm.com>
2026-03-05 17:32:51 +00:00
David Horstmann
dba3c2de82
Merge pull request #1499 from gilles-peskine-arm/inet_pton-changelog-attribution
Update attribution to conform to contributor's request
2026-03-05 15:00:17 +00:00
Gilles Peskine
68c44a4a97 Update attribution to conform to contributor's request
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-05 12:10:16 +01:00
Manuel Pégourié-Gonnard
73639eb35a
Merge pull request #1494 from gilles-peskine-arm/merge-development-restricted-20260303
Merge public into development-restricted
2026-03-04 12:11:08 +01:00
Gilles Peskine
b38e28dbf0 Make sure we declare TF-PSA-Crypto platform requirements before including system headers
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-04 11:54:35 +01:00
Gilles Peskine
037f3c62ff Tell MSVC to allow non-s functions where needed
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-04 11:32:18 +01:00
Gilles Peskine
37fd7d5210 Start from a clean baseline for C11 ext1 and POSIX features
Define `_POSIX_C_SOURCE` and `_XOPEN_SOURCE` in a single place that
applies everywhere, to make things simple.

This may break some platforms that require special handling for POSIX
functions and types. Subsequent commits will add platform-specific hacks
as needed.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-04 11:32:18 +01:00
Gilles Peskine
e8dec9c031 Unify the detection of Unix-like platforms
We were using slightly different guards to decide whether to include
`<unistd.h>` in different places. Unify those.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-04 11:32:18 +01:00
Gilles Peskine
5d479d8050 Update tf-psa-crypto with unified Unix detection
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-04 11:32:15 +01:00
Gilles Peskine
3d4b7cd3f9 Merge remote-tracking branch 'development' into development-restricted 2026-03-03 19:00:20 +01:00
Bence Szépkúti
1d088bb84e
Merge pull request #10625 from gilles-peskine-arm/unix-detection-202601-mingw-prep
Simplify platform requirements before 4.1: MingW
2026-03-02 15:04:34 +00:00
Gilles Peskine
29192f0a00 Use the mbedtls_common.h in generated library .c files as well
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-02 12:25:03 +00:00
Gilles Peskine
436f1e30ad Include the config in mbedtls_commmon.h as promised
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-02 12:25:02 +00:00
Gilles Peskine
a3d55d9ec7 Document the purpose of mbedtls_common.h
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-03-02 12:25:01 +00:00
Gilles Peskine
eb1328285b Update framework with support for standard printf on MinGW
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-28 11:54:57 +00:00
Gilles Peskine
4ec9536339 Temporarily force standard *printf functions on MingW
On MingW, temporarily force the use of the standard versions of `snprintf()`
and `vsnprintf()` (since we set `__USE_MINGW_ANSI_STDIO` in
`mbedtls_platform_requirements.h`). Do not honor `platform.h` configuration,
because with the current TF-PSA-Crypto, `MBEDTLS_PLATFORM_VSNPRINTF_ALT and
`MBEDTLS_PLATFORM_SNPRINTF_ALT` are always enabled on MinGW, so what matters
is the setting of `__USE_MINGW_ANSI_STDIO` when `platform.c` is built, and
until https://github.com/Mbed-TLS/TF-PSA-Crypto/pull/694, the legacy printf
functions are used there.

Revert this commit once the `tf-psa-crypto` module is updated with the merge
of https://github.com/Mbed-TLS/TF-PSA-Crypto/pull/694.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-26 21:34:32 +01:00
Gilles Peskine
64ff7fc1dc Stop using MBEDTLS_PRINTF_SIZET
Since Mbed TLS 3.6.0, all officially supported versions of Visual Studio
a printf function family that is sufficiently compliant to C99 for our
purposes, in particular supporting `%zu` for `size_t`. The only platform
without `%zu` that we semi-officially support is older versions of MinGW,
still used in our CI. MinGW provides either a Windows legacy printf or a
standards-compliant printf depending on the value of
`__USE_MINGW_ANSI_STDIO` when compiling each C file. Force the use of the
compliant version. Don't rely on `MBEDTLS_PRINTF_SIZET`, which is defined in
`<mbedtls/debug.h>` and no longer considers the Windows legacy version in
Mbed TLS >= 4.1.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-26 19:56:23 +00:00
Gilles Peskine
cdf3b0a535 MingW: insist on standard-compliant printf() and friends
Always activate `__USE_MINGW_ANSI_STDIO` unless overridden on the command
line. This is necessary with older versions of MingW and/or Windows,
where snprintf does not always zero-terminate the buffer, and does
not support formats such as `"%zu"` for size_t and `"%lld"` for long long.

Simplify debug.h accordingly. The macros `MBEDTLS_PRINTF_SIZET`,
`MBEDTLS_PRINTF_SIZET_HAX` and `MBEDTLS_PRINTF_LONGLONG` are no longer
needed, but they are still used in our code base and must stay in debug.h
for backward compatibility.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-26 20:56:03 +01:00
Gilles Peskine
3c67824964 test_suite_debug: test the printf used by debug.c
In `test_suite_debug`, test `mbedtls_debug_snprintf()`, which uses
`mbedtls_vsnprintf()` like `mbedtls_debug_print_msg()`. Do this instead of
testing `mbedtls_snprintf()`, which might be subtly different (older
Windows runtimes had slightly different behavior for vsnprintf() vs
snprintf(); TF-PSA-Crypto might pick up a different function if the
platform configuration is different in TF-PSA-Crypto and Mbed TLS).

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-26 20:56:03 +01:00
Gilles Peskine
7af09b4f21 Add a few more test cases for printf formats
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-26 19:54:59 +00:00