Bugfix: Inconsistent EDPoint representation#28
Merged
Conversation
This branch fixes 2 issues related to EDPoint representation. First and foremost, it addresses an issue with the modulo P operations missing in some cases and, as a result, the parameter T being inconsistently calculated. Secondly, deriving an ED25519PublicKey from an ED25519PrivateKey now ensures the underlying EDPoint is scaled to affine coordinates, allowing us to easily compare any actually derived ED25519PublicKey with the expected results of EDPoint.fromBytes(). List of changes: - updated ed25519_private_key.dart, so that publicKey getter always constructs the public key from an EDPoint scaled to affine coordinates, ensuring consistency with the EDPoint form produced by EDPoint.fromBytes() - updated ed_point.dart, adding modulo P operations where they were missing, which also ensures consistency of the fromBytes() default constructor with the EDPoint form produced by scaleToAffineCoordinates(), as well as fixing an incorrect value for the parameter T in * operator - unrelated with the domain: fixed solana-specific ed25519_derivator_test.dart using Ethereum derivation path in tests
nemoforte
approved these changes
Dec 15, 2025
kronikarz
approved these changes
Dec 15, 2025
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 branch fixes 2 issues related to EDPoint representation. First and foremost, it addresses an issue with the modulo P operations missing in some cases and, as a result, the parameter T being inconsistently calculated. Secondly, deriving an ED25519PublicKey from an ED25519PrivateKey now ensures the underlying EDPoint is scaled to affine coordinates, allowing us to easily compare any actually derived ED25519PublicKey with the expected results of EDPoint.fromBytes().
List of changes: