1
0
Fork 0
godot/modules/mbedtls
Fabio Alessandrelli 2c789788c0 mbedTLS: Fix concurrency issues with TLS
When we first integrated mbedTLS, we decided not to enable
MBEDTLS_THREADING_C (which adds mutex locking to calls modifying the
state), and instead to simply create separate contexts ("states") for
each connection.

This worked fine until recently.
Sadly, mbedTLS 3 added a global state for the new PSA crypto
functionalities (which are required to support TLSv1.3).
This results in TLSv1.3 connections to access and modify the global
state concurrently when running in threads.

This commit enables MBEDTLS_THREADING_C, and MBEDTLS_THREADING_C_ALT to
provide a generic Godot implementation using the engine Mutex class.
2025-05-08 11:45:00 +02:00
..
tests Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
SCsub SCons: Add `CPPEXTPATH` for external includes 2025-04-02 07:29:08 -05:00
config.py Cleanup: Remove executable bit from files which don't need it 2021-01-19 23:36:42 +01:00
crypto_mbedtls.cpp Remove `String` clipping constructors. 2025-03-15 12:34:44 +01:00
crypto_mbedtls.h Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`. 2025-03-31 20:49:50 +02:00
dtls_server_mbedtls.cpp Improve use of `Ref.is_null/valid` 2024-12-23 16:35:02 -05:00
dtls_server_mbedtls.h Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`. 2025-03-31 20:49:50 +02:00
packet_peer_mbed_dtls.cpp Improve use of `Ref.is_null/valid` 2024-12-23 16:35:02 -05:00
packet_peer_mbed_dtls.h Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
register_types.cpp mbedTLS: Fix concurrency issues with TLS 2025-05-08 11:45:00 +02:00
register_types.h Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
stream_peer_mbedtls.cpp Improve use of `Ref.is_null/valid` 2024-12-23 16:35:02 -05:00
stream_peer_mbedtls.h Style: Replace header guards with `#pragma once` 2025-03-07 17:33:47 -06:00
tls_context_mbedtls.cpp [mbedTLS] Enable TLS 1.3 negotiation by default 2025-02-24 14:04:09 +01:00
tls_context_mbedtls.h Add and require `GDSOFTCLASS` for `Object` subclasses that want to cast but do not use `GDCLASS`. 2025-03-31 20:49:50 +02:00