Class Base64
java.lang.Object
org.docx4j.org.apache.xml.security.utils.Base64
public class Base64
extends java.lang.Object
Implementation of MIME's Base64 encoding and decoding conversions.
Optimized code. (raw version taken from oreilly.jonathan.util,
and currently org.apache.xerces.ds.util.Base64)
- Author:
- Raul Benito(Of the xerces copy, and little adaptations)., Anli Shundi, Christian Geuer-Pollmann
- See Also:
- RFC 2045,
TransformBase64Decode
-
Field Summary
Fields Modifier and Type Field Description static intBASE64DEFAULTLENGTHField BASE64DEFAULTLENGTH -
Method Summary
Modifier and Type Method Description static byte[]decode(byte[] base64)Method decodestatic voiddecode(byte[] base64Data, java.io.OutputStream os)Decodes Base64 data into outputstreamprotected static voiddecode(byte[] base64Data, java.io.OutputStream os, int len)static byte[]decode(java.io.BufferedReader reader)Base64 decode the lines from the reader and return an InputStream with the bytes.static voiddecode(java.io.InputStream is, java.io.OutputStream os)Decodes Base64 data into outputstreamstatic byte[]decode(java.lang.String encoded)Decodes Base64 data into octetsstatic voiddecode(java.lang.String base64Data, java.io.OutputStream os)Decodes Base64 data into outputstreamstatic byte[]decode(org.w3c.dom.Element element)Method decode Takes theTextchildren of the Element and interprets them as input for theBase64.decode()function.static java.math.BigIntegerdecodeBigIntegerFromElement(org.w3c.dom.Element element)Method decodeBigIntegerFromElementstatic java.math.BigIntegerdecodeBigIntegerFromString(java.lang.String base64str)Decode a base 64 string into aBigIntegerprotected static byte[]decodeInternal(byte[] base64Data, int len)static java.lang.Stringencode(byte[] binaryData)Encode a byte array and fold lines at the standard 76th character unless ignore line breaks property is set.static java.lang.Stringencode(byte[] binaryData, int length)Encode a byte array in Base64 format and return an optionally wrapped line.static java.lang.Stringencode(java.math.BigInteger big)Encode in Base64 the givenBigInteger.static byte[]encode(java.math.BigInteger big, int bitlen)Returns a byte-array representation of aBigInteger.static org.w3c.dom.ElementencodeToElement(org.w3c.dom.Document doc, java.lang.String localName, byte[] bytes)Method encodeToElementstatic voidfillElementWithBigInteger(org.w3c.dom.Element element, java.math.BigInteger biginteger)This method takes an (empty) Element and a BigInteger and adds the base64 encoded BigInteger to the Element.protected static intgetBytesInternal(java.lang.String s, byte[] result)protected static booleanisPad(byte octet)protected static booleanisWhiteSpace(byte octet)protected static intremoveWhiteSpace(byte[] data)remove WhiteSpace from MIME containing encoded Base64 data.
-
Field Details
-
BASE64DEFAULTLENGTH
public static final int BASE64DEFAULTLENGTHField BASE64DEFAULTLENGTH- See Also:
- Constant Field Values
-
-
Method Details
-
encode
public static final java.lang.String encode(java.math.BigInteger big)Encode in Base64 the givenBigInteger.- Parameters:
big-- Returns:
- String with Base64 encoding
-
encode
public static final byte[] encode(java.math.BigInteger big, int bitlen)Returns a byte-array representation of aBigInteger. No sign-bit is output. N.B.:BigInteger's toByteArray returns eventually longer arrays because of the leading sign-bit.- Parameters:
big-BigIntegerto be convertedbitlen-intthe desired length in bits of the representation- Returns:
- a byte array with
bitlenbits ofbig
-
decodeBigIntegerFromElement
public static final java.math.BigInteger decodeBigIntegerFromElement(org.w3c.dom.Element element) throws Base64DecodingExceptionMethod decodeBigIntegerFromElement- Parameters:
element-- Returns:
- the biginteger obtained from the node
- Throws:
Base64DecodingException
-
decodeBigIntegerFromString
public static java.math.BigInteger decodeBigIntegerFromString(java.lang.String base64str) throws Base64DecodingExceptionDecode a base 64 string into aBigInteger- Parameters:
base64str- Base 64 encoded string.- Returns:
- a decoded BigInteger
- Throws:
Base64DecodingException
-
fillElementWithBigInteger
public static final void fillElementWithBigInteger(org.w3c.dom.Element element, java.math.BigInteger biginteger)This method takes an (empty) Element and a BigInteger and adds the base64 encoded BigInteger to the Element.- Parameters:
element-biginteger-
-
decode
Method decode Takes theTextchildren of the Element and interprets them as input for theBase64.decode()function.- Parameters:
element-- Returns:
- the byte obtained of the decoding the element $todo$ not tested yet
- Throws:
Base64DecodingException
-
encodeToElement
public static final org.w3c.dom.Element encodeToElement(org.w3c.dom.Document doc, java.lang.String localName, byte[] bytes)Method encodeToElement- Parameters:
doc-localName-bytes-- Returns:
- an Element with the base64 encoded in the text.
-
decode
Method decode- Parameters:
base64-- Returns:
- the UTF bytes of the base64
- Throws:
Base64DecodingException
-
encode
public static final java.lang.String encode(byte[] binaryData)Encode a byte array and fold lines at the standard 76th character unless ignore line breaks property is set.- Parameters:
binaryData-byte[]to be base64 encoded- Returns:
- the
Stringwith encoded data
-
decode
public static final byte[] decode(java.io.BufferedReader reader) throws java.io.IOException, Base64DecodingExceptionBase64 decode the lines from the reader and return an InputStream with the bytes.- Parameters:
reader-- Returns:
- InputStream with the decoded bytes
- Throws:
java.io.IOException- passes what the reader throwsjava.io.IOExceptionBase64DecodingException
-
isWhiteSpace
protected static final boolean isWhiteSpace(byte octet) -
isPad
protected static final boolean isPad(byte octet) -
encode
public static final java.lang.String encode(byte[] binaryData, int length)Encode a byte array in Base64 format and return an optionally wrapped line.- Parameters:
binaryData-byte[]data to be encodedlength-intlength of wrapped lines; No wrapping if less than 4.- Returns:
- a
Stringwith encoded data
-
decode
Decodes Base64 data into octets- Parameters:
encoded- String containing base64 encoded data- Returns:
- byte array containing the decoded data
- Throws:
Base64DecodingException- if there is a problem decoding the data
-
getBytesInternal
protected static final int getBytesInternal(java.lang.String s, byte[] result) -
decodeInternal
protected static final byte[] decodeInternal(byte[] base64Data, int len) throws Base64DecodingException- Throws:
Base64DecodingException
-
decode
public static final void decode(java.lang.String base64Data, java.io.OutputStream os) throws Base64DecodingException, java.io.IOExceptionDecodes Base64 data into outputstream- Parameters:
base64Data- String containing Base64 dataos- the outputstream- Throws:
java.io.IOExceptionBase64DecodingException
-
decode
public static final void decode(byte[] base64Data, java.io.OutputStream os) throws Base64DecodingException, java.io.IOExceptionDecodes Base64 data into outputstream- Parameters:
base64Data- Byte array containing Base64 dataos- the outputstream- Throws:
java.io.IOExceptionBase64DecodingException
-
decode
protected static final void decode(byte[] base64Data, java.io.OutputStream os, int len) throws Base64DecodingException, java.io.IOException- Throws:
Base64DecodingExceptionjava.io.IOException
-
decode
public static final void decode(java.io.InputStream is, java.io.OutputStream os) throws Base64DecodingException, java.io.IOExceptionDecodes Base64 data into outputstream- Parameters:
is- containing Base64 dataos- the outputstream- Throws:
java.io.IOExceptionBase64DecodingException
-
removeWhiteSpace
protected static final int removeWhiteSpace(byte[] data)remove WhiteSpace from MIME containing encoded Base64 data.- Parameters:
data- the byte array of base64 data (with WS)- Returns:
- the new length
-