Support ML-DSA-87 key pair generation in the PSA API #901

Open
opened 2026-09-07 12:16:37 -05:00 by gilles-peskine-arm · 0 comments
gilles-peskine-arm commented 2026-09-07 12:16:37 -05:00 (Migrated from github.com)

Prerequsite: https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/900

  • Declare PSA_WANT_KEY_TYPE_ML_DSA_KEY_PAIR_GENERATE and PSA_WANT_KEY_TYPE_ML_DSA_KEY_PAIR_DERIVE yet) in include/psa/crypto_config.h, default off. They will automatically be enabled in the full config.
  • Support ML-DSA in psa_generate_key() and psa_generate_key_custom() (reject non-default custom parameters — no support for PSA_CUSTOM_KEY_FLAG_EXPAND yet).. Call driver dispatch.
  • Support ML-DSA in psa_key_derivation_output_key().
  • Remove the exceptions to tests/scripts/analyze_outcomes.py for features that are now implemented.

The key pair is represented as the seed.

All functions and macros must have unit tests in test_suite_psa_crypto.mldsa.data (create a new data file because the test data is big and we're trying to split up test_suite_psa_crypto.data). This should require only new test data, not new test code. We want both positive and negative tests (bad key size, not supported, buffer too small, etc. as applicable). There is no need to duplicate tests that are automatically generated.

In comments, document that the support for ML-DSA is still incomplete. No changelog entry.

Prerequsite: https://github.com/Mbed-TLS/TF-PSA-Crypto/issues/900 * Declare `PSA_WANT_KEY_TYPE_ML_DSA_KEY_PAIR_GENERATE` and `PSA_WANT_KEY_TYPE_ML_DSA_KEY_PAIR_DERIVE` yet) in `include/psa/crypto_config.h`, default off. They will automatically be enabled in the `full` config. * Support ML-DSA in `psa_generate_key()` and `psa_generate_key_custom()` (reject non-default custom parameters — no support for `PSA_CUSTOM_KEY_FLAG_EXPAND` yet).. Call driver dispatch. * Support ML-DSA in `psa_key_derivation_output_key()`. * Remove the exceptions to `tests/scripts/analyze_outcomes.py` for features that are now implemented. The key pair is represented as the seed. All functions and macros must have unit tests in `test_suite_psa_crypto.mldsa.data` (create a new data file because the test data is big and we're trying to split up `test_suite_psa_crypto.data`). This should require only new test data, not new test code. We want both positive and negative tests (bad key size, not supported, buffer too small, etc. as applicable). There is no need to duplicate tests that are automatically generated. In comments, document that the support for ML-DSA is still incomplete. No changelog entry.
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#901
No description provided.