| Apache Commons Crypto 1.2.0 |
| RELEASE NOTES |
| |
| The Apache Commons Crypto team is pleased to announce the release of Apache Commons Crypto 1.2.0. |
| |
| Apache Commons Crypto is a cryptographic library optimized with AES-NI (Advanced Encryption Standard New Instructions). |
| It provides Java API for both the cipher level and Java stream level. |
| Developers can use it to implement high-performance AES encryption/decryption with minimum code and effort. |
| Please note that Crypto doesn't implement the cryptographic algorithm such as AES directly. |
| It wraps OpenSSL and JCE which implements the algorithms. |
| |
| Features |
| -------- |
| |
| 1. Cipher API for low level cryptographic operations. |
| 2. Java stream API (CryptoInputStream/CryptoOutputStream) for high level stream encryption/decryption. |
| 3. Both optimized with high performance AES encryption/decryption. (1400 MB/s - 1700 MB/s throughput in modern Xeon processors). |
| 4. JNI-based implementation to achieve comparable performance to the native C/C++ version based on OpenSsl. |
| 5. Portable across various operating systems (currently only Linux/MacOSX/Windows); |
| Apache Commons Crypto loads the library according to your machine environment (it checks system properties, `os.name` and `os.arch`). |
| 6. Simple usage. Add the commons-crypto-(version).jar file to your classpath. |
| |
| |
| Export restrictions |
| ------------------- |
| |
| This distribution includes cryptographic software. |
| The country in which you currently reside may have restrictions |
| on the import, possession, use, and/or re-export to another country, |
| of encryption software. BEFORE using any encryption software, |
| please check your country's laws, regulations and policies |
| concerning the import, possession, or use, and re-export of |
| encryption software, to see if this is permitted. |
| See <http://www.wassenaar.org/> for more information. |
| |
| The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), |
| has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, |
| which includes information security software using or performing |
| cryptographic functions with asymmetric algorithms. |
| The form and manner of this Apache Software Foundation distribution makes |
| it eligible for export under the License Exception |
| ENC Technology Software Unrestricted (TSU) exception |
| (see the BIS Export Administration Regulations, Section 740.13) |
| for both object code and source code. |
| |
| The following provides more details on the included cryptographic software: |
| |
| * Commons Crypto use [Java Cryptography Extension](http://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) provided by Java |
| * Commons Crypto link to and use [OpenSSL](https://www.openssl.org/) ciphers |
| |
| Minor release |
| (Java 8, OpenSSL 1.1.1) |
| |
| Changes in this version include: |
| |
| Fixed Bugs: |
| o CRYPTO-160: Enhance the quality of JavaCryptoRandom. |
| o CRYPTO-160: Package-private implementations of CryptoRandom extends java.util.Random but should not. Thanks to Gary Gregory. |
| o CRYPTO-163: Makefile does not recompile objects if local include files are changed |
| o CRYPTO-154: License header should be a plain comment #113. |
| o Fix PMD warning and don't init to defaults #128. Thanks to Arturo Bernal. |
| o Minor changes #135. Thanks to Arturo Bernal. |
| o Port from pre-Java 8 javah tool to Java 8 and up javac with the -h option. Thanks to Gary Gregory. |
| o Fix build on Java 11. Thanks to Gary Gregory. |
| o Fix build on Java 17. Thanks to Gary Gregory. |
| o CRYPTO-155: Minor improvement #115, #125. Thanks to Arturo Bernal. |
| o PositionedCryptoInputStream does not close its CryptoCipher instances. Thanks to Gary Gregory. |
| o Validate return value from OpenSslNativeJna.EVP_CIPHER_CTX_set_padding(). Thanks to Gary Gregory. |
| o Validate return value from OpenSslNativeJna.ENGINE_finish(). Thanks to Gary Gregory. |
| o Validate return value from OpenSslNativeJna.ENGINE_free(). Thanks to Gary Gregory. |
| o Add github/codeql-action 2 #159. Thanks to Gary Gregory, Dependabot. |
| o Add AES utility class. Thanks to Gary Gregory, Dependabot. |
| |
| Changes: |
| o Bump actions/cache from 2.1.7 to 3.0.9 #150, #184. Thanks to Dependabot, Gary Gregory. |
| o Bump actions/checkout from 2 to 3.1.0 #149, #187. Thanks to Dependabot, Gary Gregory. |
| o Bump actions/setup-java from 2 to 3.6.0 #190. Thanks to Gary Gregory, Dependabot. |
| o Bump actions/upload-artifact from 3.1.0 to 3.1.1 #192. Thanks to Dependabot. |
| o CRYPTO-151: Migrate to Junit 5.9.1 #114, #171, #183. Thanks to Arturo Bernal, Dependabot. |
| o Bump jna from 5.5.0 to 5.13.0 #123, #139, #153, #167, #209. Thanks to Dependabot. |
| o Bump commons.japicmp.version from 0.14.3 to 0.17.1. Thanks to Gary Gregory. |
| o Bump maven-checkstyle-plugin from 3.1.1 to 3.2.0 #130, #176. Thanks to Dependabot. |
| o Bump jmh.version from 1.12 to 1.36 #119, #157, #194. Thanks to Dependabot. |
| o Bump exec-maven-plugin from 1.6.0 to 3.1.0 #121, #170. Thanks to Dependabot. |
| o Bump maven-antrun-plugin from 1.8 to 3.1.0 #120, #158. Thanks to Dependabot. |
| o Bump commons.japicmp.version from 0.15.2 to 0.15.7 #138. Thanks to Gary Gregory. |
| o Bump jacoco-maven-plugin from 0.6.6 to 0.8.8 #138, #154. Thanks to Gary Gregory. |
| o Bump maven-javadoc-plugin from 3.2.0 to 3.4.1 #138. Thanks to Gary Gregory. |
| o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #140, #177, #178. Thanks to Gary Gregory. |
| o Bump pmd from 6.44.0 to 6.52.0. Thanks to Gary Gregory. |
| o Bump taglist-maven-plugin from 2.4 to 3.0.0 #147. Thanks to Dependabot. |
| o Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.3.0 #152, #160, #168, #174, #179, #189, #193. Thanks to Dependabot. |
| o Bump commons-parent from 52 to 56 #182, #196, #204. Thanks to Gary Gregory, Dependabot. |
| o Bump commons.surefire.version from 3.0.0-M5 to 3.0.0-M7. Thanks to Gary Gregory. |
| o Bump maven-resources-plugin from 3.2.0 to 3.3.0 #172. Thanks to Dependabot. |
| o Bump jaxb-impl from 2.3.6 to 2.3.7. Thanks to Gary Gregory. |
| |
| |
| Historical list of changes: https://commons.apache.org/proper/commons-crypto/changes-report.html |
| |
| For complete information on Apache Commons Crypto, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Commons Crypto website: |
| |
| https://commons.apache.org/proper/commons-crypto/ |
| |
| Download page: https://commons.apache.org/proper/commons-crypto/download_crypto.cgi |
| |
| Have fun! |
| -Apache Commons Team |
| |
| ----------------------------------------------------------------------------- |
| |
| Apache Commons Crypto 1.1.0 |
| RELEASE NOTES |
| |
| The Apache Commons Crypto team is pleased to announce the release of Apache Commons Crypto 1.1.0. |
| |
| Apache Commons Crypto is a cryptographic library optimized with AES-NI (Advanced Encryption |
| Standard New Instructions). It provides Java API for both cipher level and Java stream level. |
| Developers can use it to implement high performance AES encryption/decryption with the minimum |
| code and effort. Please note that Crypto doesn't implement the cryptographic algorithm such as |
| AES directly. It wraps to OpenSSL or JCE which implement the algorithms. |
| |
| Features |
| -------- |
| |
| 1. Cipher API for low level cryptographic operations. |
| 2. Java stream API (CryptoInputStream/CryptoOutputStream) for high level stream encryption/decryption. |
| 3. Both optimized with high performance AES encryption/decryption. (1400 MB/s - 1700 MB/s throughput in modern Xeon processors). |
| 4. JNI-based implementation to achieve comparable performance to the native C/C++ version based on OpenSsl. |
| 5. Portable across various operating systems (currently only Linux/MacOSX/Windows); |
| Apache Commons Crypto loads the library according to your machine environment (it checks system properties, `os.name` and `os.arch`). |
| 6. Simple usage. Add the commons-crypto-(version).jar file to your classpath. |
| |
| |
| Export restrictions |
| ------------------- |
| |
| This distribution includes cryptographic software. |
| The country in which you currently reside may have restrictions |
| on the import, possession, use, and/or re-export to another country, |
| of encryption software. BEFORE using any encryption software, |
| please check your country's laws, regulations and policies |
| concerning the import, possession, or use, and re-export of |
| encryption software, to see if this is permitted. |
| See <http://www.wassenaar.org/> for more information. |
| |
| The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), |
| has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, |
| which includes information security software using or performing |
| cryptographic functions with asymmetric algorithms. |
| The form and manner of this Apache Software Foundation distribution makes |
| it eligible for export under the License Exception |
| ENC Technology Software Unrestricted (TSU) exception |
| (see the BIS Export Administration Regulations, Section 740.13) |
| for both object code and source code. |
| |
| The following provides more details on the included cryptographic software: |
| |
| * Commons Crypto use [Java Cryptography Extension](http://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) provided by Java |
| * Commons Crypto link to and use [OpenSSL](https://www.openssl.org/) ciphers |
| |
| Minor release (Java 8 and OpenSSL 1.1.1) |
| |
| Changes in this version include: |
| |
| New features: |
| o CRYPTO-59: Support Galois/Counter Mode (GCM). |
| o CRYPTO-131: Provide FAQ page. |
| o CRYPTO-139: Add support for AARCH64. |
| o CRYPTO-139: Make org.apache.commons.crypto.stream.input.Input extend Closeable. |
| o CRYPTO-139: Make org.apache.commons.crypto.stream.output.Output extend Closeable. |
| |
| Fixed Bugs: |
| o CRYPTO-125: CryptoOutputStream does not call write in a loop when underlying channel works in non-block mode. |
| o CRYPTO-134: CipherByteBufferExample should not truncate the string |
| o CRYPTO-137: Error compiling on Win64 with Mingw. |
| o CRYPTO-138: CipherByteArrayExample fails on OpenSSL 1.1.0g with java.lang.UnsatisfiedLinkError: EVP_CIPHER_CTX_cleanup. |
| o CRYPTO-141: Errors in native code can leave Java wrappers in bad state. |
| o CRYPTO-141: Intermittent Failure in GCMCipherTest#testGcmTamperedData() #105. Thanks to Alex Remily. |
| |
| Changes: |
| o Add support for ARM. |
| o Add support for ARM-HF. |
| o Reset JAVA_HOME for aarch64 and ppc builds. Turn off maven-enforcer for Xenial builds #104. Thanks to Geoffrey Blake. |
| o Update maven-checkstyle-plugin 3.0.0 -> 3.1.1. |
| o Update commons-parent 51 -> 52. |
| o Update maven-resources-plugin 3.1.0 -> 3.2.0. |
| o Update Apache CLIRR to JApiCmp. |
| o Update FindBugs to SpotBugs. |
| |
| |
| Testing: |
| - darwin64-x86_64-cc; OpenSSL 1.1.1g; thanks to Gary Gregory, Alex Remily. |
| - debian-amd64; OpenSSL 1.0.1f; thanks to Gary Gregory. |
| - debian-amd64; OpenSSL 1.1.1g; thanks to Bruno P. Kinoshita. |
| - Linux x86_64; OpenSSL 1.1.1; thanks to Alex Remily. |
| - Windows 64 (mingw64); OpenSSL 1.1.1d; thanks to Alex Remily. |
| - linux-aarch64; OpenSSL 1.0.2k-fips; thanks to Geoffrey Blake. |
| - linux-riscv64; OpenSSL 1.1.1f; thanks to Ludovic Henry. |
| - debian-arm64; OpenSSL 1.1.1f; thanks to Geoffrey Blake. |
| |
| Historical list of changes: https://commons.apache.org/proper/commons-crypto/changes-report.html |
| |
| For complete information on Apache Commons Crypto, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Commons Crypto website: |
| |
| https://commons.apache.org/proper/commons-crypto/ |
| |
| ----------------------------------------------------------------------------- |
| |
| Apache Commons Crypto 1.0.0 |
| RELEASE NOTES |
| |
| The Apache Commons Crypto team is pleased to announce the release of Apache Commons Crypto 1.0.0 |
| |
| Apache Commons Crypto is a cryptographic library optimized with AES-NI (Advanced Encryption |
| Standard New Instructions). It provides Java API for both cipher level and Java stream level. |
| Developers can use it to implement high performance AES encryption/decryption with the minimum |
| code and effort. Please note that Crypto doesn't implement the cryptographic algorithm such as |
| AES directly. It wraps to OpenSSL or JCE which implement the algorithms. |
| |
| Features |
| -------- |
| |
| 1. Cipher API for low level cryptographic operations. |
| 2. Java stream API (CryptoInputStream/CryptoOutputStream) for high level stream encryption/decryption. |
| 3. Both optimized with high performance AES encryption/decryption. (1400 MB/s - 1700 MB/s throughput in modern Xeon processors). |
| 4. JNI-based implementation to achieve comparable performance to the native C/C++ version based on OpenSsl. |
| 5. Portable across various operating systems (currently only Linux/MacOSX/Windows); |
| Apache Commons Crypto loads the library according to your machine environment (it checks system properties, `os.name` and `os.arch`). |
| 6. Simple usage. Add the commons-crypto-(version).jar file to your classpath. |
| |
| |
| Export restrictions |
| ------------------- |
| |
| This distribution includes cryptographic software. |
| The country in which you currently reside may have restrictions |
| on the import, possession, use, and/or re-export to another country, |
| of encryption software. BEFORE using any encryption software, |
| please check your country's laws, regulations and policies |
| concerning the import, possession, or use, and re-export of |
| encryption software, to see if this is permitted. |
| See <http://www.wassenaar.org/> for more information. |
| |
| The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), |
| has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, |
| which includes information security software using or performing |
| cryptographic functions with asymmetric algorithms. |
| The form and manner of this Apache Software Foundation distribution makes |
| it eligible for export under the License Exception |
| ENC Technology Software Unrestricted (TSU) exception |
| (see the BIS Export Administration Regulations, Section 740.13) |
| for both object code and source code. |
| |
| The following provides more details on the included cryptographic software: |
| |
| * Commons Crypto use [Java Cryptography Extension](http://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) provided by Java |
| * Commons Crypto link to and use [OpenSSL](https://www.openssl.org/) ciphers |
| |
| Initial release |
| =============== |
| The initial release is known to build on Linux, MacOS/X and Windows (using MinGW). |
| It may build on other systems. |
| Please note that the JNA interface to OpenSSL is a preliminary release. |
| It is relatively slow, but may be of use on systems which aren't yet supported by the JNI code. |
| |
| Changes in this version include: |
| |
| New features: |
| o CRYPTO-68: Enable common code quality reports. |
| o CRYPTO-11: User guide documentation . Thanks to Ke Jia, Jerry Chen. |
| o CRYPTO-12: Rename CryptoInputStream to CipherInputStream and CryptoOutputStream to CipherOutputStream . Thanks to Xianda Ke. |
| o CRYPTO-13: The API differences between apache.commons.crypto and JCE . Thanks to Xianda Ke. |
| o CRYPTO-40: Remove the full qualified package name for shadowed classes . Thanks to Xianda Ke, Jerry Chen. |
| o CRYPTO-42: Remove the header files required for cross platform compilation . Thanks to Dian Fu, Jerry Chen. |
| o CRYPTO-45: Document how to build Commons Crypto . Thanks to Dian Fu, Benedikt Ritter. |
| o CRYPTO-48: Setup site build as defined in commons-parent pom . Thanks to Benedikt Ritter, Dapeng Sun. |
| |
| Fixed Bugs: |
| o CRYPTO-65: Warnings compiling on MacOSX - JNIEXPORT redefined. Thanks to sebb. |
| o CRYPTO-29: Make sure Cipher.ENCRYPT_MODE is consistent with JDK . Thanks to Dian Fu, Sebb. |
| o CRYPTO-30: Mutable fields should be private . Thanks to Ferdinand Xu, Sebb. |
| o CRYPTO-34: JavaSecureRandom should throw Exception if it cannot create the instance . Thanks to Dapeng Sun, Sebb. |
| o CRYPTO-47: Fix build of MAC_OS . Thanks to Dapeng Sun. |
| o CRYPTO-49: CRYPTO-1 Fix build of X86 . Thanks to Dapeng Sun. |
| o CRYPTO-57: Fix build on Mac OS Thanks to Benedikt Ritter. |
| o CRYPTO-61: Fix possible NPE in OpenSslCryptoRandom Thanks to Hendrik Saly. |
| o CRYPTO-54: US Export classification and ECCN registration for encryption Thanks to Stian Soiland-Reyes, Jerry Chen, Benedikt Ritter, Gary Gregory. |
| |
| Changes: |
| o CRYPTO-26: Utility classes should not have public constructors . Thanks to Dapeng Sun. |
| o CRYPTO-28: Update the README.md of Apache Commons Crypto . Thanks to Ferdinand Xu, Ke Jia. |
| o CRYPTO-3: Change default cipher as OpenSslCipher . Thanks to ferdinand xu. |
| o CRYPTO-31: Make fields final wherever possible . Thanks to Ferdinand Xu, Sebb. |
| o CRYPTO-33: SecureRandom shadows JVM class . Thanks to Xianda Ke, Sebb. |
| o CRYPTO-38: Always use blocks . Thanks to Dapeng Sun, Gary Gregory. |
| o CRYPTO-7: Rename source code in Chimera to Apache name space . Thanks to ferdinand xu. |
| o CRYPTO-62: Add multithreaded related tests Thanks to Hendrik Saly. |
| |
| |
| Historical list of changes: https://commons.apache.org/proper/commons-crypto/changes-report.html |
| |
| For complete information on Apache Commons Crypto, including instructions on how to submit bug reports, |
| patches, or suggestions for improvement, see the Apache Commons Crypto website: |
| |
| https://commons.apache.org/proper/commons-crypto/ |