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 int BASE64DEFAULTLENGTH
    Field BASE64DEFAULTLENGTH
  • Method Summary

    Modifier and Type Method Description
    static byte[] decode​(byte[] base64)
    Method decode
    static void decode​(byte[] base64Data, java.io.OutputStream os)
    Decodes Base64 data into outputstream
    protected static void decode​(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 void decode​(java.io.InputStream is, java.io.OutputStream os)
    Decodes Base64 data into outputstream
    static byte[] decode​(java.lang.String encoded)
    Decodes Base64 data into octets
    static void decode​(java.lang.String base64Data, java.io.OutputStream os)
    Decodes Base64 data into outputstream
    static byte[] decode​(org.w3c.dom.Element element)
    Method decode Takes the Text children of the Element and interprets them as input for the Base64.decode() function.
    static java.math.BigInteger decodeBigIntegerFromElement​(org.w3c.dom.Element element)
    Method decodeBigIntegerFromElement
    static java.math.BigInteger decodeBigIntegerFromString​(java.lang.String base64str)
    Decode a base 64 string into a BigInteger
    protected static byte[] decodeInternal​(byte[] base64Data, int len)  
    static 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.
    static java.lang.String encode​(byte[] binaryData, int length)
    Encode a byte array in Base64 format and return an optionally wrapped line.
    static java.lang.String encode​(java.math.BigInteger big)
    Encode in Base64 the given BigInteger.
    static byte[] encode​(java.math.BigInteger big, int bitlen)
    Returns a byte-array representation of a BigInteger.
    static org.w3c.dom.Element encodeToElement​(org.w3c.dom.Document doc, java.lang.String localName, byte[] bytes)
    Method encodeToElement
    static 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.
    protected static int getBytesInternal​(java.lang.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 Details

  • Method Details

    • encode

      public static final java.lang.String encode​(java.math.BigInteger big)
      Encode in Base64 the given BigInteger.
      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 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 java.math.BigInteger decodeBigIntegerFromElement​(org.w3c.dom.Element element) throws Base64DecodingException
      Method decodeBigIntegerFromElement
      Parameters:
      element -
      Returns:
      the biginteger obtained from the node
      Throws:
      Base64DecodingException
    • decodeBigIntegerFromString

      public static java.math.BigInteger decodeBigIntegerFromString​(java.lang.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​(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

      public static final byte[] decode​(org.w3c.dom.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 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

      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 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 String with encoded data
    • decode

      public static final byte[] decode​(java.io.BufferedReader reader) throws java.io.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:
      java.io.IOException - passes what the reader throws
      java.io.IOException
      Base64DecodingException
    • 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 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​(java.lang.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​(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.IOException
      Decodes Base64 data into outputstream
      Parameters:
      base64Data - String containing Base64 data
      os - the outputstream
      Throws:
      java.io.IOException
      Base64DecodingException
    • decode

      public static final void decode​(byte[] base64Data, java.io.OutputStream os) throws Base64DecodingException, java.io.IOException
      Decodes Base64 data into outputstream
      Parameters:
      base64Data - Byte array containing Base64 data
      os - the outputstream
      Throws:
      java.io.IOException
      Base64DecodingException
    • decode

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

      public static final void decode​(java.io.InputStream is, java.io.OutputStream os) throws Base64DecodingException, java.io.IOException
      Decodes Base64 data into outputstream
      Parameters:
      is - containing Base64 data
      os - the outputstream
      Throws:
      java.io.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