Skip to content

Commit 9062af4

Browse files
committed
2 parents 963ee73 + 94b9c51 commit 9062af4

12 files changed

+268
-396
lines changed

TODO TODO.txt

+4-6
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
* limitations under the License.
1616
*/
1717

18+
[This file is very old and possibly out of date compared to what is in Jira.]
19+
1820
This is a list of action items to be finished in the [codec] project.
1921
This TODO list reflects the current direction of development, and
2022
should be updated by all committers when a known issues or task
@@ -33,11 +35,7 @@ When a task in the TODO list is done, change the changes.xml document in xdocs
3335
* Add a Rot13 implementation to text package
3436

3537
* figure out a better way to supply test data and expected input/output
36-
to the JUNIT test cases
38+
to the JUnit test cases
3739

3840
* develop multiple distributions for projects that only wish to use
39-
a specific class, and are worried about footprint (memory and diskspace).
40-
41-
42-
43-
41+
a specific class, and are worried about footprint (memory and disk space).

src/assembly/bin.xml

+29-30
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,33 @@
1414
See the License for the specific language governing permissions and
1515
limitations under the License.
1616
-->
17-
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
18-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
19-
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
20-
<id>bin</id>
21-
<formats>
22-
<format>tar.gz</format>
23-
<format>zip</format>
24-
</formats>
25-
<includeSiteDirectory>false</includeSiteDirectory>
26-
<fileSets>
27-
<fileSet>
28-
<includes>
29-
<include>LICENSE.txt</include>
30-
<include>NOTICE.txt</include>
31-
<include>RELEASE-NOTES.txt</include>
32-
</includes>
33-
</fileSet>
34-
<fileSet>
35-
<directory>target</directory>
36-
<outputDirectory></outputDirectory>
37-
<includes>
38-
<include>*.jar</include>
39-
</includes>
40-
<fileMode>644</fileMode>
41-
</fileSet>
42-
<fileSet>
43-
<directory>target/site/apidocs</directory>
44-
<outputDirectory>apidocs</outputDirectory>
45-
</fileSet>
46-
</fileSets>
17+
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18+
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0 https://maven.apache.org/xsd/assembly-2.2.0.xsd">
19+
<id>bin</id>
20+
<formats>
21+
<format>tar.gz</format>
22+
<format>zip</format>
23+
</formats>
24+
<includeSiteDirectory>false</includeSiteDirectory>
25+
<fileSets>
26+
<fileSet>
27+
<includes>
28+
<include>LICENSE.txt</include>
29+
<include>NOTICE.txt</include>
30+
<include>RELEASE-NOTES.txt</include>
31+
</includes>
32+
</fileSet>
33+
<fileSet>
34+
<directory>target</directory>
35+
<outputDirectory></outputDirectory>
36+
<includes>
37+
<include>*.jar</include>
38+
</includes>
39+
<fileMode>644</fileMode>
40+
</fileSet>
41+
<fileSet>
42+
<directory>target/site/apidocs</directory>
43+
<outputDirectory>apidocs</outputDirectory>
44+
</fileSet>
45+
</fileSets>
4746
</assembly>

src/main/java/org/apache/commons/codec/binary/Base16.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base16 encoding and decoding.
25+
* 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>.
2626
*
2727
* <p>
2828
* This class is thread-safe.

src/main/java/org/apache/commons/codec/binary/Base16InputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base16 encoding and decoding in a streaming fashion (unlimited size).
25+
* Provides Base16 decoding in a streaming fashion (unlimited size).
2626
* <p>
2727
* The default behavior of the Base16InputStream is to DECODE, whereas the default behavior of the
2828
* {@link Base16OutputStream} is to ENCODE, but this behavior can be overridden by using a different constructor.

src/main/java/org/apache/commons/codec/binary/Base16OutputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Hex encoding and decoding in a streaming fashion (unlimited size).
25+
* Provides Hex encoding in a streaming fashion (unlimited size).
2626
* <p>
2727
* The default behavior of the HexOutputStream is to ENCODE, whereas the default behavior of the
2828
* {@link Base16InputStream} is to DECODE. But this behavior can be overridden by using a different constructor.

src/main/java/org/apache/commons/codec/binary/Base32InputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base32 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
25+
* Provides Base32 decoding in a streaming fashion (unlimited size). When encoding the default lineLength
2626
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
2727
* constructor.
2828
* <p>

src/main/java/org/apache/commons/codec/binary/Base32OutputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base32 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
25+
* Provides Base32 encoding in a streaming fashion (unlimited size). When encoding the default lineLength
2626
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
2727
* constructor.
2828
* <p>

src/main/java/org/apache/commons/codec/binary/Base64InputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base64 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
25+
* Provides Base64 decoding in a streaming fashion (unlimited size). When encoding the default lineLength
2626
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
2727
* constructor.
2828
* <p>

src/main/java/org/apache/commons/codec/binary/Base64OutputStream.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.apache.commons.codec.CodecPolicy;
2323

2424
/**
25-
* Provides Base64 encoding and decoding in a streaming fashion (unlimited size). When encoding the default lineLength
25+
* Provides Base64 encoding in a streaming fashion (unlimited size). When encoding the default lineLength
2626
* is 76 characters and the default lineEnding is CRLF, but these can be overridden by using the appropriate
2727
* constructor.
2828
* <p>

src/main/javadoc/overview.html

+223
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one or more
3+
contributor license agreements. See the NOTICE file distributed with
4+
this work for additional information regarding copyright ownership.
5+
The ASF licenses this file to You under the Apache License, Version 2.0
6+
(the "License"); you may not use this file except in compliance with
7+
the License. You may obtain a copy of the License at
8+
9+
https://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
<html>
18+
<head>
19+
<title>Apache Commons Codec Overview</title>
20+
</head>
21+
<body>
22+
<img src="../images/commons-logo.png" alt="Apache Commons Codec">
23+
<p>Apache Commons Codec consists of a set of utilities and a simple framework for encoding and decoding text and binary data.</p>
24+
<p>
25+
You can find the Javadoc package list at the <a href="#all-packages-table">bottom of this page</a>.
26+
</p>
27+
<section>
28+
<h1>Binary Encoders</h1>
29+
<p>Interfaces and classes used by the various implementations in the sub-packages.</p>
30+
<table>
31+
<caption>Binary Encoders</caption>
32+
<tr>
33+
<td><a href="org/apache/commons/codec/binary/Base16.html">Base16 </a></td>
34+
<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>
35+
</td>
36+
</tr>
37+
<tr>
38+
<td><a href="org/apache/commons/codec/binary/Base16InputStream.html">Base16InputStream </a></td>
39+
<td>Provides Base16 decoding in a streaming fashion (unlimited size).</td>
40+
</tr>
41+
<tr>
42+
<td><a href="org/apache/commons/codec/binary/Base16OutputStream.html">Base16OutputStream </a></td>
43+
<td>Provides Base16 encoding in a streaming fashion (unlimited size).</td>
44+
</tr>
45+
<tr>
46+
<tr>
47+
<td><a href="org/apache/commons/codec/binary/Base32.html">Base32 </a></td>
48+
<td>Provides Base32 encoding and decoding as defined by <a href="https://www.ietf.org/rfc/rfc4648.txt">RFC 4648</a>
49+
</td>
50+
</tr>
51+
<tr>
52+
<td><a href="org/apache/commons/codec/binary/Base32InputStream.html">Base32InputStream </a></td>
53+
<td>Provides Base32 decoding in a streaming fashion (unlimited size).</td>
54+
</tr>
55+
<tr>
56+
<td><a href="org/apache/commons/codec/binary/Base32OutputStream.html">Base32OutputStream </a></td>
57+
<td>Provides Base32 encoding in a streaming fashion (unlimited size).</td>
58+
</tr>
59+
<tr>
60+
<td><a href="org/apache/commons/codec/binary/Base64.html"> Base64 </a></td>
61+
<td>Provides Base64 encoding and decoding as defined by <a href="https://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>
62+
</td>
63+
</tr>
64+
<tr>
65+
<td><a href="org/apache/commons/codec/binary/Base64InputStream.html">Base64InputStream </a></td>
66+
<td>Provides Base64 decoding in a streaming fashion (unlimited size).</td>
67+
</tr>
68+
<tr>
69+
<td><a href="org/apache/commons/codec/binary/Base64OutputStream.html">Base64OutputStream </a></td>
70+
<td>Provides Base64 encoding in a streaming fashion (unlimited size).</td>
71+
</tr>
72+
<tr>
73+
<td><a href="org/apache/commons/codec/binary/BinaryCodec.html"> BinaryCodec </a></td>
74+
<td>Converts between byte arrays and strings of "0"s and "1"s.</td>
75+
</tr>
76+
<tr>
77+
<td><a href="org/apache/commons/codec/binary/Hex.html"> Hex </a></td>
78+
<td>Converts hexadecimal Strings.</td>
79+
</tr>
80+
</table>
81+
</section>
82+
<section>
83+
<h1>Digest Encoders</h1>
84+
<p>
85+
<strong>WARNING:</strong> Some of the functions in this package might not be suitable for cryptography, or are no longer cryptographically-secure.
86+
</p>
87+
<table>
88+
<caption>Digest Encoders</caption>
89+
<tr>
90+
<td><a href="org/apache/commons/codec/digest/Blake3.html">Blake3</a></td>
91+
<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
92+
computing <a href="https://en.wikipedia.org/wiki/Cryptographic_hash_function">cryptographic hashes</a> (message digests) which are extensible to
93+
arbitrary output lengths (known as an <i>extensible-output function</i> or <i>XOF</i>), computing <a
94+
href="https://en.wikipedia.org/wiki/Message_authentication_code">message authentication codes</a> using a 32 byte (256-bit) secret key, computing
95+
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
96+
basis for a <a href="https://en.wikipedia.org/wiki/Cryptographically-secure_pseudorandom_number_generator"> cryptographically-secure pseudorandom
97+
number generator</a>. <strong>WARNING:</strong> Blake3 is <em>not</em> a password hashing algorithm! An algorithm such as <a
98+
href="https://github.com/P-H-C/phc-winner-argon2">Argon2</a> is more appropriate for password hashing.
99+
</td>
100+
</tr>
101+
<tr>
102+
<td><a href="org/apache/commons/codec/digest/Crypt.html">Crypt</a></td>
103+
<td>GNU libc crypt(3) compatible hash method.</td>
104+
</tr>
105+
<tr>
106+
<td><a href="org/apache/commons/codec/digest/DigestUtils.html">DigestUtils</a></td>
107+
<td>Simplifies common <a href="https://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html">MessageDigest</a> tasks and provides GNU
108+
libc crypt(3) compatible password hashing functions.
109+
</td>
110+
</tr>
111+
<tr>
112+
<td><a href="org/apache/commons/codec/digest/HmacUtils.html">HmacUtils</a></td>
113+
<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
114+
implementations support all algorithms. If not supported, an IllegalArgumentException is thrown.
115+
</td>
116+
</tr>
117+
<tr>
118+
<td><a href="org/apache/commons/codec/digest/Md5Crypt.html">Md5Crypt</a></td>
119+
<td>The libc crypt() "$1$" and Apache "$apr1$" MD5-based hash algorithm.</td>
120+
</tr>
121+
<tr>
122+
<td><a href="org/apache/commons/codec/digest/MurmurHash2.html">MurmurHash2</a></td>
123+
<td>Implementation of the MurmurHash2 32-bit and 64-bit hash functions.</td>
124+
</tr>
125+
<tr>
126+
<td><a href="org/apache/commons/codec/digest/MurmurHash3.html">MurmurHash3</a></td>
127+
<td>Implementation of the MurmurHash3 32-bit and 128-bit hash functions.</td>
128+
</tr>
129+
<tr>
130+
<td><a href="org/apache/commons/codec/digest/PureJavaCrc32.html">PureJavaCrc32</a></td>
131+
<td>A pure-java implementation of the CRC32 checksum that uses the same polynomial as the built-in native CRC32.</td>
132+
</tr>
133+
<tr>
134+
<td><a href="org/apache/commons/codec/digest/PureJavaCrc32C.html">PureJavaCrc32C</a></td>
135+
<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
136+
Intel chipsets supporting SSE 4.2.</td>
137+
</tr>
138+
<tr>
139+
<td><a href="org/apache/commons/codec/digest/Sha2Crypt.html">Sha2Crypt</a></td>
140+
<td>SHA2-based Unix crypt implementation.</td>
141+
</tr>
142+
<tr>
143+
<td><a href="org/apache/commons/codec/digest/UnixCrypt.html">UnixCrypt</a></td>
144+
<td>Unix crypt(3) algorithm implementation. This class only implements the traditional 56 bit DES based algorithm.</td>
145+
</tr>
146+
<tr>
147+
<td><a href="org/apache/commons/codec/digest/XXHash32.html">XXHash32</a></td>
148+
<td>Implementation of the xxHash32 hash algorithm.</td>
149+
</tr>
150+
</table>
151+
</section>
152+
<section>
153+
<h1>Language Encoders</h1>
154+
<table>
155+
<caption>Language Encoders</caption>
156+
<tr>
157+
<td><a href="org/apache/commons/codec/language/Caverphone1.html">Caverphone 1.0</a></td>
158+
<td>Encodes a string into a Caverphone 1.0 value.</td>
159+
</tr>
160+
<tr>
161+
<td><a href="org/apache/commons/codec/language/Caverphone2.html">Caverphone 2.0</a></td>
162+
<td>Encodes a string into a Caverphone 2.0 value.</td>
163+
</tr>
164+
<tr>
165+
<td><a href="org/apache/commons/codec/language/ColognePhonetic.html">Cologne Phonetic</a></td>
166+
<td>Encodes a string into a Cologne Phonetic value.</td>
167+
</tr>
168+
<tr>
169+
<td><a href="org/apache/commons/codec/language/DaitchMokotoffSoundex.html">Daitch-Mokotoff Soundex</a></td>
170+
<td>Encodes a string into a Daitch-Mokotoff Soundex value.</td>
171+
</tr>
172+
<tr>
173+
<td><a href="org/apache/commons/codec/language/DoubleMetaphone.html">Double Metaphone</a></td>
174+
<td>Encodes a string into a double metaphone value.</td>
175+
</tr>
176+
<tr>
177+
<td><a href="org/apache/commons/codec/language/Metaphone.html">Metaphone</a></td>
178+
<td>Encodes a string into a Metaphone value.</td>
179+
</tr>
180+
<tr>
181+
<td><a href="org/apache/commons/codec/language/RefinedSoundex.html">Refined Soundex</a></td>
182+
<td>Encodes a string into a Refined Soundex value.</td>
183+
</tr>
184+
<tr>
185+
<td><a href="org/apache/commons/codec/language/Soundex.html">Soundex</a></td>
186+
<td>Encodes a string into a Soundex value.</td>
187+
</tr>
188+
</table>
189+
</section>
190+
<section>
191+
<h1>Network Encoders</h1>
192+
<table>
193+
<caption>Network Encoders</caption>
194+
<tr>
195+
<td><a href="org/apache/commons/codec/net/BCodec.html">BCodec</a></td>
196+
<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
197+
specified.
198+
</td>
199+
</tr>
200+
<tr>
201+
<td><a href="org/apache/commons/codec/net/PercentCodec.html">PercentCodec</a></td>
202+
<td>Implements the Percent-Encoding scheme, as described in HTTP 1.1 specification.</td>
203+
</tr>
204+
<tr>
205+
<td><a href="org/apache/commons/codec/net/QCodec.html">QCodec</a></td>
206+
<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
207+
to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding.
208+
</td>
209+
</tr>
210+
<tr>
211+
<td><a href="org/apache/commons/codec/net/QuotedPrintableCodec.html">QuotedPrintableCodec</a></td>
212+
<td>Codec for the Quoted-Printable section of <a href="https://www.ietf.org/rfc/rfc1521.txt">RFC 1521</a> .
213+
</td>
214+
</tr>
215+
<tr>
216+
<td><a href="org/apache/commons/codec/net/URLCodec.html">URLCodec</a></td>
217+
<td>Implements the <code>www-form-urlencoded</code> encoding scheme, also misleadingly known as URL encoding.
218+
</td>
219+
</tr>
220+
</table>
221+
</section>
222+
</body>
223+
</html>

0 commit comments

Comments
 (0)