Apache Commons logo Commons Crypto™ logo

Apache Commons Crypto

Apache Commons Crypto is a cryptographic library optimized with AES-NI (Advanced Encryption Standard New Instructions). Commons Crypto provides Java APIs at the cipher level and Java stream level. Developers can implement high performance AES encryption/decryption with minimum coding and effort. Please note that Commons Crypto doesn't implement the cryptographic algorithm such as AES directly, it wraps OpenSSL and JCE.

Features

  • Cipher API for low level cryptographic operations.
  • Secure true random number generator.
  • Java stream API for high level stream encryption/decryption.
  • High performance AES encryption/decryption optimized with Intel AES-NI.
  • Portable across various operating systems (currently only Linux/Mac OS/Windows); Apache Commons Crypto loads the library according to your machine environment (using system properties, os.name and os.arch).
  • Simple usage. Add the commons-crypto-(version).jar file to your classpath.

Documentation

An overview of the functionality is provided in the user guide. Various project reports are also available.

The Javadoc API documents are available online:

The git repository can be browsed.

Releases

  • Crypto 1.2.0 (mirrors) requires Java 1.8 and OpenSSL 1.1.x (should also work with 1.0.x)
  • Crypto 1.1.0 (archives) requires Java 1.8, built and tested with:
    • darwin64-x86_64-cc; OpenSSL 1.1.1g
    • debian-amd64; OpenSSL 1.0.1f
    • debian-amd64; OpenSSL 1.1.1g
    • debian-arm64; OpenSSL 1.1.1f
    • linux-aarch64; OpenSSL 1.0.2k-fips
    • Linux x86_64; OpenSSL 1.1.1
    • Windows 64 (mingw64); OpenSSL 1.1.1d
  • Crypto 1.0.0 (archives) requires Java 1.7.

See the Download Page for the latest releases.

Change reports are also available.

For previous releases, see the Apache Archive

Support

The commons mailing lists act as the main support forum. The user list is suitable for most library usage queries. The dev list is intended for the development discussion. Please remember that the lists are shared between all commons components, so prefix your email by [crypto].

Issues may be reported via ASF JIRA.