secp256k1/ecdsa: Add compact signature tests.#2915
Merged
davecgh merged 2 commits intodecred:masterfrom Apr 7, 2022
Merged
Conversation
dnldd
approved these changes
Apr 5, 2022
dajohi
approved these changes
Apr 6, 2022
JoeGruffins
approved these changes
Apr 7, 2022
rstaudt2
approved these changes
Apr 7, 2022
This adds tests for compact signature generation and associated public key recovery for both the positive and negative paths. The following is a high-level overview of the changes: - Add tests to ensure test data that was independently verified with the Sage computer algebra system produces the expected results - Add tests which are specifically designed to exercise all of the recovery failure paths
This reworks the tests that deal with signing random messages with random private keys and recovering the associated public key to make them more consistent with modern practices in the code as well as to expand the testing methodology to include additional assurances. Specifically, the relevant test now: - Signs random representative hashes instead of a fixed non-hashed message - Signs, recovers, and verifies both the compressed and uncompressed public key variants for each iteration - Ensures mutating a random bit in the good signature results in failure to recover the original public key - Ensures mutating a random bit in the message hash that was originally signed results in failure to recover the original public key from the good signature
daaaeba to
b2be01a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This requires #2914.
This adds tests for compact signature generation and associated public key recovery for both the positive and negative paths and reworks the tests that deal with signing random messages with random private keys and recovering the associated public key to make them more consistent with modern practices in the code as well as to expand the testing methodology to include additional assurances.
The following is a high-level overview of the changes: