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.
Currently,
DynResidue
does not support zeroizing. This PR implements it, albeit probably controversially.Adding zeroizing suppport seems tricky, in part because modulus parameters are stored in the struct. The question becomes what to do with them. Are they left alone? Are they set internally to all zeros? Are they set to some nominal but valid modulus?
The case for
Residue
is more clear, since its modulus parameters are generic.This PR makes the design choice to leave the
DynResidue
parameters alone, which has two potential advantages:Residue
andDynResidue
DynResidue
is still valid using its original parametersHowever, leaving the modulus parameters in memory may not be in line with the intent of the trait.
I'd appreciate any thoughts or discussion on the best way to handle this, or if it shouldn't be implemented at all.