Skip to content

UPSTREAM PR #30863: Add valgrind CT support to ML-DSA#675

Open
loci-dev wants to merge 5 commits into
mainfrom
loci/pr-30863-ml-dsa-ct-validation
Open

UPSTREAM PR #30863: Add valgrind CT support to ML-DSA#675
loci-dev wants to merge 5 commits into
mainfrom
loci/pr-30863-ml-dsa-ct-validation

Conversation

@loci-dev
Copy link
Copy Markdown

Note

Source pull request: openssl/openssl#30863

Also slightly refactor the ML-KEM version to share the necesasry defines, and add a daily CI run to check both (presently, for just some platforms with known working valgrind support).

Checklist
  • documentation is added or updated
  • tests are added or updated

Viktor Dukhovni added 5 commits April 16, 2026 20:02
Also slightly refactor the ML-KEM version to share the necesasry
defines, and add a daily CI run to check both (presently, for just some
platforms with known working valgrind support).
Don't declassify rho_prime, that needs to stay protected.
Move constish_time_non_zero() to <internal/constant_time.h> as requested
by reviewers, and rename it constish_time_true(), better reflecting the
expected 0/1 boolean input.
- New CONSTTIME_SECRET_VECTOR() and CONSTTIME_DECLASSIFY_VECTOR() macros
  simplify CT labeling of ML-DSA vectors and avoid incorrect sizing.

- New constant_time_declassify_u32() inline function mirrors a similar
  function in BoringSSL, with this we declassify the output pass/fail
  of rejection tests, rather than its numeric inputs, matching similar
  code in BoringSSL.
Use rank not 2 in ML-KEM decap classify_bytes
@loci-dev loci-dev force-pushed the main branch 5 times, most recently from 421b135 to 770bf14 Compare April 28, 2026 03:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant