org.codehaus.plexus.util
Class Base64
java.lang.Object
org.codehaus.plexus.util.Base64
public class Base64
extends java.lang.Object
Provides Base64 encoding and decoding as defined by RFC 2045.
This class implements section
6.8. Base64 Content-Transfer-Encoding
from RFC 2045
Multipurpose Internet Mail Extensions (MIME) Part One:
Format of Internet Message Bodies by Freed and Borenstein.
$Id: Base64.java 2656 2005-10-11 12:37:02Z brett $- Apache Software Foundation
(package private) static int | BASELENGTH - The base length.
|
(package private) static byte[] | CHUNK_SEPARATOR - Chunk separator per RFC 2045 section 2.1.
|
(package private) static int | CHUNK_SIZE - Chunk size per RFC 2045 section 6.8.
|
(package private) static int | EIGHTBIT - Used to calculate the number of bits in a byte.
|
(package private) static int | FOURBYTE - Used to get the number of Quadruples.
|
(package private) static int | LOOKUPLENGTH - Lookup length.
|
(package private) static byte | PAD - Byte used to pad output.
|
(package private) static int | SIGN - Used to test the sign of a byte.
|
(package private) static int | SIXTEENBIT - Used when encoding something which has fewer than 24 bits.
|
(package private) static int | TWENTYFOURBITGROUP - Used to determine how many bits data contains.
|
private static byte[] | base64Alphabet - Contains the Base64 values
0 through 63 accessed by using character encodings as
indices.
|
private static byte[] | lookUpBase64Alphabet -
Contains the Base64 encodings
A through Z , followed by a through
z , followed by 0 through 9 , followed by + , and
/ .
|
byte[] | decode(byte[] pArray) - Decodes a byte[] containing containing
characters in the Base64 alphabet.
|
static byte[] | decodeBase64(byte[] base64Data) - Decodes Base64 data into octects
|
(package private) static byte[] | discardNonBase64(byte[] data) - Discards any characters outside of the base64 alphabet, per
the requirements on page 25 of RFC 2045 - "Any characters
outside of the base64 alphabet are to be ignored in base64
encoded data."
|
(package private) static byte[] | discardWhitespace(byte[] data) - Discards any whitespace from a base-64 encoded block.
|
byte[] | encode(byte[] pArray) - Encodes a byte[] containing binary data, into a byte[] containing
characters in the Base64 alphabet.
|
static byte[] | encodeBase64(byte[] binaryData) - Encodes binary data using the base64 algorithm but
does not chunk the output.
|
static byte[] | encodeBase64(byte[] binaryData, boolean isChunked) - Encodes binary data using the base64 algorithm, optionally
chunking the output into 76 character blocks.
|
static byte[] | encodeBase64Chunked(byte[] binaryData) - Encodes binary data using the base64 algorithm and chunks
the encoded output into 76 character blocks
|
static boolean | isArrayByteBase64(byte[] arrayOctect) - Tests a given byte array to see if it contains
only valid characters within the Base64 alphabet.
|
private static boolean | isBase64(byte octect) - Returns whether or not the
octect is in the base 64 alphabet.
|
BASELENGTH
(package private) static final int BASELENGTH
The base length.
CHUNK_SEPARATOR
(package private) static final byte[] CHUNK_SEPARATOR
Chunk separator per RFC 2045 section 2.1.
CHUNK_SIZE
(package private) static final int CHUNK_SIZE
Chunk size per RFC 2045 section 6.8.
The character limit does not count the trailing CRLF, but counts
all other characters, including any equal signs.
EIGHTBIT
(package private) static final int EIGHTBIT
Used to calculate the number of bits in a byte.
FOURBYTE
(package private) static final int FOURBYTE
Used to get the number of Quadruples.
LOOKUPLENGTH
(package private) static final int LOOKUPLENGTH
Lookup length.
PAD
(package private) static final byte PAD
Byte used to pad output.
SIGN
(package private) static final int SIGN
Used to test the sign of a byte.
SIXTEENBIT
(package private) static final int SIXTEENBIT
Used when encoding something which has fewer than 24 bits.
TWENTYFOURBITGROUP
(package private) static final int TWENTYFOURBITGROUP
Used to determine how many bits data contains.
base64Alphabet
private static byte[] base64Alphabet
Contains the Base64 values
0
through
63
accessed by using character encodings as
indices.
For example,
base64Alphabet['+']
returns
62
.
The value of undefined encodings is
-1
.
lookUpBase64Alphabet
private static byte[] lookUpBase64Alphabet
Contains the Base64 encodings
A
through
Z
, followed by
a
through
z
, followed by
0
through
9
, followed by
+
, and
/
.
This array is accessed by using character values as indices.
For example,
lookUpBase64Alphabet[62]
returns
'+'
.
decode
public byte[] decode(byte[] pArray)
Decodes a byte[] containing containing
characters in the Base64 alphabet.
pArray
- A byte array containing Base64 character data
- a byte array containing binary data
decodeBase64
public static byte[] decodeBase64(byte[] base64Data)
Decodes Base64 data into octects
base64Data
- Byte array containing Base64 data
- Array containing decoded data.
discardNonBase64
(package private) static byte[] discardNonBase64(byte[] data)
Discards any characters outside of the base64 alphabet, per
the requirements on page 25 of RFC 2045 - "Any characters
outside of the base64 alphabet are to be ignored in base64
encoded data."
data
- The base-64 encoded data to groom
- The data, less non-base64 characters (see RFC 2045).
discardWhitespace
(package private) static byte[] discardWhitespace(byte[] data)
Discards any whitespace from a base-64 encoded block.
data
- The base-64 encoded data to discard the whitespace
from.
- The data, less whitespace (see RFC 2045).
encode
public byte[] encode(byte[] pArray)
Encodes a byte[] containing binary data, into a byte[] containing
characters in the Base64 alphabet.
pArray
- a byte array containing binary data
- A byte array containing only Base64 character data
encodeBase64
public static byte[] encodeBase64(byte[] binaryData)
Encodes binary data using the base64 algorithm but
does not chunk the output.
binaryData
- binary data to encode
encodeBase64
public static byte[] encodeBase64(byte[] binaryData,
boolean isChunked)
Encodes binary data using the base64 algorithm, optionally
chunking the output into 76 character blocks.
binaryData
- Array containing binary data to encode.isChunked
- if true
this encoder will chunk
the base64 output into 76 character blocks
encodeBase64Chunked
public static byte[] encodeBase64Chunked(byte[] binaryData)
Encodes binary data using the base64 algorithm and chunks
the encoded output into 76 character blocks
binaryData
- binary data to encode
- Base64 characters chunked in 76 character blocks
isArrayByteBase64
public static boolean isArrayByteBase64(byte[] arrayOctect)
Tests a given byte array to see if it contains
only valid characters within the Base64 alphabet.
arrayOctect
- byte array to test
true
if all bytes are valid characters in the Base64
alphabet or if the byte array is empty; false, otherwise
isBase64
private static boolean isBase64(byte octect)
Returns whether or not the octect
is in the base 64 alphabet.
octect
- The value to test
true
if the value is defined in the the base 64 alphabet, false
otherwise.