Commit Graph

34336 Commits

Author SHA1 Message Date
Ronald Cron
8f0240c350 ssl-opt.sh: Remove CH reassembly unsupported test
We are about to have full support for TLS 1.2
CH reassembly on server side. The equivalent
positive test would be a duplicate of one of
the tests generated by generate_tls_handshake_tests.py.
Thus just removing the negative test.

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 14:21:48 +01:00
Ronald Cron
7fe38dd934 ssl_msg.c: Improve HS message reassembly completed message
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 14:21:48 +01:00
Ronald Cron
86b7df5591 ssl_tls.c: Rename and expand ssl_tls13_get_hs_msg_name
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 14:21:48 +01:00
Ronald Cron
8ab14401d7 ssl_server2.c: Flush stdout to improve logs timeliness
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 13:02:26 +01:00
Ronald Cron
1b5a0b1877 Add branch specific generate_tls_handshake_tests.py file
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 13:02:26 +01:00
Ronald Cron
57b29c2fe5 Introduce branch specific make_generated_files.py
Introduce branch specific make_generated_files.py
and use it in the development branch.

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 13:02:26 +01:00
Ronald Cron
29eb988669 Update framework pointer
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2026-02-18 13:02:24 +01:00
David Horstmann
3f2a8b0ad3 Merge pull request #10601 from davidhorstmann-arm/fix-missing-type-conversion-tls-exporter
Fix missing type conversion in the TLS-Exporter
2026-02-17 18:31:01 +00:00
Valerio Setti
4398e83f29 Merge pull request #10600 from gilles-peskine-arm/update-submodules-20260216
Update submodules
2026-02-17 11:59:40 +00:00
David Horstmann
059fe77e4b Fix missing type conversion in the TLS-Exporter
In the TLS-Exporter for TLS 1.3 we mistakenly call PSA_HASH_LENGTH() on
an mbedtls_md_type_t when it should be called on a psa_algorithm_t.

Fortunately, these two types have almost the same values, since we have
previously aligned them to make conversion more efficient. As a result,
PSA_HASH_LENGTH() produces exactly the same value when called on an
mbedtls_md_type_t as with the equivalent psa_algorithm_t.

Thanks to this happy coincidence, fix a largely cosmetic issue (rather
than a major functional bug).

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-16 16:59:20 +00:00
David Horstmann
bac74a050c Merge pull request #10593 from gilles-peskine-arm/bump-version-202602-4.0
Minor improvements to bump_version.sh
2026-02-16 16:50:16 +00:00
David Horstmann
37e3dcf00d Reword ChangeLog entry
We do not return failure, but return -1u which is documented as a value
that indicates that the result is not available.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-16 16:18:01 +00:00
Gilles Peskine
26e1a7c5c8 Update framework with XOF support in psasim
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-16 16:49:26 +01:00
Gilles Peskine
24c80cc536 Update tf-psa-crypto with mldsa-native
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-16 16:49:11 +01:00
David Horstmann
607f725563 Set verify_result in non-verification cases
When we are using PSK or when authmode == MBEDTLS_SSL_VERIFY_NONE, we
intentionally do not verify the certificate. In these cases, do not keep
verify_result at -1u but set it to MBEDTLS_X509_BADCERT_SKIP_VERIFY to
indicate that no certificate verification took place.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-16 10:57:09 +00:00
Gilles Peskine
4602f36a93 Merge pull request #10596 from gilles-peskine-arm/check_committed_generated_files-mbedtls-actually_check_mbedtls
Actually check committed generated files
2026-02-12 15:11:38 +00:00
Valerio Setti
384a16746f library: check_config: remove redundant check on hash algorithms for TLS 1.2
TLS-PRF uses either SHA-256 and SHA-384, so the removed paragraph was not
correct. The correct version is already available few lines below in the
same header file.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-02-12 14:12:30 +01:00
Gilles Peskine
d3a8582606 Actually check committed generated files
We were accidentally running the check in TF-PSA-Crypto instead of in Mbed TLS.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-12 13:16:18 +01:00
Gilles Peskine
05d8c71202 Don't treat --help as an error
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-10 14:52:21 +01:00
Gilles Peskine
4cce03530a Remove unused variable
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2026-02-10 14:52:16 +01:00
David Horstmann
ff51a1a176 Initialize verify_result in session free
Initialize the verify_result field in mbedtls_ssl_session_free().
Previously we were just zeroising the entire session object, which would
yield a default 'success' value if the same object were reused.

Test that this initialisation is actually happening by setting
verify_result manually to zero and calling mbedtls_ssl_session_free() on
the session before checking its value.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:31:46 +00:00
David Horstmann
687a1ba907 Switch to a default value of -1u
Since we explicitly document the value 0xFFFFFFFF or -1u as representing
'result not available', we can use it as a sensible default value
without creating an API change. Use this value instead of introducing a
new verification result value.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:31:46 +00:00
David Horstmann
e29d7be48e Add ChangeLog entry for verify_result hardening
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:31:46 +00:00
David Horstmann
0ecde06ce9 Add non-regression test for verify_result init
Write a testcase to get verify_result before we have performed a
handshake and make sure that it is initialised to a failure value.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:31:43 +00:00
David Horstmann
dea75cbb88 Set verify_result to failure by default
At initialization, set the verify_result field of the ssl session to
MBEDTLS_X509_VERIFY_NOT_STARTED, rather than 0 as it is by default
currently. This prevents mbedtls_ssl_get_verify_result() from indicating
that certificate verification has passed if it is called prior to the
handshake happening.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:26:36 +00:00
David Horstmann
86c40c1b0d Add new X509 verification result for 'not started'
Add a new verification result bitflag MBEDTLS_X509_VERIFY_NOT_STARTED
to use as a safe initial value for verify_result. This is better than
the current initial value which is 0 (indicating success).

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-02-05 14:26:36 +00:00
Valerio Setti
2a72766d75 Merge pull request #10570 from valeriosetti/issue10349
mbedtls 4.x does not expose mbedtls_ecp_curve_list()
2026-02-03 11:01:11 +00:00
Valerio Setti
318e4314df changelog: add notes about helpers added to get list of known/supported TLS groups
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-02-02 13:38:03 +01:00
Valerio Setti
c3f585b8ee tests: ssl: fix typo in comment in test_mbedtls_ssl_get_supported_group_list
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-30 22:02:08 +01:00
David Horstmann
8b1d9e49d9 Reword to be more specific
Specify that the cryptographic operations of Mbed TLS are governed by
its threat model and point specifically to block ciphers as an important
case of this.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-01-30 14:51:59 +00:00
David Horstmann
7bba265eed Add link to TF-PSA-Crypto SECURITY.md
To avoid confusion about the threat model of cryptographic code, add a
link to the SECURITY.md of TF-PSA-Crypto. This should help users who are
unaware that the cryptography has been split into a separate repository.

Signed-off-by: David Horstmann <david.horstmann@arm.com>
2026-01-30 12:23:16 +00:00
Manuel Pégourié-Gonnard
75eec4b477 Merge pull request #10577 from h1wind/patch-1
fix: Disabling the MBEDTLS_SSL_CLI_C feature caused a compilation error: unused parameter "ssl".
2026-01-29 10:30:18 +00:00
hi
4987340d24 fix code style in ssl_msg.c and add signoff
Signed-off-by: hi <hi@nosec.me>
2026-01-29 14:14:02 +08:00
hi
d823908335 fix: Disabling the MBEDTLS_SSL_CLI_C feature caused a compilation error: unused parameter "ssl".
Signed-off-by: hi <hi@nosec.me>
2026-01-29 14:14:02 +08:00
Gilles Peskine
068ef9cbe0 Merge pull request #10511 from minosgalanakis/rework/move-psasim
Rework/move psasim
2026-01-28 18:05:59 +00:00
David Horstmann
d0bff58379 Merge pull request #10514 from ng-gsmk/development
mbedtls_ssl_get_alert(): getter for fatal alerts
2026-01-28 16:49:09 +00:00
Minos Galanakis
7663b9c727 Updated framework pointer
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2026-01-28 16:34:54 +00:00
Valerio Setti
476a2edea7 library: extend mbedtls_ssl_iana_tls_group_info_t structure
Add new field that tells if the corresponding group is supported or not
in the current build.

