feat(tests): add critical BLS tests with invalid point coordinates #2000
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.
🗒️ Description
This adds test cases for BLS precompiles where one of the point (G1/G2) coordinates is "slightly" above the value of the field prime P. The "slightly above" means that a valid point is modified by adding P to one of its field elements. Such test case has a chance of detecting an invalid implementation where the field element is loaded as 384-bit integer and converted to the Montgomery form. The Montgomery form round-trip has the effect of computing a value mod P, i.e.
(x + P) % P
givesx
and the invalid point becomes valid.In the similar way test cases may be extended to other BLS precompiles. However, I assume BLS precompiles implementations share the input validation code.
🔗 Related Issues or PRs
N/A.
✅ Checklist
tox
checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
type(scope):
.mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.@ported_from
marker.