Apache Commons logo Commons Crypto? logo

Proposal for Apache Commons Crypto Package


March 24, 2016

(0) Rationale

Providing Java based optimized and high performance cryptographic IO streams for the applications who wants to implement the data encryption. It also provides cipher level API to use. It does provide the openssl API integration and provide the fallback mechanism to use JCE when openssl library unavailable.

(1) Scope of the Package

This proposal is to create a package of cryptographic IO classes with the integration of OpenSSL library. It focuses on AES-NI optimizations mainly and it can be extended to other algorithms based on demand from the users later.

(1.5) Interaction With Other Packages

IO Commons Crypto relies on standard JDK 7 (or later) APIs for production deployment and on OpenSSL 1.0.1c devl libraries. It utilizes the JUnit unit testing framework, but this is of interest only to developers of the component. The functionality provided by Commons Crypto is currently in use by Apache Hadoop and Apache Spark, and both of those communities have expressed interest in changing their dependency to be on the central Commons Crypto package once it exists.

No external configuration files are utilized.

(2) Initial Source of the Package

The initial classes came from the Apache Hadoop.

The proposed package name for the new component is org.apache.commons.crypto.

(3) Required Apache Commons Resources

  • Git Repository - New repository commons-crypto
  • Mailing List - Discussions will take place on the generaldev@commons.apache.org mailing list.
    To help list subscribers identify messages of interest, it is suggested that the message subject of messages about this component be prefixed with [Crypto].
  • JIRA - New component "Crypto" under the "Commons" project.
  • Confluence FAQ - New category ¡°commons-crypto" (when available).

(4) Initial Committers

The initial committers on the Apache Commons Crypto component shall be as follows:

  • Aaron T Myers (atm@apache.org, Apache Hadoop PMC, one of the original Crypto dev team in Apache Hadoop)
  • Andrew Wang (wang@apache.org, Apache Hadoop PMC, one of the original Crypto dev team in Apache Hadoop)
  • Chris Nauroth (cnauroth@apache.org, Apache Hadoop PMC and active reviewer)
  • Colin P. McCabe (cmccabe@apache.org, Apache Hadoop PMC, one of the original Crypto dev team in Apache Hadoop)
  • Dapeng Sun (sdp@apache.org, Apache Sentry Committer, Chimera contributor)
  • Dian Fu (dianfu@apache.org, Apache Sqoop Committer, Chimera contributor)
  • Dong Chen (dongc@apache.org, Apache Hive Committer,interested on Chimera)
  • Ferdinand Xu (xuf@apache.org, Apache Hive Committer, Chimera contributor)
  • Haifeng Chen (haifengchen@apache.org, Chimera lead and code contributor)
  • Marcelo Vanzin(Apache Spark Committer, Chimera contributor)
  • Uma Maheswara Rao G(umamahesh@apache.org, Apache Hadoop PMC, One of Crypto dev/review in Apache Hadoop)
  • Yi Liu (yliu@apache.org, Apache Hadoop PMC, One of Crypto dev/review in Apache Hadoop)