Manuel Pégourié-Gonnard
73247c6e19
Fix dependency issues
...
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Manuel Pégourié-Gonnard
5d0a921e7a
Add test with non-HS record in-between HS fragments
...
Two of these tests reveal bugs in the code, so they're commented out for
now.
For the other tests, the high-level behaviour is OK (break the
handshake) but the details of why are IMO not good: they should be
rejected because interleaving non-HS record between HS fragments is not
valid according to the spec.
To be fixed in future commits.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Manuel Pégourié-Gonnard
de7aac782e
Add test to TLS 1.3 ClientHello fragmentation
...
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Manuel Pégourié-Gonnard
4afdf340dd
Add reference tests with 1.3 ClientHello
...
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Manuel Pégourié-Gonnard
e916652390
Add supported_curves/groups extension
...
This allows us to use a ciphersuite that will still be supported in 4.0.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Manuel Pégourié-Gonnard
6637ef798f
New test function inject_client_content_on_the_wire()
...
Not used for real stuff so far, just getting the tooling in place.
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-14 09:22:09 +01:00
Gilles Peskine
c4dd970386
Merge pull request #9096 from noahp/noahp/mbedtls_net_send-api-desc-tweak
...
mbedtls_net_send API description typo fix
2025-03-13 16:22:55 +00:00
Bence Szépkúti
906d3cdff5
Merge pull request #10020 from bensze01/msvc-format-size-macros
...
Fix preprocessor guards for C99 format size specifiers
2025-03-13 10:09:06 +00:00
Manuel Pégourié-Gonnard
50432e42c8
Merge pull request #10057 from minosgalanakis/feature_merge_defragmentation_dev
...
Merge defragmentation feature branch onto development
2025-03-13 08:36:06 +00:00
Bence Szépkúti
24f11a366d
Use an array of strings instead of pointer smuggling
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 19:14:50 +01:00
Bence Szépkúti
46e0b1cac9
Use dummy typedef instead of macro
...
Use a dummy definition of mbedtls_ms_time_t in builds without
MBEDTLS_HAVE_TIME.
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 17:11:46 +01:00
Bence Szépkúti
011b6cb1c5
Fix comments
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 17:11:42 +01:00
Bence Szépkúti
9ea9504176
Update changelog to call out MinGW
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 17:11:33 +01:00
Minos Galanakis
a4c9233292
Updated framework pointer.
...
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2025-03-12 15:25:17 +00:00
Minos Galanakis
a2a0c2cbe7
Merge remote-tracking branch 'origin/features/tls-defragmentation/development' into feature_merge_defragmentation_dev
...
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2025-03-12 15:25:06 +00:00
Bence Szépkúti
cd1ece7846
Never use %zu on MinGW
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:18:35 +01:00
Bence Szépkúti
ebe1f811c8
Remove Everest VS2010 compatibility headers
...
These headers were necessary for compatibility with Visual Studio 2010,
and interfere with the system headers on Visual Studio 2013+, eg. when
building Mbed TLS using the .sln file shipped with the project.
Move the still-required definition of "inline" to callconv.h, where the
definition for GCC also lives.
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:18:20 +01:00
Bence Szépkúti
becb21e668
Fix MSVC version guard for C99 format size specifiers
...
Visual Studio 2013 (_MSC_VER == 1800) doesn't support %zu - only use it
on 2015 and above (_MSC_VER >= 1900).
%ldd works on Visual Studio 2013, but this patch keeps the two macro
definitions together, for simplicity's sake.
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:16:20 +01:00
Bence Szépkúti
58bb7ecd94
Disable fatal assertions in Windows printf tests
...
The Windows CRT treats any invalid format specifiers passed to the CRT
as fatal assertion failures. Disable thie behaviour temporarily while
testing if the format specifiers we use are supported.
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:16:20 +01:00
Bence Szépkúti
154066d118
Add testcase for MBEDTLS_PRINTF_MS_TIME
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:16:20 +01:00
Bence Szépkúti
c6a8bf0f8e
Test handling of format macros defined in debug.h
...
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:16:20 +01:00
Bence Szépkúti
122105269a
Run test_suite_debug without MBEDTLS_SSL_TLS_C
...
Move the suite's global dependency on MBEDTLS_SSL_TLS_C to the
individual test cases.
Add an preprocesor guard around string_debug to prevent warning about unused
functions.
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
2025-03-12 16:16:20 +01:00
Manuel Pégourié-Gonnard
70bab4e61f
Merge pull request #10040 from gilles-peskine-arm/tls-defragment-doc
...
Document the limitations of TLS handshake message defragmentation
2025-03-12 13:00:15 +01:00
Gilles Peskine
4c30cd8e49
Update the location of defragmentation limitations
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-12 10:08:14 +01:00
Gilles Peskine
2b78a5abfa
State globally that the limitations don't apply to DTLS
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-12 10:07:33 +01:00
Gilles Peskine
d9c858039e
Clarify DTLS
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-11 13:47:49 +01:00
Gilles Peskine
80facedad9
ClientHello may be fragmented in renegotiation
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-11 13:47:14 +01:00
Gilles Peskine
d8f9e22b5e
Move the defragmentation documentation to mbedtls_ssl_handshake
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-11 13:45:27 +01:00
Manuel Pégourié-Gonnard
ba010729b7
Merge pull request #10047 from mpg/fix-defrag-interleave-dev
...
Fix defrag interleave dev
2025-03-11 12:38:08 +01:00
Ronald Cron
eb20c1f12d
Merge pull request #10010 from valeriosetti/issue137-development
...
[development] Add components to components-build-system.sh
2025-03-11 09:52:23 +00:00
Manuel Pégourié-Gonnard
e26a060194
Cleanly reject non-HS in-between HS fragments
...
Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
2025-03-11 09:28:55 +01:00
Valerio Setti
5e838bd0e8
tf-psa-crypto: update reference
...
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2025-03-11 05:59:39 +01:00
Valerio Setti
6408113fe2
tests: move component_test_tf_psa_crypto_cmake_as_package to tf-psa-crypto
...
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2025-03-10 12:44:49 +01:00
Ronald Cron
2d1f26037f
Merge pull request #9954 from gabor-mezei-arm/9753_migrate_RSA_key_exchange_tests
...
Migrate RSA-decryption test cases
2025-03-07 14:46:27 +00:00
Ronald Cron
0ef4184859
Merge pull request #9972 from valeriosetti/issue9956-development
...
[development] Remove DHM module
2025-03-07 13:16:01 +00:00
Gabor Mezei
8829aa336c
Fix code style
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-07 13:21:37 +01:00
Gilles Peskine
723fec4eca
Merge pull request #10011 from gilles-peskine-arm/tls-defragment-incremental-dev
...
Incremental TLS handshake defragmentation
2025-03-07 13:17:50 +01:00
Gilles Peskine
e34ec86370
Fix a log message
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-07 10:43:39 +01:00
Valerio Setti
692d855b4d
tf-psa-crypto: udpate reference
...
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2025-03-07 09:57:18 +01:00
Gilles Peskine
dab1cb5b45
Note unused variables when debugging is disabled
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 21:33:08 +01:00
Gilles Peskine
b8f1e4bae3
Pacify uncrustify
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 21:33:08 +01:00
Gilles Peskine
afb254c5fe
Unify handshake fragment log messages
...
There is no longer any different processing at this point, just
near-identical log messages.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 19:23:22 +01:00
Gilles Peskine
15c072f0de
Fix handshake defragmentation when the record has multiple messages
...
A handshake record may contain multiple handshake messages, or multiple
fragments (there can be the final fragment of a pending message, then zero
or more whole messages, and an initial fragment of an incomplete message).
This was previously untested, but supported, so don't break it.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 19:03:00 +01:00
Gabor Mezei
149509362b
TLS context serialization needs an AEAD ciphersuite
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-06 16:06:42 +01:00
Gilles Peskine
0851ec9344
Fix end check before memmove
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 15:15:20 +01:00
Gilles Peskine
e4a3fc2f58
Update framework
...
Changed log messages and added more tests in
`tests/opt-testcases/handshake-generated.sh`.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-06 09:34:56 +01:00
Gilles Peskine
1b785e2201
Refer to the API documentation for details
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-05 17:44:20 +01:00
Gilles Peskine
36edd48c61
Document the limitations of TLS handshake message defragmentation
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-05 17:41:59 +01:00
Gilles Peskine
90a9593bbd
Fix dodgy printf calls
...
Pacify `clang -Wformat-pedantic`.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-05 17:02:18 +01:00
Gilles Peskine
e85ece6584
Handshake defragmentation: reassemble incrementally
...
Reassemble handshake fragments incrementally instead of all at the end. That
is, every time we receive a non-initial handshake fragment, append it to the
initial fragment. Since we only have to deal with at most two handshake
fragments at the same time, this simplifies the code (no re-parsing of a
record) and is a little more memory-efficient (no need to store one record
header per record).
This commit also fixes a bug. The previous code did not calculate offsets
correctly when records use an explicit IV, which is the case in TLS 1.2 with
CBC (encrypt-then-MAC or not), GCM and CCM encryption (i.e. all but null and
ChachaPoly). This led to the wrong data when an encrypted handshake message
was fragmented (Finished or renegotiation). The new code handles this
correctly.
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-05 17:02:18 +01:00