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.