tango.util.encode.Base64

License:
BSD style:

author:
Jeff Davey

Standards:
rfc3548, rfc2045

Since:
0.99.7





This module is used to decode and encode base64 char[] arrays.

Example:
    char[] blah = "Hello there, my name is Jeff.";
    scope encodebuf = new char[allocateEncodeSize(cast(ubyte[])blah)];
    char[] encoded = encode(cast(ubyte[])blah, encodebuf);

    scope decodebuf = new ubyte[encoded.length];
    if (cast(char[])decode(encoded, decodebuf) == "Hello there, my name is Jeff.")
        Stdout("yay").newline;


size_t allocateEncodeSize(const(ubyte[]) data);
calculates and returns the size needed to encode the length of the array passed.

Params:
const(ubyte[]) data An array that will be encoded

size_t allocateEncodeSize(size_t length);
calculates and returns the size needed to encode the length passed.

Params:
size_t length Number of bytes to be encoded

size_t encodeChunk(const(ubyte[]) data, char[] buff, ref size_t bytesEncoded);
encodes data into buff and returns the number of bytes encoded. this will not terminate and pad any "leftover" bytes, and will instead only encode up to the highest number of bytes divisible by three.

returns the number of bytes left to encode

Params:
const(ubyte[]) data what is to be encoded
char[] buff buffer large enough to hold encoded data
size_t bytesEncoded ref that returns how much of the buffer was filled

char[] encode(const(ubyte[]) data, char[] buff);
encodes data and returns as an ASCII base64 string.

Params:
const(ubyte[]) data what is to be encoded
char[] buff buffer large enough to hold encoded data

Example:
    char[512] encodebuf;
    char[] myEncodedString = encode(cast(ubyte[])"Hello, how are you today?", encodebuf);
    Stdout(myEncodedString).newline; // SGVsbG8sIGhvdyBhcmUgeW91IHRvZGF5Pw==


char[] encode(const(ubyte[]) data);
encodes data and returns as an ASCII base64 string.

Params:
const(ubyte[]) data what is to be encoded

Example:
    char[] myEncodedString = encode(cast(ubyte[])"Hello, how are you today?");
    Stdout(myEncodedString).newline; // SGVsbG8sIGhvdyBhcmUgeW91IHRvZGF5Pw==


ubyte[] decode(const(char[]) data);
decodes an ASCCI base64 string and returns it as ubyte[] data. Pre-allocates the size of the array.

This decoder will ignore non-base64 characters. So: SGVsbG8sIGhvd yBhcmUgeW91IH RvZGF5Pw==

Is valid.

Params:
const(char[]) data what is to be decoded

Example:
    char[] myDecodedString = cast(char[])decode("SGVsbG8sIGhvdyBhcmUgeW91IHRvZGF5Pw==");
    Stdout(myDecodedString).newline; // Hello, how are you today?


ubyte[] decode(const(char[]) data, ubyte[] buff);
decodes an ASCCI base64 string and returns it as ubyte[] data.

This decoder will ignore non-base64 characters. So: SGVsbG8sIGhvd yBhcmUgeW91IH RvZGF5Pw==

Is valid.

Params:
const(char[]) data what is to be decoded
ubyte[] buff a big enough array to hold the decoded data

Example:
    ubyte[512] decodebuf;
    char[] myDecodedString = cast(char[])decode("SGVsbG8sIGhvdyBhcmUgeW91IHRvZGF5Pw==", decodebuf);
    Stdout(myDecodedString).newline; // Hello, how are you today?



Page generated by Ddoc. Copyright (c) 2008 Jeff Davey. All rights reserved