Asn
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.3.2 — 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 -> string
encode codec x
is the encoding of x
, using codec
.
val encode_into : 'a codec -> 'a -> int * (bytes -> 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 bytes
.
val pp_error : Stdlib.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
.