# Is Curve25519-java secure?

I have only about 2 weeks of cryptography experience mostly in the form of questions on bitcoin.se.

Is Curve25519-java up to date with current Curve25519 standards?

Is Curve25519 itself secure?

In other words, is it safe to use as it a cryptocurrency key-generation and transaction signing & verification algorithm?

-
As far as we know, Curve25519 itself is secure. But Curve25519 as specified by Bernstein only supports key-exchange, not signing. For signing I recommend using the related Ed25519 instead. –  CodesInChaos Jan 6 at 15:01
@CodesInChaos Thank you CodesInChaos! That's very interesting, considering that the published Nextcoin code uses Curve25519-java, but they did say that they were putting in 3 Easter Eggs to encourage scrutiny. Could this be one? They did add a few lines for signing & verification in the Crypto class. Thank-you very much in advance! bitbucket.org/JeanLucPicard/nxt-public/src/… –  Gracchus Jan 6 at 15:04
Curve25519-java supports signing, but that wasn't in the original code and thus hasn't seen much review. It's also missing the other Ed25519 goodies, such as deterministic signatures, batch verification, or the faster fixed base multiplication. –  CodesInChaos Jan 6 at 15:18
@CodesInChaos Thank you CodesInChaos! I will definitely go with Ed25519! The first result for "Ed25519 java" is github.com/k3d3/ed25519-java Would mind taking a quick look to see if it's legitimate? I simply do not have the experience to detect even a problem even at a superficial level. Thank you so very much in advance! (PS I think you may have found one of Nextcoin's Easter Eggs if not an unintentional flaw!) –  Gracchus Jan 6 at 15:24
That Ed25519 implementation is glacially slow. Both the Curve25519-java implementation and the ed25519-java you linked aren't constant time, and thus potentially open to timing attacks (probably not a practical issue in this context). –  CodesInChaos Jan 6 at 15:31
show 1 more comment