<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at

  https://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
  This file is used by the maven-changes-plugin to generate the release notes.
  Useful ways of finding items to add to this file are:

  1. Add items when you fix a bug or add a feature (this makes the
  release process easy :-).

  2. Do a JIRA search for tickets closed since the previous release.

  3. Use the report generated by the maven-changelog-plugin to see all
  SVN commits. Set the project.properties' maven.changelog.range
  property to the number of days since the last release.

  To generate the release notes from this file:

  mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]

  then tweak the formatting if necessary
  and commit

  The <action> type attribute can be add,update,fix,remove.
-->

<document xmlns="http://maven.apache.org/changes/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/2.0.0 https://maven.apache.org/xsd/changes-2.0.0.xsd">
  <properties>
    <title>Apache Commons Crypto Release Notes</title>
  </properties>

  <!-- NOTE:
  The description below is specially formatted so as to improve the layout of the generated release notes:
  The parsing process removes all line feeds, replacing them with a single space.
  The Velocity template in resources/templates has been enhanced to replace pairs of adjacent spaces
  with a new-line in the release notes. (These spaces are ignored when displaying HTML).
  If the output is not quite correct, check for invisible trailing spaces!

  The release notes template groups actions by type, and only extracts data for the current release.
  The changes report outputs actions in the order they appear in this file.

  To regenerate the release notes:
  mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]

  Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
   -->

  <body>
    <release version="1.3.0" date="YYYY-MM-DD" description="Minor release (minimum Java 8 and OpenSSL 1.1.1)">
      <!-- FIX -->
      <action issue="CRYPTO-158" type="fix" due-to=" Juan F Arjona" dev="sebb">Illegal reflective access</action>
      <action issue="CRYPTO-179" type="fix" dev="sebb">Crash on macOS with default crypto library</action>
      <action issue="CRYPTO-166" type="fix" dev="sebb">Library is reloaded multiple times</action>
      <action issue="CRYPTO-175" type="fix" dev="sebb">JNA tests rely on JNI code</action>
      <action issue="CRYPTO-178" type="fix" dev="sebb">OpenSslCryptoRandom.isNativeCodeEnabled() throws if library cannot be loaded</action>
      <action issue="CRYPTO-173" type="fix" dev="sebb">docker build does not work on macOS M1</action>
      <action issue="CRYPTO-167" type="fix" dev="sebb">cannot use THROW to report missing env</action>
      <action issue="CRYPTO-171" type="fix" dev="sebb">openssl(2) not supported since Sierra on macOS M1</action>
      <action                    type="fix" dev="sebb">pom.xml: copy compiler args for benchmarks</action>
      <action                    type="fix" dev="sebb">pom.xml: don't install as defaultGoal</action>
      <action                    type="fix" dev="sebb">pom.xml: change default to utf-8; drop stuff done in parent</action>
      <action                    type="fix" dev="sebb">PMD: drop deprecated rules</action>
      <action                    type="fix" dev="sebb">dlerror message can exceed 100 chars</action>
      <action                    type="fix" dev="sebb">Makefile: restore commented out targets that are needed</action>
      <action                    type="fix" dev="sebb">Makefile: add Mac-aarch64 to os_known_archs</action>
      <action                    type="fix" dev="sebb">Makefile: ensure all known_os_archs have targets</action>
      <action                    type="fix" dev="sebb">Makefile: arm64-apple-macos11 is not a valid OS_ARCH value</action>
      <action                    type="fix" dev="sebb">Makefile: add target to show OS and ARCH settings</action>
      <action                    type="fix" dev="ggregory" due-to="Martin Wittlinger">Refactor: Unnecessary toString() call #224.</action>
      <action dev="ggregory"     type="fix" due-to="step-security-bot, Gary Gregory">[StepSecurity] Harden GitHub builds #228, #234.</action>
      <action dev="ggregory"     type="fix" due-to="Martin Wiesner">Fixes grammar and typos in Javadoc #233.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">Deprecate OpenSslJna constructor so it can be made private later.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">Deprecate Crypto constructor so it can be made private later.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">Deprecate AES constructor so it can be made private later.</action>
      <action issue="CRYPTO-169" type="fix" dev="ggregory" due-to="L. C. Hsieh, Yang Jie, Gary Gregory">Add protection for the ExceptionInInitializerError scenario to the CryptoRandomFactory#getCryptoRandom(Properties) method #258.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">ChannelInput.ChannelInput(ReadableByteChannel) now throws NullPointerException on null input.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">StreamInput.StreamInput(InputStream, int) now throws NullPointerException on null input.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">ChannelOutput.ChannelOutput(WritableByteChannel) now throws NullPointerException on null input.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">StreamOutput.StreamOutput(OutputStream, int) now throws NullPointerException on null input.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">SecureRandom in JavaCryptoRandom is not seeded.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">Fix SpotBugs [ERROR] Medium: Unread field: org.apache.commons.crypto.jna.OpenSslJnaCipher.IV_LENGTH; should this field be static? [org.apache.commons.crypto.jna.OpenSslJnaCipher] At OpenSslJnaCipher.java:[line 80] SS_SHOULD_BE_STATIC.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">Pick up maven-antrun-plugin version from parent POM org.apache:apache.</action>
      <action dev="ggregory"     type="fix" due-to="Gary Gregory">OsInfo now restores the current thread's interrupt flag when catching InterruptedException.</action>
      <!-- ADD -->
      <action                    type="add" dev="sebb">Added support for OpenSSL 3.0, 3.1, 3.2</action>
      <action                    type="add" dev="sebb">Implement OpenSSL_version_num for JNA</action>
      <action issue="CRYPTO-177" type="add" dev="sebb">Cipher and Random Factory classes don't include JNA</action>
      <action issue="CRYPTO-172" type="add" dev="sebb" due-to="Ludovic Henry">Add support for Linux-riscv64 #264</action>
      <action issue="CRYPTO-174" type="add" dev="sebb">Allow override of SSL library name for Windows</action>
      <action                    type="add" dev="ggregory" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
      <!-- UPDATE -->
      <action                    type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump commons-parent from 56 to 81 #323, #369, #380, #382, #389, #393, #398, #405.</action>
      <action                    type="update" dev="sebb" due-to="Ludovic Henry, Gary Gregory">Bump Apache Maven in Dockerfile files from 3.8.8 to 3.9.9.</action>
      <action                    type="update" dev="sebb">Tests: show details of crypt library actually loaded</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump com.sun.xml.bind:jaxb-impl from 2.3.7 to 2.3.8.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump net.java.dev.jna:jna from 5.13.0 to 5.18.1 #287, #387, #424, #494, #497.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 #303.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump jakarta.xml.bind:jakarta.xml.bind-api from 4.0.1 to 4.0.2 #311.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump commons-io:commons-io from 2.15.1 to 2.22.0 #321, #325, #388, #413.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.20.0 #362, #373, #383, #475.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #403.</action>
      <action                    type="update" dev="ggregory" due-to="Sylwester Lachiewicz">Update Maven version to 3.9.14 in Dockerfiles #517.</action>
      <action                    type="update" dev="ggregory" due-to="Sylwester Lachiewicz">Update Docker actions to latest versions in workflow files #518.</action>
    </release>
    <release version="1.2.0" date="2023-01-14" description="Minor release (Java 8, OpenSSL 1.1.1)">
      <!-- FIX -->
      <action issue="CRYPTO-160" type="fix" dev="jochen">Enhance the quality of JavaCryptoRandom.</action>
      <action issue="CRYPTO-160" type="fix" dev="ggregory" due-to="Gary Gregory">Package-private implementations of CryptoRandom extends java.util.Random but should not.</action>
      <action issue="CRYPTO-163" type="fix">Makefile does not recompile objects if local include files are changed</action>
      <action issue="CRYPTO-154" type="fix">License header should be a plain comment #113.</action>
      <action                    type="fix" dev="ggregory" due-to="Arturo Bernal">Fix PMD warning and don't init to defaults #128.</action>
      <action                    type="fix" dev="ggregory" due-to="Arturo Bernal">Minor changes #135.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Port from pre-Java 8 javah tool to Java 8 and up javac with the -h option.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Fix build on Java 11.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Fix build on Java 17.</action>
      <action issue="CRYPTO-155" type="fix" due-to="Arturo Bernal">Minor improvement #115, #125.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">PositionedCryptoInputStream does not close its CryptoCipher instances.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Validate return value from OpenSslNativeJna.EVP_CIPHER_CTX_set_padding().</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Validate return value from OpenSslNativeJna.ENGINE_finish().</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory">Validate return value from OpenSslNativeJna.ENGINE_free().</action>
      <!-- ADD -->
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory, Dependabot">Add github/codeql-action 2 #159.</action>
      <action                    type="fix" dev="ggregory" due-to="Gary Gregory, Dependabot">Add AES utility class.</action>
      <!-- UPDATE -->
      <action                    type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/cache from 2.1.7 to 3.0.9 #150, #184.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump actions/checkout from 2 to 3.1.0 #149, #187.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump actions/setup-java from 2 to 3.6.0 #190.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump actions/upload-artifact from 3.1.0 to 3.1.1 #192.</action>
      <action issue="CRYPTO-151" type="update" due-to="Arturo Bernal, Dependabot">Migrate to Junit 5.9.1 #114, #171, #183.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump jna from 5.5.0 to 5.13.0 #123, #139, #153, #167, #209.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump commons.japicmp.version from 0.14.3 to 0.17.1.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump maven-checkstyle-plugin from 3.1.1 to 3.2.0 #130, #176.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump jmh.version from 1.12 to 1.36 #119, #157, #194.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump exec-maven-plugin from 1.6.0 to 3.1.0 #121, #170.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump maven-antrun-plugin from 1.8 to 3.1.0 #120, #158.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump commons.japicmp.version from 0.15.2 to 0.15.7 #138.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump jacoco-maven-plugin from 0.6.6 to 0.8.8 #138, #154.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump maven-javadoc-plugin from 3.2.0 to 3.4.1 #138.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #140, #177, #178.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump pmd from 6.44.0 to 6.52.0.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump taglist-maven-plugin from 2.4 to 3.0.0 #147.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump spotbugs-maven-plugin from 4.5.3.0 to 4.7.3.0 #152, #160, #168, #174, #179, #189, #193.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump commons-parent from 52 to 56 #182, #196, #204.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump commons.surefire.version from 3.0.0-M5 to 3.0.0-M7.</action>
      <action                    type="update" dev="ggregory" due-to="Dependabot">Bump maven-resources-plugin from 3.2.0 to 3.3.0 #172.</action>
      <action                    type="update" dev="ggregory" due-to="Gary Gregory">Bump jaxb-impl from 2.3.6 to 2.3.7.</action>
    </release>
    <release version="1.1.0" date="2020-08-28" description="Minor release (Java 8, OpenSSL 1.1.1)">
      <action issue="CRYPTO-59" type="add">Support Galois/Counter Mode (GCM).</action>
      <action issue="CRYPTO-125" type="fix">CryptoOutputStream does not call write in a loop when underlying channel works in non-block mode.</action>
      <action issue="CRYPTO-131" type="add" dev="britter">Provide FAQ page.</action>
      <action issue="CRYPTO-134" type="fix" dev="sebb">CipherByteBufferExample should not truncate the string</action>
      <action issue="CRYPTO-137" type="fix">Error compiling on Win64 with Mingw.</action>
      <action issue="CRYPTO-138" type="fix">CipherByteArrayExample fails on OpenSSL 1.1.0g with java.lang.UnsatisfiedLinkError: EVP_CIPHER_CTX_cleanup.</action>
      <action issue="CRYPTO-139" type="add">Add support for AARCH64.</action>
      <action issue="CRYPTO-141" type="fix">Errors in native code can leave Java wrappers in bad state.</action>
      <action issue="CRYPTO-141" type="fix" dev="ggregory" due-to="Alex Remily">Intermittent Failure in GCMCipherTest#testGcmTamperedData() #105.</action>
      <action issue="CRYPTO-139" type="add">Make org.apache.commons.crypto.stream.input.Input extend Closeable.</action>
      <action issue="CRYPTO-139" type="add">Make org.apache.commons.crypto.stream.output.Output extend Closeable.</action>
      <action                    type="update" dev="ggregory">Add support for ARM.</action>
      <action                    type="update" dev="ggregory">Add support for ARM-HF.</action>
      <action                    type="update" dev="ggregory" due-to="Geoffrey Blake">Reset JAVA_HOME for aarch64 and ppc builds. Turn off maven-enforcer for Xenial builds #104.</action>
      <action                    type="update" dev="ggregory">Update maven-checkstyle-plugin 3.0.0 -> 3.1.1.</action>
      <action                    type="update" dev="ggregory">Update commons-parent 51 -> 52.</action>
      <action                    type="update" dev="ggregory">Update maven-resources-plugin 3.1.0 -> 3.2.0.</action>
      <action                    type="update" dev="ggregory">Update Apache CLIRR to JApiCmp.</action>
      <action                    type="update" dev="ggregory">Update FindBugs to SpotBugs.</action>
      <action issue="CRYPTO-153" type="update" dev="ggregory" due-to="Arturo Bernal">Bump coveralls-maven-plugin from 3.1.0 to 4.3.0 #112.</action>
    </release>

    <release version="1.0.0" date="2016-07-22" description="
