Plasma GitLab Archive
Projects Blog Knowledge

Module Netencoding.Base64

module Base64: sig .. end

Base64 encoding as described in RFC 2045

val encode : ?pos:int ->
?len:int ->
?linelength:int ->
?crlf:bool -> ?plus:char -> ?slash:char -> string -> string

Compute the "base 64" encoding of the given string argument. Note that the result is a string that only contains the characters a-z, A-Z, 0-9, +, /, =, and optionally spaces, CR and LF characters.

If pos and/or len are passed, only the substring starting at pos (default: 0) with length len (default: rest of the string) is encoded.

The result is divided up into lines not longer than linelength (without counting the line separator); default: do not divide lines. If linelength is smaller than 4, no line division is performed. If linelength is not divisible by 4, the produced lines are a bit shorter than linelength.

If crlf (default: false) the lines are ended by CRLF; otherwise they are only ended by LF. (You need the crlf option to produce correct MIME messages.)

By default, the 63rd character of the alphabet is '+', and the 64th character is '/'. By passing plus and slash you can choose different characters.

val encode_tstring : ?pos:int ->
?len:int ->
?linelength:int ->
?crlf:bool ->
?plus:char -> ?slash:char -> Netsys_types.tstring -> Stdlib.Bytes.t

Same for tagged string inputs. The result are always bytes, though

val encode_poly : ?pos:int ->
?len:int ->
?linelength:int ->
?crlf:bool ->
?plus:char ->
?slash:char -> 's Netstring_tstring.tstring_ops -> 's -> Stdlib.Bytes.t

Polymorphic version

val decode : ?pos:int ->
?len:int ->
?accept_spaces:bool -> ?plus:char -> ?slash:char -> string -> string

Decodes the given string argument.

If pos and/or len are passed, only the substring starting at pos (default: 0) with length len (default: rest of the string) is decoded.

If accept_spaces (default: false) is set, the function ignores white space contained in the string to decode (otherwise the function fails if it finds white space). Furthermore, the character '>' is considered as "space", too (so you don't have trouble with mbox mailboxes that accidentally quote "From").

By default, the 63rd character of the alphabet is '+', and the 64th character is '/'. By passing plus and slash you can choose different characters.

val decode_tstring : ?pos:int ->
?len:int ->
?accept_spaces:bool ->
?plus:char -> ?slash:char -> Netsys_types.tstring -> Stdlib.Bytes.t

Same for tagged string inputs. The result are always bytes, though

val decode_poly : ?pos:int ->
?len:int ->
?accept_spaces:bool ->
?plus:char ->
?slash:char -> 's Netstring_tstring.tstring_ops -> 's -> Stdlib.Bytes.t

Polymorphic version

class encoding_pipe : ?linelength:int -> ?crlf:bool -> ?plus:char -> ?slash:char -> unit -> Netchannels.pipe

This pipe encodes the data written into the pipe.

class decoding_pipe : ?accept_spaces:bool -> ?plus:char -> ?slash:char -> unit -> Netchannels.pipe

This pipe decodes the data written into the pipe.

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml