Provided by: afnix_3.8.0-1.1ubuntu1_amd64 bug

NAME

       itu - standard telecom module

STANDARD TELECOM MODULE

       The  Standard  Telecom  module  is  an  original  implementation  of  various  standards  managed  by the
       International Telecommunictaion Union (ITU). At the heart of this module is the Abstract Syntax  Notation
       (ASN.1) which is widely used to model data records and store certificates.

       Abstract syntax notation
       The  abstract  syntax  notation  (ASN.1)  is  standardized  by  the  ITU  to  express  a  normal  form of
       communication. The ASN.1 is in fact the de-facto standard for representing X509 certificate  and  is  the
       only justification to provide the support for such complex representation.

       Encoding rules
       This  implementation  supports  all  encoding forms as defined by the ITU, namely the Basic Encoding Rule
       (BER), the Canonical Encoding Rule (CER) and the Distinguished Encoding Rule (DER). The DER  form  is  by
       far the most widely used.

       ASN objects
       All  objects  as defined by the ITU are supported in this implementation, including the ability to create
       custom OID.
       Object        Description
       AsnBoolean    Boolean primitive
       AsnInteger    Integer primitive
       AsnBits       Bit string
       AsnOctets     Octet string
       AsnBmp        Bmp string
       AsnIas        IA5 string
       AsnNums       Numeric string
       AsnPrts       Printable string
       AsnUtfs       Unicode string
       AsnUnvs       Universal string
       AsneNull      Null primitive
       AsneEoc       End-of-Content primitive
       AsnGtm        Generalized time primitive
       AsnUtc        Utc time primitive
       AsnSequence   Asn node Sequence
       AsnSet        Asn node Set
       AsnOid        Asn object identifier Set
       AsnRoid       Asn object relative identifier Set

       Using ASN.1 objects
       Using ASN.1 object is particularly straightfoward. One  can  directly  creates  a  particular  object  by
       invoking the appropriate constructor.

       # create an asn boolean node
       trans  abn  (afnix:itu:AsnBoolean true)
       # check the node type
       assert true (afnix:itu:asn-node-p abn)
       assert true (afnix:itu:asn-boolean-p  abn)

       Writing  the  object can be done into a buffer or an output stream. Note that the default encoding is the
       DER encoding.

       # write into a buffer
       trans buf (Buffer)
       abn:write buf
       # check the buffer content
       assert "0101FF" (buf:format)

       Building an ASN.1 representation can be achieved by parsing a buffer or an input stream. This is done  by
       filling a buffer and requesting a buffer node mapping.

       # parse the buffer and check
       const anb (afnix:itu:AsnBuffer buf)
       # map the node to a boolean
       trans abn (anb:node-map)
       # check the node
       assert true (afnix:itu:asn-node-p abn)
       assert true (afnix:itu:asn-boolean-p  abn)

       With  more  complex  structure,  it  is likely that a sequence object will be returned by the buffer node
       mapper. Once the sequence object is created, each node can be accessed by index like any other container.