Initial release (Java 7 or above).

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.">
      <action issue="CRYPTO-68" type="add" dev="britter">Enable common code quality reports.</action>
      <action issue="CRYPTO-65" type="fix" dev="britter" due-to="sebb">Warnings compiling on MacOSX - JNIEXPORT redefined.</action>
      <action issue="CRYPTO-11" type="add" dev="Ke Jia" due-to="Ke Jia, Jerry Chen">User guide documentation .</action>
      <action issue="CRYPTO-12" type="add" dev="Xianda Ke" due-to="Xianda Ke">Rename CryptoInputStream to CipherInputStream and CryptoOutputStream to CipherOutputStream .</action>
      <action issue="CRYPTO-13" type="add" dev="Xianda Ke" due-to="Xianda Ke">The API differences between apache.commons.crypto and JCE .</action>
      <action issue="CRYPTO-26" type="update" dev="Dapeng Sun" due-to="Dapeng Sun">Utility classes should not have public constructors .</action>
      <action issue="CRYPTO-28" type="update" dev="Ferdinand Xu" due-to="Ferdinand Xu, Ke Jia">Update the README.md of Apache Commons Crypto .</action>
      <action issue="CRYPTO-29" type="fix" dev="Dian Fu" due-to="Dian Fu, Sebb">Make sure Cipher.ENCRYPT_MODE is consistent with JDK .</action>
      <action issue="CRYPTO-3" type="update" dev="Ferdinand Xu" due-to="ferdinand xu">Change default cipher as OpenSslCipher .</action>
      <action issue="CRYPTO-30" type="fix" dev="Ferdinand Xu" due-to="Ferdinand Xu, Sebb">Mutable fields should be private .</action>
      <action issue="CRYPTO-31" type="update" dev="Ferdinand Xu" due-to="Ferdinand Xu, Sebb">Make fields final wherever possible .</action>
      <action issue="CRYPTO-33" type="update" dev="Xianda Ke" due-to="Xianda Ke, Sebb">SecureRandom shadows JVM class .</action>
      <action issue="CRYPTO-34" type="fix" dev="Dapeng Sun" due-to="Dapeng Sun, Sebb">JavaSecureRandom should throw Exception if it cannot create the instance .</action>
      <action issue="CRYPTO-38" type="update" dev="Dapeng Sun" due-to="Dapeng Sun, Gary Gregory">Always use blocks .</action>
      <action issue="CRYPTO-40" type="add" dev="Xianda Ke" due-to="Xianda Ke, Jerry Chen">Remove the full qualified package name for shadowed classes .</action>
      <action issue="CRYPTO-42" type="add" dev="Dian Fu" due-to="Dian Fu, Jerry Chen">Remove the header files required for cross platform compilation .</action>
      <action issue="CRYPTO-45" type="add" dev="Dian Fu" due-to="Dian Fu, Benedikt Ritter">Document how to build Commons Crypto .</action>
      <action issue="CRYPTO-47" type="fix" dev="Dapeng Sun" due-to="Dapeng Sun">Fix build of MAC_OS .</action>
      <action issue="CRYPTO-48" type="add" dev="Benedikt Ritter" due-to="Benedikt Ritter, Dapeng Sun">Setup site build as defined in commons-parent pom .</action>
      <action issue="CRYPTO-49" type="fix" dev="Dapeng Sun" due-to="Dapeng Sun">CRYPTO-1 Fix build of X86 .</action>
      <action issue="CRYPTO-7" type="update" dev="Ferdinand Xu" due-to="ferdinand xu">Rename source code in Chimera to Apache name space .</action>
      <action issue="CRYPTO-57" type="fix" dev="Benedikt Ritter" due-to="Benedikt Ritter">Fix build on Mac OS</action>
      <action issue="CRYPTO-61" type="fix" dev="Hendrik Saly" due-to="Hendrik Saly">Fix possible NPE in OpenSslCryptoRandom</action>
      <action issue="CRYPTO-54" type="fix" dev="Dapeng Sun" due-to="Stian Soiland-Reyes, Jerry Chen, Benedikt Ritter, Gary Gregory">US Export classification and ECCN registration for encryption</action>
      <action issue="CRYPTO-62" type="update" dev="Hendrik Saly" due-to="Hendrik Saly">Add multithreaded related tests</action>
    </release>

  </body>
</document>
