Library
Module
Module type
Parameter
Class
Class type
Embed typed ASN.1 grammars in OCaml
Skip the notation part of Abstract Syntax Notation, and embed the abstract syntax directly in OCaml.
References
v0.2.0 — homepage
module OID : sig ... end
Object identifiers.
module S : sig ... end
ASN.1 Abstract Syntax.
val ber : encoding
ber
is ASN.1 Basic Encoding Rules (BER).
val der : encoding
der
is ASN.1 Distinguished Encoding Rules (DER).
codec enc asn
represents the syntax asn
encoded under the rules enc
.
This function performs work up-front, and is generally expected to be called in the static context on statically known syntaxes.
val encode : 'a codec -> 'a -> Cstruct.t
encode codec x
is the encoding of x
, using codec
.
val encode_into : 'a codec -> 'a -> int * (Cstruct.t -> unit)
encode_into codec x
is the pair (n, f)
, where n
is the length of x
encoded with codec
, and f
is a function that will write the encoded x
to the first n
bytes of the provided Cstruct.t
.
val pp_error : Format.formatter -> error -> unit
pp_error ppf err
pretty-prints err
on ppf
.
decode codec cs
is the pair (x, cs')
, where x
is the result of decoding the prefix of cs
with codec
and cs'
are the trailing bytes, or an error
.
val random : 'a t -> 'a
random asn
is a random inhabitant of 'a
.