[zk-sdk] Add input validation to sigma proof generation functions #199
+406
−294
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.
Summary of Changes
I added some extra sanity / safety checks on sigma proof logic.
I added tests for this behavior, but I realized that it is difficult to test because the proof types actually don't derive some of the basic traits like
Debug,PartialEq, andEq. So I derived these for the proof types as well (b1c5982).This change in behavior ended up breaking a unit test in the wasm crate, so I updated it in 89b5b87.
The only proofs where we allow identity inputs is the ciphertext validity proofs. Here, a public key can be the auditor's ElGamal public key in token-2022, which can be zero (identity) when the auditor is set to
None.