Skip to content

Add new Zephyr module for Mbed TLS 4.0 + TF-PSA-Crypto 1.0 releases #97660

@valeriosetti

Description

@valeriosetti

Problem Description

On October 15th 2025 the joint release of Mbed TLS 4.0 and TF-PSA-Crypto 1.0 has been announced.

Many changes are included in it, some of which are of course breaking stuff with previous LTS release which is the one we currently use in Zephyr. The 2 main important ones are:

  • a repo split: it won't be just Mbed TLS, but Mbed TLS (v4.0) + TF-PSA-Crypto (v1.0). The former only includes TLS and X.509 while the latter, which is a git sub-repo of the former, all the low level crypto support and they are both necessary.
    • I don't recommend flattening TF-PSA-Crypto sub-repo inside Mbed TLS because then porting patches from upstream would become harder in some cases.
  • PSA API become the de-facto standard way to have access to crypto support. This allows vendor to more easily get support for their custom crypto libraries and/or support TF-M.

The standard update process for Zephyr would be:

  • deprecating all the legacy crypto support that's being removed from 4.0/1.0;
  • wait for the deprecation period to expire (2 releases)
  • remove legacy crypto usage
  • upgrade Mbed TLS.

However if we consider that in TSC it's currently being discussed to move to 2 release per year, this means that we'll have to wait for roughly a year to transition to this new Mbed TLS release. This also doesn't account for the fact that Mbed TLS is not only used in Zephyr codebase, but also in some external modules (ex: hostap, openthread) which might need some time to transition to PSA API. This would add extra delay in the adoption of the new solution.
On the other hand vendors might be interested in adopting this new release as soon as possible in order to benefit from the wider usage of PSA API.

Proposed Change (Summary)

Introduce new Mbed TLS 4.0 + TF-PSA-Crypto 1.0 as new modules in parallel with the existing 3.6 LTS.

Proposed Change (Detailed)

What if we add a couple of new modules to Zephyr, one for Mbed TLS 4.0 and one for TF-PSA-Crypto 1.0, which live in parallel with the current LTS support. Of course the two (LTS vs 4.0) should be mutually exclusive from a build point of view, with LTS one being the default choice for backward compatibility.
This way we'll give more time to end users and various subsystems and modules to transition to this new solution, and meanwhile the ones who would like to start benefiting from this new release can do so.

Dependencies

Assuming the new release is added in parallel to the current one and the latter is kept as default choice for the time being, nothing should break ideally.

Concerns and Unresolved Questions

No response

Alternatives Considered

Go through normal Zephyr's deprecation + update path, but this would require much longer.

Metadata

Metadata

Assignees

Labels

RFCRequest For Comments: want input from the communityTSCTopics that need TSC discussionarea: mbedTLS / PSA Crypto

Type

Projects

Status

No status

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions