Add ML-DSA (87 only, one-shot only, pure only) to the PSA API #637

Open
opened 2026-01-05 07:48:24 -06:00 by gilles-peskine-arm · 4 comments
gilles-peskine-arm commented 2026-01-05 07:48:24 -06:00 (Migrated from github.com)

Add pure ML-DSA-87 (hedged and deterministic) to the PSA API. This means:

  • Declare the algorithms and the key types and the corresponding PSA_WANT_xxx, MBEDTLS_PSA_BUILTIN_xxx and MBEDTLS_PSA_ACCEL_xxx.
  • Support ML-DSA in crypto_knowledge.py
  • Resize buffers accordingly.
  • Add the driver dispatch code.
  • Allow the algorithms and the key types in psa_crypto.c.
  • Add unit tests.

Out of scope: HashML-DSA, multipart sign/verify, other parameter sets, enabling by default

Prerequisites: https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/633, preferably https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/653, then the GitHub sub-issues listed below.

The bulk of the work is in sub-issues. Once the sub-issues are done:

  • Do a final review, add anything that seems missing.
  • Make the feature official: remove any mention that it's experimental, and add a changelog entry.
  • Note that ML-DSA is not yet enabled by default. I think we should have one release where it's available but not enabled by default, and take a look at the effect on buffer sizes.
Add pure ML-DSA-87 (hedged and deterministic) to the PSA API. This means: * Declare the algorithms and the key types and the corresponding `PSA_WANT_xxx`, `MBEDTLS_PSA_BUILTIN_xxx` and `MBEDTLS_PSA_ACCEL_xxx`. * Support ML-DSA in `crypto_knowledge.py` * Resize buffers accordingly. * Add the driver dispatch code. * Allow the algorithms and the key types in `psa_crypto.c`. * Add unit tests. Out of scope: [HashML-DSA](https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/640), [multipart sign/verify](https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/639), [other parameter sets](https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/631), [enabling by default](https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/657) Prerequisites: https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/633, preferably https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/653, then the GitHub sub-issues listed below. The bulk of the work is in sub-issues. Once the sub-issues are done: * Do a final review, add anything that seems missing. * Make the feature official: remove any mention that it's experimental, and add a changelog entry. * Note that ML-DSA is not yet enabled by default. I think we should have one release where it's available but not enabled by default, and take a look at the effect on buffer sizes.
hanno-becker commented 2026-04-28 07:35:24 -05:00 (Migrated from github.com)

Is there an ECD for this issue?

Is there an ECD for this issue?
gilles-peskine-arm commented 2026-04-28 07:42:49 -05:00 (Migrated from github.com)

ECD

?

> ECD ?
hanno-becker commented 2026-04-28 08:01:33 -05:00 (Migrated from github.com)

I meant when you expect this to be done.

I meant when you expect this to be done.
gilles-peskine-arm commented 2026-04-28 08:56:45 -05:00 (Migrated from github.com)

The only thing I can say is not in Q2: we're focusing on improvements for low-resources use cases where the caller targets the PSA driver dispatch directly. Hopefully in Q3 we can add proper API support, but we don't have a firm commitment yet.

The only thing I can say is not in Q2: we're focusing on improvements for low-resources use cases where the caller targets the PSA driver dispatch directly. Hopefully in Q3 we can add proper API support, but we don't have a firm commitment yet.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-Mbed-TLS/TF-PSA-Crypto#637
No description provided.