Max Fillinger
3e1291866d
Fix output size check for key material exporter
...
HKDF-Expand can produce at most 255 * hash_size bytes of key material,
so this limit applies to the TLS 1.3 key material exporter.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 17:06:48 +01:00
Max Fillinger
28916ac8fe
Increase allowed output size of HKDF-Expand-Label
...
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 17:06:48 +01:00
Max Fillinger
0747388254
Fix #endif comment
...
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
2fe35f61bf
Create MBEDTLS_SSL_KEYING_MATERIAL_EXPORT option
...
Add the option MBEDTLS_SSL_KEYING_MATERIAL_EXPORT to mbedtls_config.h
to control if the function mbedtls_ssl_export_keying_material() should
be available. By default, the option is disabled.
This is because the exporter for TLS 1.2 requires client_random and
server_random need to be stored after the handshake is complete.
Signed-off-by: Max Fillinger <max@max-fillinger.net>
2025-03-28 16:53:58 +01:00
Max Fillinger
281fb79116
Remove TLS 1.2 Exporter if we don't have randbytes
...
The TLS-Exporter in TLS 1.2 requires client_random and server_random.
Unless MBEDTLS_SSL_CONTEXT_SERIALIZATION is defined, these aren't stored
after the handshake is completed.
Therefore, mbedtls_ssl_export_keying_material() exists only if either
MBEDTLS_SSL_CONTEXT_SERIALIZATION is defined or MBEDTLS_SSL_PROTO_TLS1_2
is *not* defined.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
c9f2c9adba
Revert "Store randbytes for TLS 1.2 TLS-Exporter"
...
This reverts commit cb01dd1333f8083af469e9a0c59f316f1eb0cfe3.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
155cea0900
Use fewer magic numbers in TLS-Exporter functions
...
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
f2dda15ce8
Add label length argument to tls_prf_generic()
...
This way, it's not required that the label is null-terminated. This
allows us to avoid an allocation in
mbedtls_ssl_tls12_export_keying_material().
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
48150f5dc3
Store randbytes for TLS 1.2 TLS-Exporter
...
Previously, if MBEDTLS_SSL_CONTEXT_SERIALIZATION is not defined,
randbytes are not stored after the handshake is done, but they are
needed for TLS-Exporter in TLS 1.2.
This commit also saves randbytes if MBEDTLS_SSL_PROTO_TLS1_2 is defined.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:58 +01:00
Max Fillinger
29beade80f
Fix build when one of TLS 1.2 or 1.3 is disabled
...
Signed-off-by: Max Fillinger <max@max-fillinger.net>
2025-03-28 16:53:58 +01:00
Max Fillinger
7b72220d42
Fix coding style
...
Signed-off-by: Max Fillinger <max@max-fillinger.net>
2025-03-28 16:53:58 +01:00
Max Fillinger
9c9989fc6d
Fix mismatches in function declarations
...
Missed some const keywords in function declarations.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:57 +01:00
Max Fillinger
91cff4406b
Fix key_len check in TLS-Exporter
...
The length of the generated key must fit into a uint16_t, so it must not
be larger than 0xffff.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:57 +01:00
Max Fillinger
334c367052
Simplify mbedtls_ssl_tls13_exporter
...
RFC 8446 made it look like we can't use Derive-Secret for the second
step, but actually, Transcript-Hash and Hash are the same thing, so we
can.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:57 +01:00
Max Fillinger
136fe9e4be
Fix commented out function declaration
...
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:57 +01:00
Max Fillinger
bd81c9d0f7
Implement TLS-Exporter feature
...
The TLS-Exporter is a function to derive shared symmetric keys for the
server and client from the secrets generated during the handshake.
It is defined in RFC 8446, Section 7.5 for TLS 1.3 and in RFC 5705 for
TLS 1.2.
Signed-off-by: Max Fillinger <maximilian.fillinger@foxcrypto.com>
2025-03-28 16:53:57 +01:00
Manuel Pégourié-Gonnard
e57ea21a1c
Merge pull request #10042 from bjwtaylor/remove-ssl-conf
...
Remove mbedtls_ssl_conf_rng()
2025-03-27 14:05:42 +00:00
Ben Taylor
cd2660fb0e
fixed code style
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
8224e71262
remove NULL guard
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
c12152e53e
corrected style
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
03c05c336e
Remove additional line
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
fb68b8cf57
Remove empty ifdef
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
9774e9a176
corrected code style
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
1f091466c1
tidy up syntax
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
1cd1e01897
Correct code style
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:34:03 +00:00
Ben Taylor
0deda0e34c
Update debug
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:33:32 +00:00
Ben Taylor
d5d707842c
removed NR psa-init
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:33:32 +00:00
Ben Taylor
6ff2da196a
added further debug
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:33:32 +00:00
Ben Taylor
fd52984896
resolved ci failures
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:32:10 +00:00
Ben Taylor
602b2968ca
pre-test version of the mbedtls_ssl_conf_rng removal
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:32:10 +00:00
Ben Taylor
47111a1cb1
initial remove of mbedtls_ssl_conf_rng
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 13:32:10 +00:00
Valerio Setti
ba66794fb4
library: remove psa_crypto_se.c from Makefile
...
Following the removal of MBEDTLS_PSA_CRYPTO_SE_C the file was removed
from tf-psa-crypto.
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
2025-03-26 13:32:54 +01:00
Ben Taylor
440cb2aac2
Remove RNG from x509 and PK
...
remove the f_rng and p_rng parameter from x509 and PK.
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-26 08:17:38 +00:00
Gilles Peskine
a7e14dc9eb
Don't expect added error codes
...
Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
2025-03-24 14:13:50 +00:00
Gabor Mezei
58535da8d0
Only check for certificates if it is supported
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-20 17:53:07 +01:00
Gabor Mezei
e99e591179
Remove key exchange based on encryption/decryption
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-20 17:53:07 +01:00
Gabor Mezei
3c7db0e5a8
Remove MBEDTLS_TLS_RSA_* ciphersuite macros
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-20 17:53:07 +01:00
Gabor Mezei
5814e3e566
Remove MBEDTLS_KEY_EXCHANGE_RSA key exchange type
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-20 17:53:07 +01:00
Gabor Mezei
e1e27300a2
Remove MBEDTLS_KEY_EXCHANGE_RSA_ENABLED config option
...
Signed-off-by: Gabor Mezei <gabor.mezei@arm.com>
2025-03-20 17:53:01 +01:00
Manuel Pégourié-Gonnard
4515d10163
Merge pull request #10039 from bjwtaylor/remove-rng-from-ssl
...
Remove RNG parameters from public SSL APIs
2025-03-19 11:27:51 +00:00
Manuel Pégourié-Gonnard
1038b22d74
Reduce the level of logging used in tests
...
This should avoid running into a bug with printf format specifiers one
windows.
It's also a logical move for actual tests: I used the highest debug
level for discovery, but we don't need that all the time.
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
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
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
Ben Taylor
857144c9c2
removed psa_crypto_init from library as this is supposed to be called by the application
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-10 13:46:14 +00:00
Ben Taylor
0cfe54e4e0
remove RNG parameters from SSL API's
...
Signed-off-by: Ben Taylor <ben.taylor@linaro.org>
2025-03-10 13:24:31 +00: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
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