Skip to content

Conversation

@NikolaRHristov
Copy link

Manually checked properties

  • Generated Github workflow (run .github/workflows/generate_workflows.py) (new schemes)
  • No stringification macros
  • Output-parameter pointers in functions are on the left
  • Negative return values on failure of API functions (within restrictions of FO transform).
  • variable declarations at the beginning (except in for (size_t i=...)
  • Optional:
    • All integer types are of fixed size, using stdint.h types (including uint8_t instead of unsigned char)
    • Integers used for indexing are of size size_t

thomwiggers and others added 30 commits February 16, 2022 14:15
Update dilithium/{clean,avx}. Resolves #421
CryptGenRandom expects DWORD
Use a package to load the correct windows API
Fix a bunch of clang-tidy 12 errors
Remove schemes that are no longer under consideration by NIST
[skip ci]

Close #374
Fix HQC C aliasing violation
mkannwischer and others added 30 commits October 15, 2024 10:43
Fix type of steps buffer in sphincs merkle.c
SPHINCS+ gcc14 errors: unsigned -> uint32_t
Make noexecstack annotation Linux-only
Use more compatible assembly syntax
Embed ___GNUC_PREREQ macro as some toolchains lack features.h
ML-DSA requires SHA3 support on Aarch64
Using the same `python3` executable that is executing the test file
itself to run `generate_workflows.py` allows the test to succeed even
when the first `python3` binary in the user's `$PATH` is not the same.
ML-DSA currently does not implement some required parts of the API as
function symbols and instead only provides function-like macros. This
patch replaces the macros with functions so that users can construct
function pointers to them.

Fixes: #576
This test ensures that the common API functions are exported symbols, as
opposed to being compile-time macros or so. It does not currently cover
the entire API surface but would nevertheless have caught an issue in
the past.
Use correct python3 executable in test_workflows
Implement missing function symbols for ML-DSA
I apparently forgot to replace the macros in two of the nine `api.h`
files of the ML-DSA implementations in commit
ae29fd8. The previous patch did indeed
fix the issue at hand, which was about missing function symbols, because
the function symbols are indeed declared in `sign.h` and defined in
`sign.c` of each implementation. However, consumers of `api.h` would
still see the old macros for the clean and the avx2 implementations of
ML-DSA-87 and thus still will not be able to construct function pointers
to the relevant functions when including these particular header files.

Refs: #576
Refs: #591
This adds a simple test routine to `functest.c` that can be evaluated
entirely at compile time and simply ensures that the different API
functions used by the test can be assigned to function pointers of the
expected function signatures.
Replace macros in ML-DSA-87 clean/avx2 API and add regression test
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.