Apache Commons Codec 1.23.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.23.0.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

*             Add and use PhoneticEngine.Builder and deprecate old constructors. Thanks to Gary Gregory.
*             Add BeiderMorseEncoder.Builder and deprecate old constructor. Thanks to Gary Gregory.
*             Add PhoneticEngine.Builder.setMaxInputLength(int). Thanks to Yu Bao, Gary Gregory.
*             Add Base45 support. Thanks to Gary Gregory.
*             Add URLCodec.decodeUrl(BitSet, byte[]) to decode with a custom safe set. Thanks to Gary Gregory.

Fixed Bugs
----------

*             GitIdentifiers orders tree entries by unsigned UTF-8 bytes, as Git does, instead of UTF-16 code units. Thanks to Jeff Lenamon.
*             Optimize PhoneticEngine.encode(String, LanguageSet) for speed. Thanks to Yu Bao, Gary Gregory.
*             RFC1522Codec.decodeText(String) now throws a DecoderException instead of a StringIndexOutOfBoundsException when a separator is missing. Thanks to Yu Bao, Gary Gregory.
*             Optimize Base58.convertFromBase58(byte[], Context) for speed and temporary object allocation. Thanks to Yu Bao, Gary Gregory.
*             Allocate a single MessageDigest and use it in Sha2Crypt.sha2Crypt(byte[], String, String, int, String). Thanks to Yu Bao, Gary Gregory.
*             Javadoc improvements. Thanks to Gary Gregory.
*             Throw IOException instead of IllegalArgumentException in BaseNCodecOutputStream and BaseNCodecOutputStream IO methods. Thanks to Gary Gregory.
*             Throw DecoderException instead of IllegalArgumentException in RFC1522Codec.decodeText(String). Thanks to Gary Gregory.
*             Fix Blake3 KDF example and clarify finalization semantics. Thanks to Gary Gregory.
*             Base32 and Base64 STRICT decoding now require the encoder's canonical alphabet, padding, and line separators, and validate streams through EOF. Use LENIENT to retain permissive decoding. Thanks to Gary Gregory.
*             Limit Base58 decoding to 8192 encoded bytes by default, checking cumulative stream input before buffering. Use Base58.Builder.setMaxDecodeLength(int) for larger trusted input. Encoding defaults to a configurable 8192-byte binary input limit through Base58.Builder.setMaxEncodeLength(int). Thanks to Gary Gregory.
*             Grow Base58 accumulation buffers geometrically within the configured input limits and validate actual accumulated length. Thanks to Gary Gregory.
*             Implement Base58 encoded-length calculation and explicitly reject unsupported line chunking. Thanks to Gary Gregory.
*             Close the underlying BaseNCodecOutputStream output even when final conversion or flushing fails, preserving suppressed close exceptions. Thanks to Gary Gregory.
*             Reject invalid GitIdentifiers tree entry names and file/directory name conflicts to prevent ambiguous tree serialization and colliding identifiers. Thanks to Gary Gregory.
*             Hex decoding now accepts only ASCII hexadecimal characters (0-9, A-F, a-f). Previously accepted non-ASCII Unicode digits and fullwidth letters now cause DecoderException, including when supplied as UTF-8 bytes or ByteBuffers. Thanks to Gary Gregory.
*             Restrict Hex decoding to ASCII hexadecimal characters. Thanks to Gary Gregory.
*             Validate BinaryCodec input while preserving leading-bit truncation. Thanks to Gary Gregory.
*             Reject oversized Beider-Morse input before language guessing. Thanks to Gary Gregory.
*             QuotedPrintableCodec decoding now preserves hard CRLF line breaks and, leniently, unpaired CR and LF bytes instead of discarding them. Soft line breaks require the full =CRLF sequence; previously accepted =CR without LF now throws DecoderException. This affects both constructor modes and QCodec, which shares the decoder. Thanks to Gary Gregory.
*             Bound Sha2Crypt rounds from caller-supplied salts. Thanks to Gary Gregory.
*             Bound Sha2Crypt password length to prevent quadratic CPU DoS. Thanks to Gary Gregory.
*             Make the @param names in BaseNCodec match the parameters they document (#444). Thanks to geonseok, Gary Gregory.
* CODEC-345:  Restore URLCodec.encodeUrl(BitSet, byte[]) support for custom safe sets containing percent and plus, and document the decoding limitations. Thanks to Ganesh Gautam, Gary Gregory.
* CODEC-245:  Reject malformed Sha2Crypt salt syntax (#445). Thanks to Efe, Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 103 to 105. Thanks to Gary Gregory.
*             [test] Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0 Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

Apache Commons Codec 1.22.1 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.22.1.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.



Fixed Bugs
----------

* CODEC-344:  Base64.Builder.setEncodeTable(byte...) accepts invalid custom alphabets. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-340:  Base58.Builder.setEncodeTable(byte...) is ignored when encoding and decoding. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-342:  Base32.Builder.setEncodeTable(byte...) can create a codec that cannot decode its own output. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-343:  Base32.Builder.setHexDecodeTable(boolean) sets the encode table to a decode lookup table. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-341:  Base16.Builder.setEncodeTable(byte...) can create a codec that cannot decode its own output. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-339:  URLCodec.encodeUrl(BitSet, byte[]) allows custom safe sets to emit URL encoding control characters. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-338:  PercentCodec loses literal '+' when plusForSpace is enabled. Thanks to Ruiqi Dong, Gary Gregory.
* CODEC-337:  Digest ALL reuses System.in, so only the first algorithm sees the real input (#431). Thanks to Ruiqi Dong, Gary Gregory.
*             Fix Base64.toIntegerBytes(BigInteger) for zero edge case (#441). Thanks to Gary Gregory.
*             Add messages when throwing NullPointerException. Thanks to Gary Gregory.
*             Add messages when throwing NullPointerException. Thanks to Gary Gregory.
*             StringEncoderComparator.StringEncoderComparator(StringEncoder) now fails fast on null input. Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 98 to 103. Thanks to Gary Gregory.
*             Bump commons-io:commons-io from 2.21.0 to 2.22.0. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
Apache Commons Codec 1.22.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.22.0.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

* CODEC-326:  Add Base58 support. Thanks to Inkeet, Gary Gregory, Wolff Bock von Wuelfingen.
*             Add BaseNCodecInputStream.AbstracBuilder.setByteArray(byte[]). Thanks to Gary Gregory.
* CODEC-335:  Add GitIdentifiers to compute Git blob and tree object identifiers. Thanks to Piotr P. Karwasz, Gary Gregory.

Fixed Bugs
----------

* CODEC-249:  Fix Incorrect transform of CH digraph according Metaphone basic rules #423. Thanks to Shalu Jha, Andrey, Gary Gregory.
* CODEC-317:  ColognePhonetic can create duplicate consecutive codes in some cases. Thanks to DRUser123, Shalu Jha, Gary Gregory.
*             Add boundary tests for BinaryCodec.fromAscii partial-bit inputs #425. Thanks to fancying, Gary Gregory.
* CODEC-336:  Base64.Builder.setUrlSafe(boolean) Javadoc incorrectly states null is accepted for primitive boolean parameter. Thanks to Partha Paul, Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 96 to 98. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
Apache Commons Codec 1.21.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.21.0.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

* CODEC-333:  Add distinct Base64 decoding for standard and URL-safe formats. Thanks to Aleksandr Beliakov, Gary Gregory.

Fixed Bugs
----------

*             Fix oak leaf icon references in overview.html when running `mvn clean javadoc:javadoc`. Thanks to Gary Gregory.
*             Fix Apache RAT plugin console warnings. Thanks to Gary Gregory.
*             Fix malformed Javadoc comments. Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 91 to 96 #415, #418. Thanks to Gary Gregory, Dependabot.
*             Bump commons-io:commons-io from 2.20.0 to 2.21.0. Thanks to Gary Gregory.
*             Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0. Thanks to Gary Gregory, Dependabot.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
Apache Commons Codec 1.20.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.20.0.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

*             Add org.apache.commons.codec.digest.Crc16. Thanks to Fredrik Kjellberg, Gary Gregory.
*             Add builders to org.apache.commons.codec.digest streams and deprecate some old constructors. Thanks to Gary Gregory.
*             Add builder to Base16 streams and deprecate some old constructors. Thanks to Gary Gregory.
*             Add support for SHAKE128-256 and SHAKE256-512 to `DigestUtils` and `MessageDigestAlgorithms` on Java 25 and up. Thanks to Gary Gregory.
*             Add BaseNCodec.AbstractBuilder.setDecodeTable(byte[]) and refactor subclasses. Thanks to Gary Gregory.


Changes
-------

*             Deprecate all but one Base32 constructor in favor of the builder added in version 1.17.0. Thanks to Gary Gregory.
*             Deprecate all but one Base64 constructor in favor of the builder added in version 1.17.0. Thanks to Gary Gregory.
*             BaseNCodecInputStream subclasses are now type-safe to match its matching BaseNCodec. Thanks to Gary Gregory.
*             BaseNCodecOutputStream subclasses are now type-safe to match its matching BaseNCodec. Thanks to Gary Gregory.
*             Bump org.apache.commons:commons-parent from 85 to 91. Thanks to Gary Gregory, Dependabot.
*             [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
Apache Commons Codec 1.19.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.19.0.

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

*             Add HmacUtils.hmac(Path). Thanks to Gary Gregory.
*             Add HmacUtils.hmacHex(Path). Thanks to Gary Gregory.
*             Add PMD check to the default Maven goal. Thanks to Gary Gregory.
*             Add SpotBugs check to the default Maven goal. Thanks to Gary Gregory.

Fixed Bugs
----------

*             Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
*             Refactor DigestUtils.updateDigest(MessageDigest, File) to use NIO. Thanks to Gary Gregory.
* CODEC-328:  Clarify Javadoc for org.apache.commons.codec.digest.UnixCrypt.crypt(byte[],String). Thanks to Gary Gregory.
*             Precompile regular expressions in DaitchMokotoffSoundex.Rule. Thanks to Gary Gregory.
*             Precompile regular expressions in DaitchMokotoffSoundex.parseRules(Scanner, String, Map, Map). Thanks to Gary Gregory.
*             Precompile regular expressions in Lang.loadFromResource(String, Languages). Thanks to Gary Gregory.
*             Precompile regular expressions in PhoneticEngine.encode(String, LanguageSet). Thanks to Gary Gregory.
*             Precompile regular expressions in org.apache.commons.codec.language.bm.Rule.parse*(*). Thanks to Gary Gregory.
*             Remove redundant checks for whitespace in DaitchMokotoffSoundex.soundex(String, boolean). Thanks to Gary Gregory.
*             Javadoc typo in Base16.java #380. Thanks to Sebastian Baunsgaard.
*             Deprecate unused constant org.apache.commons.codec.language.bm.Rule.ALL. Thanks to Gary Gregory.
* CODEC-331:  org.apache.commons.codec.language.bm.Rule.parsePhonemeExpr(String) adds duplicate empty phoneme when input ends with |. Thanks to IlikeCode, Gary Gregory.
* CODEC-331:  org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) does not remove special characters like punctuation. Thanks to IlikeCode, Gary Gregory.
*             Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.binary.StringUtils. Thanks to Gary Gregory.
*             Fix PMD UnusedFormalParameter in private constructor in org.apache.commons.codec.binary.Base16. Thanks to Gary Gregory.
*             Fix PMD multiple UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Blake3. Thanks to Gary Gregory.
*             Fix PMD UnnecessaryFullyQualifiedName in org.apache.commons.codec.digest.Md5Crypt. Thanks to Gary Gregory.
*             Fix PMD EmptyControlStatement in org.apache.commons.codec.language.Metaphone. Thanks to Gary Gregory.
*             Fix SpotBugs [ERROR] Medium: org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder.setEncodeTable(byte[]) may expose internal representation by storing an externally mutable object into BaseNCodec$AbstractBuilder.encodeTable [org.apache.commons.codec.binary.BaseNCodec$AbstractBuilder] At BaseNCodec.java:[line 131] EI_EXPOSE_REP2. Thanks to Gary Gregory.
*             The method org.apache.commons.codec.binary.BaseNCodec.AbstractBuilder.setLineSeparator(byte...) now makes a defensive copy. Thanks to Gary Gregory.
*             Avoid unnecessary String conversion in org.apache.commons.codec.language.bm.PhoneticEngine.applyFinalRules(PhonemeBuilder, Map). Thanks to Gary Gregory.
*             Fix SpotBugs [ERROR] High: Potentially dangerous use of non-short-circuit logic in org.apache.commons.codec.language.DaitchMokotoffSoundex.cleanup(String) [org.apache.commons.codec.language.DaitchMokotoffSoundex] At DaitchMokotoffSoundex.java:[line 350] NS_DANGEROUS_NON_SHORT_CIRCUIT. Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 79 to 85 #375. Thanks to Gary Gregory, Dependabot.
*             [test] Bump commons-io:commons-io from 2.18.0 to 2.20.0. Thanks to Gary Gregory.
*             [test] Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 #386. Thanks to Gary Gregory, Dependabot.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
Apache Commons Codec 1.18.0 Release Notes
-----------------------------------------

The Apache Commons Codec team is pleased to announce the release of Apache Commons Codec 1.18.0. 

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


New features
------------

*             Add Base32.Builder.setHexDecodeTable(boolean). Thanks to Gary Gregory, Julian Reschke.
*             Add Base32.Builder.setHexEncodeTable(boolean). Thanks to Gary Gregory, Julian Reschke.


Changes
-------

*             Bump org.apache.commons:commons-parent from 78 to 79. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

Apache Commons Codec 1.17.2 Release Notes
-----------------------------------------

The Apache Commons Codec component contains encoders and decoders for
formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

This is a feature and maintenance release. Java 8 or later is required.


Fixed Bugs
----------

*             Rewrite DaitchMokotoffSoundex.soundex(String) using String.join(). Thanks to Gary Gregory.
* CODEC-324:  Use Resource.class to load resources, rather than its class loader #353. Thanks to Michael Froh.
*             Deprecate CharSequenceUtils.CharSequenceUtils(). Thanks to Gary Gregory.
*             Deprecate Sha2Crypt.Sha2Crypt(). Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #296, #305, #313. Thanks to Dependabot.
*             Bump org.apache.commons:commons-parent from 71 to 78 #310, #312, #319, #323, #326, #333. Thanks to Gary Gregory.
*             [test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #318, #341. Thanks to Gary Gregory, Dependabot.
*             Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #332. Thanks to Gary Gregory, Dependabot.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

Apache Commons Codec 1.17.1 Release Notes
-----------------------------------------

The Apache Commons Codec component contains encoders and decoders for
various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

Feature and fix release. Requires a minimum of Java 8.


Fixed Bugs
----------

*             Md5Crypt now throws IllegalArgumentException on an invalid prefix. Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 69 to 71 #286. Thanks to Gary Gregory.
*             Bump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.23 to 1.24 #293. Thanks to Dependabot.
*             Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #292. Thanks to Dependabot.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

Apache Commons Codec 1.17.0 Release Notes
-----------------------------------------

The Apache Commons Codec component contains encoders and decoders for
various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

Feature and fix release. Requires a minimum of Java 8.


New features
------------

*             Add override org.apache.commons.codec.language.bm.Rule.PhonemeExpr.size(). Thanks to Gary Gregory.
*             Add support for Base64 custom alphabets #266. Thanks to Chris Kocel, Gary Gregory.
*             Add Base64.Builder (allows custom alphabets). Thanks to Gary Gregory.
*             Add Base32.Builder (allows custom alphabets). Thanks to Gary Gregory.
*             Add Base64 support for a custom padding byte (like Base32). Thanks to Gary Gregory.

Fixed Bugs
----------

* CODEC-320:  Wrong output of DoubleMetaphone in 1.16.1. Thanks to Martin Frydl, Gary Gregory.
*             Optimize memory allocation in PhoneticEngine. Thanks to Gary Gregory.
*             BCodec and QCodec encode() methods throw UnsupportedCharsetException instead of EncoderException. Thanks to Gary Gregory.
*             Set Javadoc link to latest Java API LTS version. Thanks to Gary Gregory.
*             Base32 constructor fails-fast with a NullPointerException if the custom alphabet array is null. Thanks to Gary Gregory.
*             Base32 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory.
*             Base64 constructor makes a defensive copy of the line separator array. Thanks to Gary Gregory.
*             Base64 constructor makes a defensive copy of a custom alphabet array. Thanks to Gary Gregory.

Changes
-------

*             Bump org.apache.commons:commons-parent from 66 to 69 #250, #261. Thanks to Dependabot, Gary Gregory.
*             Bump commons-io:commons-io from 2.15.1 to 2.16.1 #258, #265. Thanks to Dependabot, Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

Apache Commons Codec 1.16.1 Release Notes
-----------------------------------------

The Apache Commons Codec component contains encoders and decoders for
various formats such as Base16, Base32, Base64, digest, and Hexadecimal. In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

Feature and fix release. Requires a minimum of Java 8.

New features
------------

*             Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.

Fixed Bugs
----------

* CODEC-295:  Test clean ups. Thanks to Gary Gregory.
*             [StepSecurity] ci: Harden GitHub Actions #187. Thanks to step-security-bot, Gary Gregory.
* CODEC-295:  Correct error in Base64 Javadoc #188. Thanks to Evan Saulpaugh.
* CODEC-295:  Add minimum Java version in changes.xml #186. Thanks to Olivier Jaquemet, Gary Gregory.
* CODEC-310:  Documentation update for the org.apache.commons.codec.digest.* package #208. Thanks to Yakov Shafranovich.
*             Precompile regular expression in UnixCrypt.crypt(byte[], String). Thanks to Gary Gregory.
* CODEC-315:  Fix possible IndexOutOfBoundException in PhoneticEngine.encode method #223. Thanks to Arthur Chan, Gary Gregory.
* CODEC-313:  Fix possible ArrayIndexOutOfBoundsException in QuotedPrintableCodec.encodeQuotedPrintable() method #221. Thanks to Arthur Chan, Gary Gregory.
* CODEC-312:  Fix possible StringIndexOutOfBoundException in MatchRatingApproachEncoder.encode() method #220. Thanks to Arthur Chan, Gary Gregory.
* CODEC-311:  Fix possible ArrayIndexOutOfBoundException in RefinedSoundex.getMappingCode() #219. Thanks to Arthur Chan, Gary Gregory.
* CODEC-314:  Fix possible IndexOutOfBoundsException in PercentCodec.insertAlwaysEncodeChars() method #222. Thanks to Arthur Chan, Gary Gregory.
*             Deprecate UnixCrypt 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate Md5Crypt 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate Crypt 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate StringUtils 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate Resources 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate Charsets 0-argument constructor. Thanks to Gary Gregory.
*             Deprecate CharEncoding 0-argument constructor. Thanks to Gary Gregory.
*             Add missing version for animal-sniffer-maven-plugin. Thanks to Gary Gregory.

Changes
-------

*             Bump commons-parent from 58 to 66. Thanks to Dependabot, Gary Gregory.
*             Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory.
*             Bump commons-io from 2.13.0 to 2.15.1. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------

              Apache Commons Codec 1.16.0

The Apache Commons Codec package contains simple encoder and decoders for
various formats such as Base64 and Hexadecimal.  In addition to these
widely used encoders and decoders, the codec package also maintains a
collection of phonetic encoding utilities.

Feature and fix release.

Changes in this version include:

New features
------------

* CODEC-296:  Add support for Blake3 family of hashes. Thanks to Matt Sicker.
*             Add github/codeql-action.

Fixed Bugs
----------

* CODEC-295:  Minor improvements #67. Thanks to Arturo Bernal.
*             Remove duplicated words from Javadocs. Thanks to James Gan.
* CODEC-301:  Simplify assertion #84. Thanks to Alexander Pinske, Alex Herbert.
* CODEC-300:  Simplify assertion #84. Thanks to Arturo Bernal.
* CODEC-298:  Use Standard Charset object #82. Thanks to Arturo Bernal.
*             Use String.contains() functions #125. Thanks to Arturo Bernal.
*             Avoid use toString() or substring() in favor of a simplified expression #126. Thanks to Arturo Bernal.
* CODEC-305:  Fix byte-skipping in Base16 decoding #135. Thanks to Florian.
*             Fix several typos, improve writing in some javadocs #139. Thanks to Marc Wrobel.
*             BaseNCodecOutputStream.eof() should not throw IOException. Thanks to Gary Gregory.
*             Javadoc improvements and cleanups. Thanks to Gary Gregory.
*             Deprecate BaseNCodec.isWhiteSpace(byte) and use Character.isWhitespace(int). Thanks to Gary Gregory.

Changes
-------

*             Bump actions/cache from v2 to v3.0.10 #75, #99, #119, #138, #149, #152. Thanks to Dependabot, Gary Gregory.
*             Bump actions/setup-java from v1.4.1 to 3.5.1 #60, #62, #121. Thanks to Dependabot, Gary Gregory.
*             Bump actions/checkout from 2.3.2 to 3.1.0 #65, #98, #114, #153. Thanks to Dependabot, Gary Gregory.
*             Bump commons-parent from 52 to 58, #147, #165, #170. Thanks to Dependabot, Gary Gregory.
* CODEC-285:  Bump junit from 4.13.1 to 5.9.1 #76, #39, #140, #148. Thanks to Dependabot, John Patrick.
*             Bump Java 7 to 8. Thanks to Gary Gregory.
*             Bump japicmp-maven-plugin from 0.14.3 to 0.17.1. Thanks to Gary Gregory.
*             Bump jacoco-maven-plugin from 0.8.5 to 0.8.8 (Fixes Java 15 builds). Thanks to Gary Gregory.
*             Bump maven-surefire-plugin from 2.22.2 to 3.0.0-M7 #122, #134. Thanks to Gary Gregory.
*             Bump maven-javadoc-plugin from 3.2.0 to 3.4.1. Thanks to Gary Gregory.
*             Bump animal-sniffer-maven-plugin from 1.19 to 1.22. Thanks to Gary Gregory.
*             Bump maven-pmd-plugin from 3.13.0 to 3.19.0, #133, #142, #145. Thanks to Gary Gregory, Dependabot.
*             Bump pmd from 6.47.0 to 6.52.0. Thanks to Gary Gregory.
*             Bump maven-checkstyle-plugin from 2.17 to 3.2.0 #143. Thanks to Gary Gregory.
*             Bump checkstyle from 8.45.1 to 9.3 #97, #100, #101, #103. Thanks to Dependabot.
*             Bump taglist-maven-plugin from 2.4 to 3.0.0 #102. Thanks to Dependabot.
*             Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory.


For complete information on Apache Commons Codec, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Codec website:

https://commons.apache.org/proper/commons-codec/

Download page: https://commons.apache.org/proper/commons-codec/download_codec.cgi

---------------------------------------------------------------------------------
