Replace crypto_scalarmult with TweetNaCl version #16
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.
Before we had signatures, I ported crypto_scalarmult not from TweetNaCl, but from NaCl's reference implementation. Now that we have all needed primitives, which are used in ed25519, we can also replace curve25519 with the port of TweetNaCl's version.
It is around 5x slower. Since the goal of this implementation is not speed, but auditability, it's fine. Instead of stuffing faster implementation into nacl.js, we should create nacl-fast.js, a drop-in replacement of nacl.js with faster implementation of Curve25519 (which is being replaced by this pull request) and faster XSalsa20 (which is already lying somewhere on my hard drive).