Skip to content

Commit

Permalink
Merge branch 'master' of
Browse files Browse the repository at this point in the history
  • Loading branch information
garydgregory committed Jan 23, 2025
2 parents 963ee73 + 94b9c51 commit 9062af4
Show file tree
Hide file tree
Showing 12 changed files with 268 additions and 396 deletions.
10 changes: 4 additions & 6 deletions TODO → TODO.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
* limitations under the License.
*/

[This file is very old and possibly out of date compared to what is in Jira.]

This is a list of action items to be finished in the [codec] project.
This TODO list reflects the current direction of development, and
should be updated by all committers when a known issues or task
Expand All @@ -33,11 +35,7 @@ When a task in the TODO list is done, change the changes.xml document in xdocs
* Add a Rot13 implementation to text package

* figure out a better way to supply test data and expected input/output
to the JUNIT test cases
to the JUnit test cases

* develop multiple distributions for projects that only wish to use
a specific class, and are worried about footprint (memory and diskspace).




a specific class, and are worried about footprint (memory and disk space).
59 changes: 29 additions & 30 deletions src/assembly/bin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,33 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
<id>bin</id>
<formats>
<format>tar.gz</format>
<format>zip</format>
</formats>
<includeSiteDirectory>false</includeSiteDirectory>
<fileSets>
<fileSet>
<includes>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
<include>RELEASE-NOTES.txt</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
<fileMode>644</fileMode>
</fileSet>
<fileSet>
<directory>target/site/apidocs</directory>
<outputDirectory>apidocs</outputDirectory>
</fileSet>
</fileSets>
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
<id>bin</id>
<formats>
<format>tar.gz</format>
<format>zip</format>
</formats>
<includeSiteDirectory>false</includeSiteDirectory>
<fileSets>
<fileSet>
<includes>
<include>LICENSE.txt</include>
<include>NOTICE.txt</include>
<include>RELEASE-NOTES.txt</include>
</includes>
</fileSet>
<fileSet>
<directory>target</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
<fileMode>644</fileMode>
</fileSet>
<fileSet>
<directory>target/site/apidocs</directory>
<outputDirectory>apidocs</outputDirectory>
</fileSet>
</fileSets>
</assembly>
2 changes: 1 addition & 1 deletion src/main/java/org/apache/commons/codec/binary/Base16.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base16 encoding and decoding.
* Provides Base32 encoding and decoding as defined by <a href="https://tools.ietf.org/html/rfc4648#section-8">RFC 4648 - 8. Base 16 Encoding</a>.
*
* <p>
* This class is thread-safe.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base16 encoding and decoding in a streaming fashion (unlimited size).
* Provides Base16 decoding in a streaming fashion (unlimited size).
* <p>
* The default behavior of the Base16InputStream is to DECODE, whereas the default behavior of the
* {@link Base16OutputStream} is to ENCODE, but this behavior can be overridden by using a different constructor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Hex encoding and decoding in a streaming fashion (unlimited size).
* Provides Hex encoding in a streaming fashion (unlimited size).
* <p>
* The default behavior of the HexOutputStream is to ENCODE, whereas the default behavior of the
* {@link Base16InputStream} is to DECODE. But this behavior can be overridden by using a different constructor.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base32 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* Provides Base32 decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
* constructor.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base32 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* Provides Base32 encoding in a streaming fashion (unlimited size). When encoding the default lineLength
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
* constructor.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base64 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* Provides Base64 decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
* constructor.
* <p>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.apache.commons.codec.CodecPolicy;