Test function "test_mbedtls_ssl_get_supported_group_list" is extended
to verify this new feature.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-28 10:52:07 +01:00
Valerio Setti
9b49d5dbde library: ssl: fix documentation of IANA TLS group info
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-27 17:56:34 +01:00
Minos Galanakis
1c2b690389 Test Makefiles: Updated location of psasim
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2026-01-27 12:07:05 +00:00
Minos Galanakis
097e57874f Moved tests/psa-client-server to framework.
Signed-off-by: Minos Galanakis <minos.galanakis@arm.com>
2026-01-27 12:07:05 +00:00
Valerio Setti
d658f3d41e tests: ssl: skip testing of MBEDTLS_SSL_IANA_TLS_GROUP_NONE
This is already indirectly checked in 'test_mbedtls_tls_id_group_name_table'
because it's the last item of the list.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-27 12:26:21 +01:00
Nico Geyso
cc53b069d9 Improve changelog for alert getter
Integrate suggestions by @ronald-cron-arm for changelog for alert
getter.

Signed-off-by: Nico Geyso <ng@gsmk.de>
2026-01-27 10:48:55 +01:00
Valerio Setti
4f1e4fba80 library: ssl: make the list of "TLS ID" <-> "group name" public when possible
This is only done when MBEDTLS_DEBUG_C is declared in order not to inflate
the library size.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-27 00:51:35 +01:00
Valerio Setti
bb4f584876 tests: ssl: improve test_mbedtls_tls_id_group_name_table()
Check provided group_name also against the value returned from
mbedtls_ssl_get_curve_name_from_tls_id().

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-27 00:44:56 +01:00
Valerio Setti
fb317afa9f library: ssl: rework macro to define known TLS ID <-> group name list
- let the macro be an initializer for the array of known TLS IDs, not
  a variable declarator;
- last item's group name is NULL, not an empty string
- change then name of the macro from MBEDTLS_TLS_ID_GROUP_NAME_TABLE to
  MBEDTLS_SSL_IANA_TLS_GROUPS_INFO
- define a new public structure "mbedtls_ssl_iana_tls_group_info_t" to
  hold each element of the table and that can be used the go over the
  list from user code.

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2026-01-27 00:36:17 +01:00
Nico Geyso
8a3bcb1434 Fix coding style conventions for mbedtls_ssl_context
Signed-off-by: Nico Geyso <ng@gsmk.de>
2026-01-26 15:38:50 +01:00
Nico Geyso
6afd8367b9 remove whitespace in mbedtls_ssl_session_msg_layer
to comply with coding style, remove blank new line for alert reset

Signed-off-by: Nico Geyso <ng@gsmk.de>
2026-01-26 13:22:44 +01:00
Nico Geyso
4f83ebedd1 Fix outstanding code review issues
- adjust function name to mbedtls_ssl_get_fatal_alert
- fix missing property name changes for  mbedtls_ssl_context

Signed-off-by: Nico Geyso <ng@gsmk.de>
2026-01-26 13:15:07 +01:00
ng-gsmk
15c68993cb Apply suggestions from code review
Co-authored-by: Ronald Cron <ronald.cron@arm.com>
Signed-off-by: ng-gsmk <ng@gsmk.de>
2026-01-26 13:07:26 +01:00