module Value:sig..end
type pc =
| |
Primitive |
| |
Constructed |
type value =
| |
Bool of |
(* |
Boolean (primitive)
| *) |
| |
Integer of |
(* |
Integer (primitive)
| *) |
| |
Enum of |
(* |
Enumeration (primitive)
| *) |
| |
Real of |
(* |
Floating-point number, using either base 2 or base 10 (primitive)
| *) |
| |
Bitstring of |
(* |
Bit strings (primitive or constructed)
| *) |
| |
Octetstring of |
(* |
Octet strings (primitive or constructed)
| *) |
| |
Null |
(* |
Null (primitive)
| *) |
| |
Seq of |
(* |
Sequences (records or arrays) (constructed)
| *) |
| |
Set of |
(* |
Sets (constructed)
| *) |
| |
Tagptr of |
(* |
Pointer to an undecoded value that was implicitly tagged.
The
tag_class can be Application, Context, or Private. | *) |
| |
Tag of |
(* |
Explicit tag (primitive or constructed depending on inner value)
| *) |
| |
ITag of |
(* |
Implicit tag (never returned by the decoder, but needed for
encoding such tags)
| *) |
| |
OID of |
|||
| |
ROID of |
|||
| |
ObjectDescriptor of |
(* |
A placeholder with a comment (primitive)
| *) |
| |
External of |
(* |
Something complex I don't understand (constructed)
| *) |
| |
Embedded_PDV of |
(* |
Something complex I don't understand (constructed)
| *) |
| |
NumericString of |
(* |
String made of digits and spaces (primitive or constructed)
| *) |
| |
PrintableString of |
(* |
A small subset of ASCII (primitive or constructed)
| *) |
| |
TeletexString of |
|||
| |
VideotexString of |
|||
| |
VisibleString of |
(* |
7 bit ASCII w/o control characters (primitive or constructed)
| *) |
| |
IA5String of |
(* |
7 bit ASCII (primitive or constructed)
| *) |
| |
GraphicString of |
(* |
ISO-2022-encoded string w/o control characters
| *) |
| |
GeneralString of |
(* |
ISO-2022-encoded string
| *) |
| |
UniversalString of |
(* |
Any ISO-10646-1 character string represented as UTF-32-BE
(primitive or constructed). Roughly, ISO-10646-1 equals to
Unicode.
| *) |
| |
BMPString of |
(* |
Any ISO-10646-1 character string from only the basic multilingual
plane, i.e. with code points <= 65535, represented as UTF-16-BE
(primitive or constructed)
| *) |
| |
UTF8String of |
(* |
Any ISO-10646-1 character string represented as UTF-8
(primitive or constructed)
| *) |
| |
CharString of |
(* |
A complicated description of an arbitrary charset encoding
(primitive or constructed)
| *) |
| |
UTCTime of |
(* |
Like GeneralizedTime but less precise, and with 2-digit year
| *) |
| |
GeneralizedTime of |
(* |
Calendar date with time of day, including timezone (primitive)
| *) |
type tag_class =
| |
Universal |
| |
Application |
| |
Context |
| |
Private |
type int_value
type real_value
type bitstring_value
type time_value
typetime_subtype =[ `G | `U ]
val type_of_value : value -> Netasn1.Type_name.type_name optionNone for Tag, ITag and Tagptrval get_int_repr : int_value -> stringval get_int_b256 : int_value -> int arrayval get_int : int_value -> intint if representable, or raise Out_of_rangeval get_int32 : int_value -> int32int32 if representable, or raise Out_of_rangeval get_int64 : int_value -> int64int64 if representable, or raise Out_of_rangeval int : int -> int_valueval int32 : int32 -> int_valueval int64 : int64 -> int_valueval int_b256 : int array -> int_valueval get_real_repr : real_value -> stringval get_bitstring_size : bitstring_value -> intval get_bitstring_data : bitstring_value -> stringval get_bitstring_bits : ?size:int -> bitstring_value -> bool arraysize is specified the array
will have exactly this number of bits (by dropping exceeding data,
or by adding false at the end)val get_bitstring_repr : bitstring_value -> stringval bitstring_of_bits : bool array -> bitstring_valueval bitstring_of_string : string -> int -> bitstring_valueval truncate_trailing_zero_bits : bitstring_value -> bitstring_valueval get_time_subtype : time_value -> time_subtype`U) or GeneralizedTime (`G)val get_time_repr : time_value -> stringval get_time : time_value -> Netdate.t
val utctime : Netdate.t -> time_valueval gentime : digits:int -> Netdate.t -> time_valuedigits is the number
of fractional (subsecond) digitsval equal : value -> value -> bool
Tag and Tagptr are considered differentTagptr is checked by comparing the equality of the substringSet is so far not compared as set, but as sequence (i.e. order
matters)