Repository navigation
Conversation
MbedTLS 3.6.1 fixes TLS 1.3 handshakes with optional or disabled certificate verification. Keep the TLS 1.2 workaround only for affected versions so newer builds can negotiate TLS 1.3. Extend the existing Erlang SSL tests to assert Akamai's reported negotiated version, accounting for the MbedTLS version and compiled protocol support. Reject incomplete responses and unexpected receive errors, and use a monitored worker to bound the regression request. Keep normal ESP32 defaults unchanged. Exercise optional TLS 1.3 in one ESP32-S3, IDF v5.5.5, non-JIT CI variant with a 6144-byte main/scheduler stack, verified by the full memory-check suite. Leave certificate retention at its SDK default and distinguish the variant's artifacts. Signed-off-by: Peter M <petermm@gmail.com>
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
The step runs the whole estdlib suite, and on the slowest matrix entries every test module is JIT compiled under QEMU. The xtensa JIT+DWARF job takes about 18.5 minutes and needed over 21 minutes on a slower runner, so the 20-minute timeout fails on timing alone: the failing run compiled each module at the same speed as the passing one, about 13% slower overall, and reached the last test when it was killed. Raise the timeout to 30 minutes so the step reports real test failures instead of a timeout. Signed-off-by: Peter Madsen-Mygdal <petermm@gmail.com> Signed-off-by: Peter M <petermm@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AtomVM capped the maximum TLS version to 1.2 for every connection that did not
use verified peer certificates, because Mbed TLS could not complete a TLS 1.3
handshake with optional or disabled certificate verification
(Mbed-TLS/mbedtls#7075). Mbed TLS 3.6.1 fixed that upstream, but the cap still
applied, so
ssl:connect/3with{verify, verify_none}negotiated TLS 1.2 evenwhen the linked library supports TLS 1.3.
Keep the workaround only for the affected versions, so Mbed TLS 3.6.1 and later
can negotiate TLS 1.3. The
mbedtls_ssl_conf_max_versioncall is still used forlibraries older than 3.2.
The Erlang SSL tests now assert the version the server reports, accounting for
the Mbed TLS version and the protocol support compiled into it. They bound the
request with a monitored worker, since AtomVM's SSL API has no timeout, and
reject incomplete responses and unexpected receive errors.
TLS 1.3 stays opt-in on ESP32, so normal ESP32 defaults are unchanged. One
ESP32-S3, ESP-IDF v5.5.5, non-JIT CI variant runs with TLS 1.3 enabled through
the full memory-check suite. It sets
CONFIG_MBEDTLS_SSL_PROTO_TLS1_3and a6144-byte main/scheduler stack, which TLS 1.3 needed in those builds, and keeps
the certificate retention setting at its SDK default. Build instructions and the
network programming guide document the requirement and the security limitation
of
verify_none.Verified on generic UNIX with Mbed TLS 3.6.7: the estdlib suite passes and the
new SSL test reports
TLS negotiated tls1.3; expected tls1.3.The estdlib suite is a little longer with the added TLS request, which showed
that the 20-minute timeout on that step is too tight: the xtensa JIT+DWARF job
compiles every test module under QEMU, takes about 18.5 minutes, and needed
over 21 minutes on a slower runner. The step timeout is raised to 30 minutes so
it reports real test failures instead of a timeout.
These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).
SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later