tango.util.encode.Base16
License:
BSD style:
author:
Ulrik Mikaelsson
Standards:
rfc3548, rfc4648
This module is used to decode and encode hex 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;
Since v1.0
- 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 |
- char[] encode(const(ubyte[]) data, char[] buff);
- encodes data and returns as an ASCII hex 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; // 48656C6C6F2C20686F772061726520796F7520746F6461793F
- char[] encode(const(ubyte[]) data);
- encodes data and returns as an ASCII hex string.
Params:
const(ubyte[]) data |
what is to be encoded |
Example:
char[] myEncodedString = encode(cast(ubyte[])"Hello, how are you today?");
Stdout(myEncodedString).newline; // 48656C6C6F2C20686F772061726520796F7520746F6461793F
- ubyte[] decode(const(char[]) data);
- decodes an ASCII hex string and returns it as ubyte[] data. Pre-allocates
the size of the array.
This decoder will ignore non-hex characters. So:
SGVsbG8sIGhvd
yBhcmUgeW91IH
RvZGF5Pw==
Is valid.
Params:
const(char[]) data |
what is to be decoded |
Example:
char[] myDecodedString = cast(char[])decode("48656C6C6F2C20686F772061726520796F7520746F6461793F");
Stdout(myDecodeString).newline; // Hello, how are you today?
- ubyte[] decode(const(char[]) data, ubyte[] buff);
- decodes an ASCII hex string and returns it as ubyte[] data.
This decoder will ignore non-hex 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("48656C6C6F2C20686F772061726520796F7520746F6461793F", decodebuf);
Stdout(myDecodeString).newline; // Hello, how are you today?
Page generated by Ddoc. Copyright (c) 2010 Ulrik Mikaelsson. All rights reserved