Module BatBase64

module BatBase64: sig .. end

Base64 codec.

8-bit characters are encoded into 6-bit ones using ASCII lookup tables. Default tables maps 0..63 values on characters A-Z, a-z, 0-9, '+' and '/' (in that order).


exception Invalid_char

This exception is raised when reading an invalid character from a base64 input.

exception Invalid_table

This exception is raised if the encoding or decoding table size is not correct.

type encoding_table = char array 

An encoding table maps integers 0..63 to the corresponding char.

type decoding_table = int array 

A decoding table maps chars 0..255 to the corresponding 0..63 value or -1 if the char is not accepted.

val str_encode : ?tbl:encoding_table -> string -> string

Encode a string into Base64.

val str_decode : ?tbl:decoding_table -> string -> string

Decode a string encoded into Base64, raise Invalid_char if a character in the input string is not a valid one.

val encode : ?tbl:encoding_table -> 'a BatIO.output -> 'a BatIO.output

Generic base64 encoding over an output.

val decode : ?tbl:decoding_table -> BatIO.input -> BatIO.input

Generic base64 decoding over an input.

val make_decoding_table : encoding_table -> decoding_table

Create a valid decoding table from an encoding one.