Provided by: afnix_2.8.1-1_amd64 bug

NAME

       itu - standard telecom module

STANDARD TELECOM MODULE

       The  Standard  Telecommodule 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  AsnNodeclass  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 BERconstant defines the Basic Encoding Rulenode encoding.

              CER
              The CERconstant defines the Canonical Encoding Rulenode encoding.

              DER
              The DERconstant defines the Distinguished Encoding Rulenode encoding.

              UNIVERSAL
              The UNIVERSALconstant defines the node universal class.

              APPLICATION
              The APPLICATIONconstant defines the node application class.

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

              PRIVATE
              The PRIVATEconstant defines the node private class.

       Methods

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

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

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

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

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

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

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

              write -> none (none|OutputStream|Buffer)
              The writemethod 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 AsnOctetsclass 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 AsnOctetsconstructor creates a default asn octets string node.

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

       Methods

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

       AsnBuffer
       The AsnBufferclass 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 AsnBufferconstructor creates a default asn buffer node.

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

       Methods

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

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

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

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

       AsnNull
       The  AsnNullclass  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 AsnNullconstructor creates a default asn null node.

       AsnEoc
       The AsnEocclass 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 AsnEocconstructor creates a default asn eoc node.

       AsnBoolean
       The AsnBooleanclass 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 AsnBooleanconstructor creates a default asn boolean node.

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

       Methods

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

       AsnInteger
       The AsnIntegerclass 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 AsnIntegerconstructor creates a default asn integer node.

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

       Methods

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

       AsnBits
       The  AsnBitsclass  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 AsnBitsconstructor creates a default asn bits node.

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

       Methods

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

       AsnBmps
       The AsnBmpsclass 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 AsnBmpsconstructor creates a default asn string (BMP) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnIas
       The AsnIasclass 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 AsnIasconstructor creates a default asn string (IA5) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnNums
       The AsnNumsclass 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 AsnNumsconstructor creates a default asn string (NUMERIC) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnPrts
       The AsnPrtsclass 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 AsnPrtsconstructor creates a default asn string (PRINTABLE) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnUtfs
       The AsnUtfsclass 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 AsnUtfsconstructor creates a default asn string (UNICODE) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnUnvs
       The AsnUnvsclass 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 AsnUnvsconstructor creates a default asn string (UNIVERSAL) node.

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

       Methods

              to-string -> String (none)
              The to-stringmethod returns a Stringobject as a node representation.

       AsnGtm
       The AsnGtmclass 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 AsnGtmconstructor creates a default asn gtm node.

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

       Methods

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

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

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

       AsnUtc
       The AsnUtcclass 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 AsnUtcconstructor creates a default asn utc node.

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

       Methods

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

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

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

       AsnSequence
       The AsnSequenceclass 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 AsnSequenceconstructor creates an empty asn sequence node.

       Methods

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

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

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

       AsnSet
       The  AsnSetclass  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 AsnSetconstructor creates an empty asn set node.

       Methods

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

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

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

       Oid
       The Oidclass 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 Oidconstructor creates an oid from a sequence of integers.

       Methods

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

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

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

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

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

       AsnOid
       The AsnOidclass 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 AsnOidconstructor creates an asn oid from a sequence of sid.

       Methods

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

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

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

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

       AsnRoid
       The AsnRoidclass 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 AsnRoidconstructor creates an asn roid from a sequence of sid.

       Methods

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

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

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

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

       Functions

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

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