org.apache.commons.ssl
public class Base64 extends Object
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.
Modifier and Type | Field and Description |
---|---|
private static byte[] |
base64Alphabet
Contains the Base64 values
0 through 63 accessed by using character encodings as
indices. |
(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.
|
private static byte[] |
lookUpBase64Alphabet
Contains the Base64 encodings
A through Z , followed by a through
z , followed by 0 through 9 , followed by + , and
/ . |
(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.
|
Constructor and Description |
---|
Base64() |
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] pArray)
Decodes a byte[] containing containing
characters in the Base64 alphabet.
|
Object |
decode(Object pObject)
Decodes an Object using the base64 algorithm.
|
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.
|
Object |
encode(Object pObject)
Encodes an Object using the base64 algorithm.
|
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.
|
static boolean |
isBase64(byte b)
Returns whether or not the
octect is in the base 64 alphabet. |
static final int CHUNK_SIZE
The character limit does not count the trailing CRLF, but counts all other characters, including any equal signs.
static final byte[] CHUNK_SEPARATOR
static final int BASELENGTH
static final int LOOKUPLENGTH
static final int EIGHTBIT
static final int SIXTEENBIT
static final int TWENTYFOURBITGROUP
static final int FOURBYTE
static final int SIGN
static final byte PAD
private static byte[] base64Alphabet
0
through 63
accessed by using character encodings as
indices.
For example, base64Alphabet['+']
returns 62
.
The value of undefined encodings is -1
.
private static byte[] lookUpBase64Alphabet
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 '+'
.
public Base64()
public static boolean isBase64(byte b)
octect
is in the base 64 alphabet.b
- The value to testtrue
if the value is defined in the the base 64 alphabet, false
otherwise.public static boolean isArrayByteBase64(byte[] arrayOctect)
arrayOctect
- byte array to testtrue
if all bytes are valid characters in the Base64
alphabet or if the byte array is empty; false, otherwisepublic static byte[] encodeBase64(byte[] binaryData)
binaryData
- binary data to encodepublic static byte[] encodeBase64Chunked(byte[] binaryData)
binaryData
- binary data to encodepublic Object decode(Object pObject) throws IllegalArgumentException
pObject
- Object to decodeIllegalArgumentException
- if the parameter supplied is not
of type byte[]public byte[] decode(byte[] pArray)
pArray
- A byte array containing Base64 character datapublic static byte[] encodeBase64(byte[] binaryData, boolean isChunked)
binaryData
- Array containing binary data to encode.isChunked
- if true
this encoder will chunk
the base64 output into 76 character blockspublic static byte[] decodeBase64(byte[] base64Data)
base64Data
- Byte array containing Base64 datastatic byte[] discardWhitespace(byte[] data)
data
- The base-64 encoded data to discard the whitespace
from.static byte[] discardNonBase64(byte[] data)
data
- The base-64 encoded data to groompublic Object encode(Object pObject) throws IllegalArgumentException
pObject
- Object to encodeIllegalArgumentException
- if the parameter supplied is not
of type byte[]public byte[] encode(byte[] pArray)
pArray
- a byte array containing binary data