Skip to content

changes for the ed25519 verification algorithm#60

Merged
algofoundation merged 4 commits intoalgorandfoundation:masterfrom
id-ms:ed25519-changes
Feb 1, 2022
Merged

changes for the ed25519 verification algorithm#60
algofoundation merged 4 commits intoalgorandfoundation:masterfrom
id-ms:ed25519-changes

Conversation

@id-ms
Copy link
Copy Markdown
Contributor

@id-ms id-ms commented Jan 13, 2022

No description provided.

Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
Comment thread dev/crypto.md Outdated
@algofoundation algofoundation merged commit bbe7001 into algorandfoundation:master Feb 1, 2022
cce added a commit to algorand/go-algorand that referenced this pull request Sep 22, 2025
This adds a pure-Go ed25519 BatchVerifier implementation based on the ed25519consensus library, with additional checks to preserve our ed25519 validation criteria, last updated in #3031.

Like our libsodium batch verification implementation, the IsCanonicalY check here is also based on the "Taming the Many EdDSAs" paper in https://eprint.iacr.org/2020/1244

New tests added to compare ed25519 criteria results match our existing libsodium- and ed25519-donna-based batch verification implementation (from #3031 and defined in algorandfoundation/specs#60). New test helpers run test vectors with different batch sizes, taken from
- 12 edge cases from "Taming the many EdDSAs" Appendix C, Table 6c, also used in our libsodium fork's tests in batch verification: add ed25519 batch verification implementation #3031
- 1025 successful cases from our libsodium fork's tests, also added in batch verification: add ed25519 batch verification implementation #3031.
- 196 edge cases used to draw the 14x14 grid visualizations from the blog post "It's 255:19AM. Do you know what your validation criteria are?" and used in ed25519consensus
- 768 edge cases from the Go crypto package's crypto/ed25519/ed25519vectors_test.go
algorandskiy pushed a commit to algorandskiy/go-algorand that referenced this pull request Sep 25, 2025
This adds a pure-Go ed25519 BatchVerifier implementation based on the ed25519consensus library, with additional checks to preserve our ed25519 validation criteria, last updated in algorand#3031.

Like our libsodium batch verification implementation, the IsCanonicalY check here is also based on the "Taming the Many EdDSAs" paper in https://eprint.iacr.org/2020/1244

New tests added to compare ed25519 criteria results match our existing libsodium- and ed25519-donna-based batch verification implementation (from algorand#3031 and defined in algorandfoundation/specs#60). New test helpers run test vectors with different batch sizes, taken from
- 12 edge cases from "Taming the many EdDSAs" Appendix C, Table 6c, also used in our libsodium fork's tests in batch verification: add ed25519 batch verification implementation algorand#3031
- 1025 successful cases from our libsodium fork's tests, also added in batch verification: add ed25519 batch verification implementation algorand#3031.
- 196 edge cases used to draw the 14x14 grid visualizations from the blog post "It's 255:19AM. Do you know what your validation criteria are?" and used in ed25519consensus
- 768 edge cases from the Go crypto package's crypto/ed25519/ed25519vectors_test.go
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants