Skip to content

Conversation

@gilles-peskine-arm
Copy link
Contributor

Follow up to #593. New features:

PR checklist

Please remove the segment/s on either side of the | symbol as appropriate, and add any relevant link/s to the end of the line.
If the provided content is part of the present PR remove the # symbol.

ronald-cron-arm and others added 30 commits October 20, 2025 09:33
The seedfile is generated in the build tree not
in the source tree.

Signed-off-by: Ronald Cron <[email protected]>
Add the build-tree include directory to the list
of directories used to search for headers when
building the libraries.

Place it before the source-tree include directory
so that headers in the build tree take precedence
over those in the source tree.

This change supports custom configurations set by
`config.py` (such as full or baremetal) without
overriding `crypto_config.h` in the source tree.

Signed-off-by: Ronald Cron <[email protected]>
Signed-off-by: Pol Henarejos <[email protected]>
Signed-off-by: Gilles Peskine <[email protected]>
…lti.

Signed-off-by: Pol Henarejos <[email protected]>
Signed-off-by: Gilles Peskine <[email protected]>
SHAKE, as it is a XOF function, it allows arbitrary output lengths that can be called multiple times and concatenated. The property SHAKE_finish(olen1+olen2)=SHAKE_finish(olen1)||SHAKE_finish(olen2) always holds.

Signed-off-by: Pol Henarejos <[email protected]>
Signed-off-by: Gilles Peskine <[email protected]>
Signed-off-by: Pol Henarejos <[email protected]>
Signed-off-by: Gilles Peskine <[email protected]>
Split `test_suite_shax.data` into separate files per algorithm family. It
was getting really long.

Signed-off-by: Gilles Peskine <[email protected]>
Signed-off-by: Gilles Peskine <[email protected]>
Make it large enough for reasonable ML-DSA tests.

Signed-off-by: Gilles Peskine <[email protected]>
For this prototype, add my personal fork. When we do the official
integration, we'll use a fork in the Mbed-TLS organization.

Point to the head of `main` as of a few days ago, which is a little past the
1.0.0-alpha release.

Signed-off-by: Gilles Peskine <[email protected]>
Include `drivers/pqcp/include` everywhere.

Build `drivers/pqcp/src/*.c`.

Signed-off-by: Gilles Peskine <[email protected]>
These options are transitory. Eventually we'll want to deduce the MLDSA
build options from `PSA_WANT_xxx` and `MBEDTLS_PSA_ACCEL_xxx`.

Signed-off-by: Gilles Peskine <[email protected]>
Define options for mldsa-native that are visible both when building the code
and when using it inside TF-PSA-Crypto.

Signed-off-by: Gilles Peskine <[email protected]>
Test cases generated by `framework/scripts/generate_mldsa_tests.py` from
https://github.com/Mbed-TLS/mbedtls-framework at
74bd06068ba0011e5348860b19516c5008fff2b5.

Signed-off-by: Gilles Peskine <[email protected]>
Implementation of Pure ML-DSA-87 (`PSA_ALG_ML_DSA` with bits-87) on top of
mldsa-native.

Basic unit tests: positive test cases, negative test cases.

Positive test cases generated by `framework/scripts/generate_mldsa_tests.py`
from https://github.com/Mbed-TLS/mbedtls-framework at
74bd06068ba0011e5348860b19516c5008fff2b5.

Signed-off-by: Gilles Peskine <[email protected]>
…-shake-prototype

* Reconcile .../531 changing `${TF_PSA_CRYPTO_DIR}` to
  `${PROJECT_SOURCE_DIR}` with other changes, both where there were
  conflicts and in the new file `drivers/pqcp/CMakeLists.txt`.
* In `drivers/pqcp/CMakeLists.txt`, do an additional change made in
  similar files: add `${PROJECT_BINARY_DIR}/include` to
  `target_include_directories`.
Use `MBEDTLS_PSA_BUILTIN_ALG_SHAKEnnn` dependencies for built-in library code and
tests of the built-in code, not `PSA_WANT_ALG_SHAKEnnn`.

Signed-off-by: Gilles Peskine <[email protected]>
If the new compile-time option `TF_PSA_CRYPTO_PQCP_MLDSA_OWN_SHAKE` is
enabled, keep using the SHAKE (FIPS 202) implementation from mldsa-native,
which is optimized for mldsa-native and especially for high-end processors.

If the option is disabled, use our own SHAKE implementation from `sha3.c`.
Automatically enable it if needed. For simplicity, only provide a basic
implementation: I haven't tried implementing the fips202x4 interface that
might provide a performance benefit.

Signed-off-by: Gilles Peskine <[email protected]>
No behavior change.

Signed-off-by: Gilles Peskine <[email protected]>
Add the compilation option and the operation structure types. The
implementation will follow.

Signed-off-by: Gilles Peskine <[email protected]>
Test setup() together with the one-shot interface.

Add new tests for multipart updates, copying existing test data.

Signed-off-by: Gilles Peskine <[email protected]>
@gilles-peskine-arm gilles-peskine-arm added the needs-design-approval Needs design discussion / approval label Dec 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-design-approval Needs design discussion / approval

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants