Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: reject identity keys and commitments in signatures #217

Merged
merged 1 commit into from
Feb 7, 2024

Conversation

AaronFeickert
Copy link
Contributor

Signature verification currently allows identity elements:

  • SchnorrSignature allows an identity public key
  • CommitmentSignature allows an identity commitment
  • CommitmentAndPublicKeySignature allows both

This doesn't strictly break soundness, but does remove message binding. While it shouldn't be problematic for unforgeability, it's a case that shouldn't arise from an honest signer and is easy to check for.

This PR fails signature verification if such an identity element is provided, and adds tests for each case. It does not return an error if the corresponding identity elements are provided by the signer, since this precludes useful partial signature operations.

@AaronFeickert
Copy link
Contributor Author

It should be manually checked that each test fails if the corresponding verification check is disabled, which confirms that each signature is otherwise valid.

@SWvheerden SWvheerden merged commit e755b26 into tari-project:main Feb 7, 2024
4 checks passed
@AaronFeickert AaronFeickert deleted the zero-key branch February 7, 2024 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants