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:
  • Field Details

    • BASE64DEFAULTLENGTH

      public static final int BASE64DEFAULTLENGTH
      Field BASE64DEFAULTLENGTH
      See Also:
  • Method Details

    • encode

      public static String encode(BigInteger big)
      Encode in Base64 the given BigInteger.
      Parameters:
      big -
      Returns:
      String with Base64 encoding
    • encode

      public static byte[] encode(BigInteger big, int bitlen)
      Returns a byte-array representation of a BigInteger. No sign-bit is outputed. N.B.: BigInteger's toByteArray retunrs 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 BigInteger decodeBigIntegerFromElement(Element element) throws Base64DecodingException
      Method decodeBigIntegerFromElement
      Parameters:
      element -
      Returns:
      the biginter obtained from the node
      Throws:
      Base64DecodingException
    • decodeBigIntegerFromText

      public static BigInteger decodeBigIntegerFromText(Text text) throws Base64DecodingException
      Method decodeBigIntegerFromText
      Parameters:
      text -
      Returns:
      the biginter obtained from the text node
      Throws:
      Base64DecodingException
    • fillElementWithBigInteger

      public 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.
      Parameters:
      element -
      biginteger -
    • decode

      public static 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 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 byte[] decode(byte[] base64) throws Base64DecodingException
      Method decode
      Parameters:
      base64 -
      Returns:
      the UTF bytes of the base64
      Throws:
      Base64DecodingException
    • encode

      public static String encode(byte[] binaryData)
      Encode a byte array and fold lines at the standard 76th character.
      Parameters:
      binaryData - byte[] to be base64 encoded
      Returns:
      the String with encoded data
    • decode

      public static 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
    • main

      public static void main(String[] args) throws Exception
      Method main
      Parameters:
      args -
      Throws:
      Exception
    • isWhiteSpace

      protected static final boolean isWhiteSpace(byte octect)
    • isPad

      protected static final boolean isPad(byte octect)
    • encode

      public static 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 octects
      Parameters:
      encoded - Byte array containing Base64 data
      Returns:
      Array containind decoded data.
      Throws:
      Base64DecodingException
    • decodeInternal

      protected static final byte[] decodeInternal(byte[] base64Data) throws Base64DecodingException
      Throws:
      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

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