com.dyuproject.protostuff
Class B64Code

java.lang.Object
  extended by com.dyuproject.protostuff.B64Code

public final class B64Code
extends java.lang.Object

Fast B64 Encoder/Decoder as described in RFC 1421.

Does not insert or interpret whitespace as described in RFC 1521. If you require this you must pre/post process your data.

Note that in a web context the usual case is to not want linebreaks or other white space in the encoded output.

Author:
Brett Sealey (bretts), Greg Wilkins (gregw), David Yu (dyu)

Method Summary
static byte[] decode(byte[] b)
          Fast Base 64 decode as described in RFC 1421.
static byte[] decode(byte[] input, int inOffset, int inLen)
          Fast Base 64 decode as described in RFC 1421.
static byte[] decode(java.lang.String str)
          Returns the base 64 decoded bytes.
static byte[] decode(java.lang.String str, int inOffset, int inLen)
          Returns the base 64 decoded bytes.
static int decodeTo(byte[] output, int outOffset, byte[] input, int inOffset, int inLen)
          Returns the length of the decoded base64 input (written to the provided output byte array).
static int decodeTo(byte[] output, int outOffset, java.lang.String str, int inOffset, int inLen)
          Returns the length of the decoded base64 input (written to the provided output byte array).
static byte[] encode(byte[] input)
          Fast Base 64 encode as described in RFC 1421.
static byte[] encode(byte[] input, int inOffset, int inLen)
          Fast Base 64 encode as described in RFC 1421.
static LinkedBuffer encode(byte[] input, int inOffset, int inLen, WriteSession session, LinkedBuffer lb)
          Encodes the byte array into the LinkedBuffer and grows when full.
static LinkedBuffer encode(byte[] input, int inOffset, int inLen, WriteSession session, java.io.OutputStream out, LinkedBuffer lb)
          Encodes the byte array into the LinkedBuffer and flushes to the OutputStream when buffer is full.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

encode

public static byte[] encode(byte[] input)
Fast Base 64 encode as described in RFC 1421.


encode

public static byte[] encode(byte[] input,
                            int inOffset,
                            int inLen)
Fast Base 64 encode as described in RFC 1421.


encode

public static LinkedBuffer encode(byte[] input,
                                  int inOffset,
                                  int inLen,
                                  WriteSession session,
                                  LinkedBuffer lb)
                           throws java.io.IOException
Encodes the byte array into the LinkedBuffer and grows when full.

Throws:
java.io.IOException

encode

public static LinkedBuffer encode(byte[] input,
                                  int inOffset,
                                  int inLen,
                                  WriteSession session,
                                  java.io.OutputStream out,
                                  LinkedBuffer lb)
                           throws java.io.IOException
Encodes the byte array into the LinkedBuffer and flushes to the OutputStream when buffer is full.

Throws:
java.io.IOException

decode

public static byte[] decode(byte[] b)
Fast Base 64 decode as described in RFC 1421.


decode

public static byte[] decode(byte[] input,
                            int inOffset,
                            int inLen)
Fast Base 64 decode as described in RFC 1421.

Does not attempt to cope with extra whitespace as described in RFC 1521.

Avoids creating extra copies of the input/output.

Note this code has been flattened for performance.

Parameters:
input - byte array to decode.
inOffset - the offset.
inLen - the length.
Returns:
byte array containing the decoded form of the input.
Throws:
java.lang.IllegalArgumentException - if the input is not a valid B64 encoding.

decodeTo

public static int decodeTo(byte[] output,
                           int outOffset,
                           byte[] input,
                           int inOffset,
                           int inLen)
Returns the length of the decoded base64 input (written to the provided output byte array). The output byte array must have enough capacity or it will fail.


decode

public static byte[] decode(java.lang.String str)
Returns the base 64 decoded bytes. The provided str must already be base-64 encoded.


decode

public static byte[] decode(java.lang.String str,
                            int inOffset,
                            int inLen)
Returns the base 64 decoded bytes. The provided str must already be base-64 encoded.


decodeTo

public static int decodeTo(byte[] output,
                           int outOffset,
                           java.lang.String str,
                           int inOffset,
                           int inLen)
Returns the length of the decoded base64 input (written to the provided output byte array). The output byte array must have enough capacity or it will fail.



Copyright © 2009-2012. All Rights Reserved.