Package org.apache.xml.security.utils
Class Base64
- java.lang.Object
-
- org.apache.xml.security.utils.Base64
-
public class Base64 extends 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
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]decode(byte[] base64)Method decodestatic voiddecode(byte[] base64Data, OutputStream os)Decodes Base64 data into outputstreamprotected static voiddecode(byte[] base64Data, OutputStream os, int len)static byte[]decode(BufferedReader reader)Base64 decode the lines from the reader and return an InputStream with the bytes.static voiddecode(InputStream is, OutputStream os)Decodes Base64 data into outputstreamstatic byte[]decode(String encoded)Decodes Base64 data into octetsstatic voiddecode(String base64Data, OutputStream os)Decodes Base64 data into outputstreamstatic byte[]decode(Element element)Method decode Takes theTextchildren of the Element and interprets them as input for theBase64.decode()function.static BigIntegerdecodeBigIntegerFromElement(Element element)Method decodeBigIntegerFromElementstatic BigIntegerdecodeBigIntegerFromString(String base64str)Decode a base 64 string into aBigIntegerprotected static byte[]decodeInternal(byte[] base64Data, int len)static Stringencode(byte[] binaryData)Encode a byte array and fold lines at the standard 76th character unless ignore line breaks property is set.static Stringencode(byte[] binaryData, int length)Encode a byte array in Base64 format and return an optionally wrapped line.static Stringencode(BigInteger big)Encode in Base64 the givenBigInteger.static byte[]encode(BigInteger big, int bitlen)Returns a byte-array representation of aBigInteger.static ElementencodeToElement(Document doc, String localName, byte[] bytes)Method encodeToElementstatic voidfillElementWithBigInteger(Element element, BigInteger biginteger)This method takes an (empty) Element and a BigInteger and adds the base64 encoded BigInteger to the Element.protected static intgetBytesInternal(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 Detail
-
BASE64DEFAULTLENGTH
public static final int BASE64DEFAULTLENGTH
Field BASE64DEFAULTLENGTH- See Also:
- Constant Field Values
-
-
Method Detail
-
encode
public static final String encode(BigInteger big)
Encode in Base64 the givenBigInteger.- Parameters:
big-- Returns:
- String with Base64 encoding
-
encode
public static final byte[] encode(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 BigInteger decodeBigIntegerFromElement(Element element) throws Base64DecodingException
Method decodeBigIntegerFromElement- Parameters:
element-- Returns:
- the biginteger obtained from the node
- Throws:
Base64DecodingException
-
decodeBigIntegerFromString
public static BigInteger decodeBigIntegerFromString(String base64str) throws Base64DecodingException
Decode a base 64 string into aBigInteger- Parameters:
base64str- Base 64 encoded string.- Returns:
- a decoded BigInteger
- Throws:
Base64DecodingException
-
fillElementWithBigInteger
public static final void fillElementWithBigInteger(Element element, BigInteger biginteger)
This method takes an (empty) Element and a BigInteger and adds the base64 encoded BigInteger to the Element.- Parameters:
element-biginteger-
-
decode
public static final byte[] decode(Element element) throws Base64DecodingException
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 Element encodeToElement(Document doc, String localName, byte[] bytes)
Method encodeToElement- Parameters:
doc-localName-bytes-- Returns:
- an Element with the base64 encoded in the text.
-
decode
public static final byte[] decode(byte[] base64) throws Base64DecodingExceptionMethod decode- Parameters:
base64-- Returns:
- the UTF bytes of the base64
- Throws:
Base64DecodingException
-
encode
public static final 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(BufferedReader reader) throws IOException, Base64DecodingException
Base64 decode the lines from the reader and return an InputStream with the bytes.- Parameters:
reader-- Returns:
- InputStream with the decoded bytes
- Throws:
IOException- passes what the reader throwsIOExceptionBase64DecodingException
-
isWhiteSpace
protected static final boolean isWhiteSpace(byte octet)
-
isPad
protected static final boolean isPad(byte octet)
-
encode
public static final 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
public static final byte[] decode(String encoded) throws Base64DecodingException
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(String s, byte[] result)
-
decodeInternal
protected static final byte[] decodeInternal(byte[] base64Data, int len) throws Base64DecodingException- Throws:
Base64DecodingException
-
decode
public static final void decode(String base64Data, OutputStream os) throws Base64DecodingException, IOException
Decodes Base64 data into outputstream- Parameters:
base64Data- String containing Base64 dataos- the outputstream- Throws:
IOExceptionBase64DecodingException
-
decode
public static final void decode(byte[] base64Data, OutputStream os) throws Base64DecodingException, IOExceptionDecodes Base64 data into outputstream- Parameters:
base64Data- Byte array containing Base64 dataos- the outputstream- Throws:
IOExceptionBase64DecodingException
-
decode
protected static final void decode(byte[] base64Data, OutputStream os, int len) throws Base64DecodingException, IOException- Throws:
Base64DecodingExceptionIOException
-
decode
public static final void decode(InputStream is, OutputStream os) throws Base64DecodingException, IOException
Decodes Base64 data into outputstream- Parameters:
is- containing Base64 dataos- the outputstream- Throws:
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
-
-