java.lang.Object
org.docx4j.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 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