Curve25519 signatures made compatible with 2.18.1 release #2774
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.
I have updated my signatures on Curve 25519 to be compatible with Botan 2.18.1 Release.
Wanted to make them compatible with 3.0 alpha straight away but from the first looks on it, additional work is needed.
Description of changes: Curve25519 is a Montgomery curve over a prime field, while Ed25519 is a Twisted Edwards curve. Further, Ed25519 is birationally equivalent to Curve25519. Here, the representations are converted on-the-fly (montgomery x-coordinate is translated into edwards y during signature verification). The sign-information is kept within the resulting signature, which would otherwise be lost.
Rationale: we use it in the GRIDNET Project (https;//gridnet.org), as the main work-horse. It's been incorporated into the GridScript programming language, usage of a single key allows for many 'cool' functionalities and makes user use only one key at any time. We've also done a JavaScript implementation of it which passes all the test-vectors.
When making signature the steps are as follows:
Once I have more time in 1-2 months I can write more detailed description and also upgrade to 3.0+ ~~for now here it is.
The initial pull-request to the master branch is here #1239
It's been all tested, also with amalgamation build (had to move some things around for it to work).