ecdsa: add RFC6979 test (plus dev::curve
module)
#136
Merged
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.
Adds a test that the RFC6979 implementation produces the correct ephemeral scalar (
k
) for the test vector in RFC 6979 Appendix 2.5:https://tools.ietf.org/html/rfc6979#appendix-A.2.5
This unfortunately requires basic scalar support, as RFC6979 uses rejection sampling to select a
k
value, so this commit also contains the rudiments of a P-256 scalar implementation necessary to implement the test.Hopefully this will be useful for testing other aspects of ECDSA, or potentially ensuring that the scalars of an ECDSA signature are in-range generically, even if no curve arithmetic backend is available.