jnacl is a library that implements some of Daniel J. Bernstein’s NaCl encryption primitives. The functions are written in pure Java, and are therefore very straight-forward to make use of in a Java application without the use of native libraries and bindings.
The following primitives are included:
curve25519
: Elliptic curve key agreementsalsa20
: Stream cipherpoly1305
: Message authenticator (MAC)It is open-source and available on GitHub.
Even though it has not been comprehensively benchmarked, jnacl performs exceptionally well, even on resource-constrained Android platforms.