Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issues:
Resolves #CryptoAlg-2726
Description of changes:
Following the inclusion of SHAKE as an extensible-output-function (XOF) in #1839, we are now able to fully support ML-DSA with SHA3/SHAKE usage within
crypto/fipsmodule
. As such, all references to the internal implementation of SHA3 (withincrypto/kyber/pqcrystals_dilithium_ref_common/fips202.{h|c}
) have been removed.Call-outs:
keccak_state
provided by the Kyber reference implementation has been replaced withKECCAK1600_CTX
absorb/update/final
have been replaced with a straight swap to AWS-LC's implementationdilithium_shake128_stream_init
,dilithium_shake128_squeeze
,dilithium_shake256_stream_init
,dilithium_shake256_squeeze
offips202.c
has been replaced with versions that call SHA3 from fipsmodule.Testing:
The testing framework is the KATs for ML-DSA, and all other ML-DSA tests completed.
#CryptoAlg-2589 design documentation provides an analysis of all
fips202.c
usage from ML-DSA, to verify that all functionality that used to be provided byfips202.c
has been replaced by this commit, the file has been removed from the library.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and the ISC license.