org.apache.xml.security.utils
Class Base64

java.lang.Object
  extended by 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
static int BASE64DEFAULTLENGTH
          Field BASE64DEFAULTLENGTH
 
Method Summary
static byte[] decode(BufferedReader reader)
          Base64 decode the lines from the reader and return an InputStream with the bytes.
static byte[] decode(byte[] base64)
          Method decode
static void decode(byte[] base64Data, OutputStream os)
          Decodes Base64 data into outputstream
protected static void decode(byte[] base64Data, OutputStream os, int len)
           
static byte[] decode(Element element)
          Method decode Takes the Text children of the Element and interprets them as input for the Base64.decode() function.
static void decode(InputStream is, OutputStream os)
          Decodes Base64 data into outputstream
static byte[] decode(String encoded)
          Decodes Base64 data into octets
static void decode(String base64Data, OutputStream os)
          Decodes Base64 data into outputstream
static BigInteger decodeBigIntegerFromElement(Element element)
          Method decodeBigIntegerFromElement
static BigInteger decodeBigIntegerFromString(String base64str)
          Decode a base 64 string into a BigInteger
protected static byte[] decodeInternal(byte[] base64Data, int len)
           
static String encode(BigInteger big)
          Encode in Base64 the given BigInteger.
static byte[] encode(BigInteger big, int bitlen)
          Returns a byte-array representation of a BigInteger.
static String encode(byte[] binaryData)
          Encode a byte array and fold lines at the standard 76th character unless ignore line breaks property is set.
static String encode(byte[] binaryData, int length)
          Encode a byte array in Base64 format and return an optionally wrapped line.
static Element encodeToElement(Document doc, String localName, byte[] bytes)
          Method encodeToElement
static void fillElementWithBigInteger(Element element, BigInteger biginteger)
          This method takes an (empty) Element and a BigInteger and adds the base64 encoded BigInteger to the Element.
protected static int getBytesInternal(String s, byte[] result)
           
protected static boolean isPad(byte octet)
           
protected static boolean isWhiteSpace(byte octet)
           
protected static int removeWhiteSpace(byte[] data)
          remove WhiteSpace from MIME containing encoded Base64 data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 given BigInteger.

Parameters:
big -
Returns:
String with Base64 encoding

encode

public static final byte[] encode(BigInteger big,
                                  int bitlen)
Returns a byte-array representation of a BigInteger. No sign-bit is output. N.B.: BigInteger's toByteArray returns eventually longer arrays because of the leading sign-bit.

Parameters:
big - BigInteger to be converted
bitlen - int the desired length in bits of the representation
Returns:
a byte array with bitlen bits of big

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 a BigInteger

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 the Text children of the Element and interprets them as input for the Base64.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 Base64DecodingException
Method 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 String with 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 throws
IOException
Base64DecodingException

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 encoded
length - int length of wrapped lines; No wrapping if less than 4.
Returns:
a String with 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 data
os - the outputstream
Throws:
IOException
Base64DecodingException

decode

public static final void decode(byte[] base64Data,
                                OutputStream os)
                         throws Base64DecodingException,
                                IOException
Decodes Base64 data into outputstream

Parameters:
base64Data - Byte array containing Base64 data
os - the outputstream
Throws:
IOException
Base64DecodingException

decode

protected static final void decode(byte[] base64Data,
                                   OutputStream os,
                                   int len)
                            throws Base64DecodingException,
                                   IOException
Throws:
Base64DecodingException
IOException

decode

public static final void decode(InputStream is,
                                OutputStream os)
                         throws Base64DecodingException,
                                IOException
Decodes Base64 data into outputstream

Parameters:
is - containing Base64 data
os - the outputstream
Throws:
IOException
Base64DecodingException

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


Copyright © 2000–2014 The Apache Software Foundation. All rights reserved.