STANDARD TELECOM REFERENCE

       AsnNode
       The AsnNode class is the base class used to represent the asn tree. The structure of the node is  defined
       in  ITU-T  X.690  recommendation.  This  implementation  supports 64 bits tag number with natural machine
       length encoding. The Canonical Encoding Rule (CER) and Distinguished Encoding Rule (DER) are  defined  by
       the  class.  Since  ASN.1  provides  several  encoding schemes, the class is designed to be as generic as
       possible but does not provides the mechanism for changing from one representation to another although  it
       is perfectly valid to read a DER representation and write it in the CER form.

       Predicate

              asn-node-p

       Inheritance

              Object

       Constants

              BER
              The BER constant defines the Basic Encoding Rule node encoding.

              CER
              The CER constant defines the Canonical Encoding Rule node encoding.

              DER
              The DER constant defines the Distinguished Encoding Rule node encoding.

              UNIVERSAL
              The UNIVERSAL constant defines the node universal class.

              APPLICATION
              The APPLICATION constant defines the node application class.

              CONTEXT-SPECIFIC
              The CONTEXT-SPECIFIC constant defines the node context specific class.

              PRIVATE
              The PRIVATE constant defines the node private class.

       Methods

              reset -> none (none)
              The reset method reset a node to its default value.

              length -> Integer (none)
              The length method returns the total node length in bytes.

              get-class -> UNIVERSAL|APPLICATION|CONTEXT-SPECIFIC|PRIVATE (none)
              The get-class method returns the node class.

              primitive-p -> Boolean (none)
              The primitive-p returns true if the node is a primitive.

              constructed-p -> Boolean (none)
              The constructed-p returns true if the node is a constructed node.

              get-tag-number -> Integer (none)
              The get-tag-number-p returns node tag number.

              get-content-length -> Integer (none)
              The get-content-length-p returns node content length.

              write -> none (none|OutputStream|Buffer)
              The  write  method  write  the  asn  node  contents as well as the child nodes to an output stream
              argument or a buffer. Without argument, the node is written to the interpreter output stream. With
              one argument, the node is written to the specified stream or buffer.

       AsnOctets
       The AsnOctets class is the asn object class that encodes the octet string type. This type can be  encoded
       either  as a primitive or as constructed at sender's option. In CER form, the primitive form is used when
       the content length is less than 1000 octets, and the constructed form is used  otherwise.  The  DER  form
       will always use the primitive form.

       Predicate

              asn-octets-p

       Inheritance

              AsnNode

       Constructors

              AsnOctets (none)
              The AsnOctets constructor creates a default asn octets string node.

              AsnOctets (String|Buffer)
              The AsnOctets constructor creates an asn octets string node by string of buffer object.

       Methods

              to-buffer -> Buffer (none)
              The to-buffer method returns a Buffer object as an octet string representation.

       AsnBuffer
       The  AsnBuffer  class is the asn object class that provides a generic implementation of an asn structure.
       The class acts as a simple encoder and decoder with special facilities to retarget the buffer content.

       Predicate

              asn-buffer-p

       Inheritance

              AsnNode

       Constructors

              AsnBuffer (none)
              The AsnBuffer constructor creates a default asn buffer node.

              AsnBuffer (InputStream|Buffer|Bitset)
              The AsnBuffer constructor creates an asn buffer node from an input stream, a buffer or a bitset.

       Methods

              reset -> none (none)
              The reset method reset the buffer.

              parse -> Boolean (InputStream|Buffer|Bitset)
              The parse method parse a node represented by an input stream, a buffer or a bitset.

              node-map -> AsnNode (none)
              The node-map method returns a node mapping of this buffer.

              get-content-buffer -> Buffer (none)
              The get-content-buffer method returns the asn buffer content as a buffer object.

       AsnNull
       The AsnNull class is the asn object class that encodes the null primitive. This primitive  has  a  unique
       encoding. The length is always 0 and there is no content octet.

       Predicate

              asn-null-p

       Inheritance

              AsnNode

       Constructors

              AsnNull (none)
              The AsnNull constructor creates a default asn null node.

       AsnEoc
       The AsnEoc class is the asn object class that encodes the eoc or end-of-content primitive. This primitive
       is almost never used but its encoding is used with the indefinite length encoding.

       Predicate

              asn-eoc-p

       Inheritance

              AsnNode

       Constructors

              AsnEoc (none)
              The AsnEoc constructor creates a default asn eoc node.

       AsnBoolean
       The  AsnBoolean  class  is  the asn object class that encodes the boolean primitive. This primitive has a
       unique encoding with the CER or DER rule, but the BER rule can support any byte value for the true value.

       Predicate

              asn-boolean-p

       Inheritance

              AsnNode

       Constructors

              AsnBoolean (none)
              The AsnBoolean constructor creates a default asn boolean node.

              AsnBoolean (Boolean)
              The AsnBoolean constructor creates an asn boolean node from a boolean object.

       Methods

              to-boolean -> Boolean (none)
              The to-boolean method returns a Boolean object as the asn node representation.

       AsnInteger
       The AsnInteger class is the asn object class that encodes the integer primitive.  This  primitive  has  a
       unique encoding with the CER or DER rule. All encoding use a signed 2-complement form.

       Predicate

              asn-integer-p

       Inheritance

              AsnNode

       Constructors

              AsnInteger (none)
              The AsnInteger constructor creates a default asn integer node.

              AsnInteger (Integer|Relatif)
              The AsnInteger constructor creates an asn integer node from an integer or relatif object.

       Methods

              to-relatif -> Relatif (none)
              The to-relatif method returns a Relatif object as the asn node representation.

       AsnBits
       The  AsnBits  class  is  the  asn object class that encodes the bit string type. This type can be encoded
       either as a primitive or as constructed at sender's option. In CER form, the primitive form is used  when
       the  content  length  is  less than 1000 octets, and the constructed form is used otherwise. The DER form
       will always use the primitive form.

       Predicate

              asn-bits-p

       Inheritance

              AsnNode

       Constructors

              AsnBits (none)
              The AsnBits constructor creates a default asn bits node.

              AsnBits (String|Bitset)
              The AsnBits constructor creates an asn bits node from a string or a bitset.

       Methods

              to-bits -> Bitset (none)
              The to-bits method returns a Bitset object as a bit string representation.

       AsnBmps
       The AsnBmps class is the asn object class that encodes the asn bmp string primitive  also  known  as  the
       UCS-2  type  string.  This  string  is implemented, after conversion as an octet string. Consequently the
       rules for encoding in CER and DER modes are applied.

       Predicate

              asn-bmps-p

       Inheritance

              AsnOctets

       Constructors

              AsnBmps (none)
              The AsnBmps constructor creates a default asn string (BMP) node.

              AsnBmps (String)
              The AsnBmps constructor creates an asn string (BMP) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnIas
       The AsnIas class is the asn  object  class  that  encodes  the  IA5  string  primitive.  This  string  is
       implemented,  after  conversion  as  an  octet string. Consequently the rules for encoding in CER and DER
       modes are applied.

       Predicate

              asn-ias-p

       Inheritance

              AsnOctets

       Constructors

              AsnIas (none)
              The AsnIas constructor creates a default asn string (IA5) node.

              AsnIas (String)
              The AsnIas constructor creates an asn string (IA5) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnNums
       The AsnNums class is the asn object class that encodes the asn numeric string primitive. This  string  is
       implemented,  after  conversion  as  an  octet string. Consequently the rules for encoding in CER and DER
       modes are applied.

       Predicate

              asn-nums-p

       Inheritance

              AsnOctets

       Constructors

              AsnNums (none)
              The AsnNums constructor creates a default asn string (NUMERIC) node.

              AsnNums (String)
              The AsnNums constructor creates an asn string (NUMERIC) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnPrts
       The AsnPrts class is the asn object class that encodes the asn printable string primitive. This string is
       implemented, after conversion as an octet string. Consequently the rules for  encoding  in  CER  and  DER
       modes are applied.

       Predicate

              asn-prts-p

       Inheritance

              AsnOctets

       Constructors

              AsnPrts (none)
              The AsnPrts constructor creates a default asn string (PRINTABLE) node.

              AsnPrts (String)
              The AsnPrts constructor creates an asn string (PRINTABLE) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnUtfs
       The  AsnUtfs  class  is  the  asn  object class that encodes the asn utf string primitive. This string is
       implemented as an octet string. Consequently the rules for encoding in CER and DER modes are applied.

       Predicate

              asn-utfs-p

       Inheritance

              AsnOctets

       Constructors

              AsnUtfs (none)
              The AsnUtfs constructor creates a default asn string (UNICODE) node.

              AsnUtfs (String)
              The AsnUtfs constructor creates an asn string (UNICODE) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnUnvs
       The AsnUnvs class is the asn object class that encodes the universal string primitive also known  as  the
       UCS-4  type  string.  This  string  is implemented, after conversion as an octet string. Consequently the
       rules for encoding in CER and DER modes are applied.

       Predicate

              asn-unvs-p

       Inheritance

              AsnOctets

       Constructors

              AsnUnvs (none)
              The AsnUnvs constructor creates a default asn string (UNIVERSAL) node.

              AsnUnvs (String)
              The AsnUnvs constructor creates an asn string (UNIVERSAL) node from a string.

       Methods

              to-string -> String (none)
              The to-string method returns a String object as a node representation.

       AsnGtm
       The AsnGtm class is the asn object class that encodes the generalized time primitive. This  primitive  is
       encoded  from its equivalent string representation. Although, the constructed mode is authorized, it does
       not make that much sense to use it.

       Predicate

              asn-gtm-p

       Inheritance

              AsnNode

       Constructors

              AsnGtm (none)
              The AsnGtm constructor creates a default asn gtm node.

              AsnGtm (String)
              The AsnGtm constructor creates an asn gtm node from a string.

       Methods

              utc-p -> Boolean (none)
              The utc-p predicate returns true if the time is expressed in UTC mode.

              to-time -> Integer (none)
              The to-time method returns a time representation of this asn node.

              to-string -> String (none)
              The to-string method returns a string representation of this asn node.

       AsnUtc
       The AsnUtc class is the asn object class that encodes the utc time primitive. This primitive is  encoding
       from its equivalent string representation. Although, the constructed mode is authorized, it does not make
       that much sense to use it.

       Predicate

              asn-utc-p

       Inheritance

              AsnNode

       Constructors

              AsnUtc (none)
              The AsnUtc constructor creates a default asn utc node.

              AsnUtc (String)
              The AsnUtc constructor creates an asn utc node from a string.

       Methods

              utc-p -> Boolean (none)
              The utc-p predicate returns true if the time is expressed in UTC mode.

              to-time -> Integer (none)
              The to-time method returns a time representation of this asn node.

              to-string -> String (none)
              The to-string method returns a string representation of this asn node.

       AsnSequence
       The  AsnSequence  class  is the asn object class that encodes the sequence constructed type. The order of
       elements is preserved in the encoding of the sequence.

       Predicate

              asn-sequence-p

       Inheritance

              AsnNode

       Constructors

              AsnSequence (none)
              The AsnSequence constructor creates an empty asn sequence node.

       Methods

              node-length -> Integer (none)
              The node-length method returns the number of nodes in the sequence.

              node-add -> none (AsnNode)
              The node-add method adds a node to the sequence.

              node-get -> AsnNode (Integer)
              The node-get method returns an asn node by index.

       AsnSet
       The AsnSet class is the asn object class that encodes the set constructed type. The order of elements  is
       not important in a set.

       Predicate

              asn-set-p

       Inheritance

              AsnNode

       Constructors

              AsnSet (none)
              The AsnSet constructor creates an empty asn set node.

       Methods

              node-length -> Integer (none)
              The node-length method returns the number of nodes in the set.

              node-add -> none (AsnNode)
              The node-add method adds a node to the set.

              node-get -> AsnNode (Integer)
              The node-get method returns an asn node by index.

       Oid
       The  Oid  class  is  a  base  class that represents the X500 object identifier which is used in the ASN.1
       encoding and in the X509 standard. An oid is simply represented by a vector of subidentifiers.

       Predicate

              oid-p

       Inheritance

              Object

       Constructors

              Oid (Integer|...)
              The Oid constructor creates an oid from a sequence of integers.

       Methods

              reset -> none (none)
              The reset method resets the oid object to its null empty state.

              length -> Integer (none)
              The length method returns the length of the oid.

              add -> none (Integer|...)
              The add method adds one or more sub-indentifiers to the oid.

              get -> Integer (Integer)
              The get method returns an oid sub-identifier by index.

              format -> String (none)
              The format method returns a string representation of the oid.

       AsnOid
       The AsnOid class is the asn object class that encodes the object identifier primitive. This primitive has
       a unique encoding with the CER or DER rule. The oid is built as a vector of  subidentifiers  (sid).  Each
       sid is represented as an octa (64 bits) value.

       Predicate

              asn-oid-p

       Inheritance

              AsnNode

       Constructors

              AsnOid (Integer|...)
              The AsnOid constructor creates an asn oid from a sequence of sid.

       Methods

              sid-length -> Integer (none)
              The length method returns the length of the oid.

              sid-add -> none (Integer)
              The sid-add method adds a sid the oid object.

              sid-get -> Integer (Integer)
              The sid-get method returns a sid by oid index.

              get-oid -> Oid (none)
              The get-oid method returns an oid object as the asn oid representation.

       AsnRoid
       The  AsnRoid  class  is  the asn object class that encodes the object relative identifier primitive. This
       primitive has a unique encoding with the CER or DER rule. The oid is built as a vector of  subidentifiers
       (sid).  Each  sid  is represented as an octa (64 bits) value. The difference with the oid object is to be
       found in the encoding of the first 2 sid.

       Predicate

              asn-roid-p

       Inheritance

              AsnNode

       Constructors

              AsnRoid (Integer|...)
              The AsnRoid constructor creates an asn roid from a sequence of sid.

       Methods

              sid-length -> Integer (none)
              The length method returns the length of the oid.

              sid-add -> none (Integer)
              The sid-add method adds a sid the oid object.

              sid-get -> Integer (Integer)
              The sid-get method returns a sid by oid index.

              get-oid -> Oid (none)
              The get-oid method returns an oid object as the asn oid representation.

       Functions

              asn-random-bits -> none (Integer)
              The exit function creates a random asn bit string. The argument is  the  number  of  bits  in  the
              random string.

              asn-random-octets -> none (Integer)
              The  exit function creates a random asn octet string. The integer argument is the number of octets
              in the string.

AFNIX Module                                          AFNIX                                               itu(3)