/**
* Provides Base64 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
* Provides Base64 encoding in a streaming fashion (unlimited size). When encoding the default lineLength
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
* constructor.
* <p>
Expand Down
223 changes: 223 additions & 0 deletions src/main/javadoc/overview.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
<!--
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.
-->
<html>
<head>
<title>Apache Commons Codec Overview</title>
</head>
<body>
<img src="../images/commons-logo.png" alt="Apache Commons Codec">
<p>Apache Commons Codec consists of a set of utilities and a simple framework for encoding and decoding text and binary data.</p>
<p>
You can find the Javadoc package list at the <a href="#all-packages-table">bottom of this page</a>.
</p>
<section>
<h1>Binary Encoders</h1>
<p>Interfaces and classes used by the various implementations in the sub-packages.</p>
<table>
<caption>Binary Encoders</caption>
<tr>
<td><a href="org/apache/commons/codec/binary/Base16.html">Base16 </a></td>
<td>Provides Base16 encoding and decoding as defined by <a href="https://tools.ietf.org/html/rfc4648#section-8">RFC 4648 - 8. Base 16 Encoding</a>
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base16InputStream.html">Base16InputStream </a></td>
<td>Provides Base16 decoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base16OutputStream.html">Base16OutputStream </a></td>
<td>Provides Base16 encoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base32.html">Base32 </a></td>
<td>Provides Base32 encoding and decoding as defined by <a href="https://www.ietf.org/rfc/rfc4648.txt">RFC 4648</a>
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base32InputStream.html">Base32InputStream </a></td>
<td>Provides Base32 decoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base32OutputStream.html">Base32OutputStream </a></td>
<td>Provides Base32 encoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base64.html"> Base64 </a></td>
<td>Provides Base64 encoding and decoding as defined by <a href="https://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base64InputStream.html">Base64InputStream </a></td>
<td>Provides Base64 decoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Base64OutputStream.html">Base64OutputStream </a></td>
<td>Provides Base64 encoding in a streaming fashion (unlimited size).</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/BinaryCodec.html"> BinaryCodec </a></td>
<td>Converts between byte arrays and strings of "0"s and "1"s.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/binary/Hex.html"> Hex </a></td>
<td>Converts hexadecimal Strings.</td>
</tr>
</table>
</section>
<section>
<h1>Digest Encoders</h1>
<p>
<strong>WARNING:</strong> Some of the functions in this package might not be suitable for cryptography, or are no longer cryptographically-secure.
</p>
<table>
<caption>Digest Encoders</caption>
<tr>
<td><a href="org/apache/commons/codec/digest/Blake3.html">Blake3</a></td>
<td>Provides a pure Java implementation of the <a href="https://github.com/BLAKE3-team/BLAKE3">Blake3 hash function</a> which can be used for
computing <a href="https://en.wikipedia.org/wiki/Cryptographic_hash_function">cryptographic hashes</a> (message digests) which are extensible to
arbitrary output lengths (known as an <i>extensible-output function</i> or <i>XOF</i>), computing <a
href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication codes</a> using a 32 byte (256-bit) secret key, computing
subkeys from a primary key using a <a href="https://en.wikipedia.org/wiki/Key_derivation_function">key derivation function</a>, and can be used as the
basis for a <a href="https://en.wikipedia.org/wiki/Cryptographically-secure_pseudorandom_number_generator"> cryptographically-secure pseudorandom
number generator</a>. <strong>WARNING:</strong> Blake3 is <em>not</em> a password hashing algorithm! An algorithm such as <a
href="https://github.com/P-H-C/phc-winner-argon2">Argon2</a> is more appropriate for password hashing.
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/Crypt.html">Crypt</a></td>
<td>GNU libc crypt(3) compatible hash method.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/DigestUtils.html">DigestUtils</a></td>
<td>Simplifies common <a href="https://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html">MessageDigest</a> tasks and provides GNU
libc crypt(3) compatible password hashing functions.
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/HmacUtils.html">HmacUtils</a></td>
<td>Simplifies common <a href="https://docs.oracle.com/javase/6/docs/api/javax/crypto/Mac.html">Mac</a> tasks. <strong>Note:</strong> Not all JCE
implementations support all algorithms. If not supported, an IllegalArgumentException is thrown.
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/Md5Crypt.html">Md5Crypt</a></td>
<td>The libc crypt() "$1$" and Apache "$apr1$" MD5-based hash algorithm.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/MurmurHash2.html">MurmurHash2</a></td>
<td>Implementation of the MurmurHash2 32-bit and 64-bit hash functions.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/MurmurHash3.html">MurmurHash3</a></td>
<td>Implementation of the MurmurHash3 32-bit and 128-bit hash functions.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/PureJavaCrc32.html">PureJavaCrc32</a></td>
<td>A pure-java implementation of the CRC32 checksum that uses the same polynomial as the built-in native CRC32.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/PureJavaCrc32C.html">PureJavaCrc32C</a></td>
<td>A pure-java implementation of the CRC32 checksum that uses the CRC32-C polynomial, the same polynomial used by iSCSI and implemented on many
Intel chipsets supporting SSE 4.2.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/Sha2Crypt.html">Sha2Crypt</a></td>
<td>SHA2-based Unix crypt implementation.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/UnixCrypt.html">UnixCrypt</a></td>
<td>Unix crypt(3) algorithm implementation. This class only implements the traditional 56 bit DES based algorithm.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/digest/XXHash32.html">XXHash32</a></td>
<td>Implementation of the xxHash32 hash algorithm.</td>
</tr>
</table>
</section>
<section>
<h1>Language Encoders</h1>
<table>
<caption>Language Encoders</caption>
<tr>
<td><a href="org/apache/commons/codec/language/Caverphone1.html">Caverphone 1.0</a></td>
<td>Encodes a string into a Caverphone 1.0 value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/Caverphone2.html">Caverphone 2.0</a></td>
<td>Encodes a string into a Caverphone 2.0 value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/ColognePhonetic.html">Cologne Phonetic</a></td>
<td>Encodes a string into a Cologne Phonetic value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/DaitchMokotoffSoundex.html">Daitch-Mokotoff Soundex</a></td>
<td>Encodes a string into a Daitch-Mokotoff Soundex value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/DoubleMetaphone.html">Double Metaphone</a></td>
<td>Encodes a string into a double metaphone value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/Metaphone.html">Metaphone</a></td>
<td>Encodes a string into a Metaphone value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/RefinedSoundex.html">Refined Soundex</a></td>
<td>Encodes a string into a Refined Soundex value.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/language/Soundex.html">Soundex</a></td>
<td>Encodes a string into a Soundex value.</td>
</tr>
</table>
</section>
<section>
<h1>Network Encoders</h1>
<table>
<caption>Network Encoders</caption>
<tr>
<td><a href="org/apache/commons/codec/net/BCodec.html">BCodec</a></td>
<td>Identical to the Base64 encoding defined by <a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> and allows a character set to be
specified.
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/net/PercentCodec.html">PercentCodec</a></td>
<td>Implements the Percent-Encoding scheme, as described in HTTP 1.1 specification.</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/net/QCodec.html">QCodec</a></td>
<td>Similar to the Quoted-Printable content-transfer-encoding defined in <a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> and designed
to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding.
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/net/QuotedPrintableCodec.html">QuotedPrintableCodec</a></td>
<td>Codec for the Quoted-Printable section of <a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> .
</td>
</tr>
<tr>
<td><a href="org/apache/commons/codec/net/URLCodec.html">URLCodec</a></td>
<td>Implements the <code>www-form-urlencoded</code> encoding scheme, also misleadingly known as URL encoding.
</td>
</tr>
</table>
</section>
</body>
</html>
Loading

0 comments on commit 9062af4

Please sign in to comment.