(* $Workfile:   common.tpl  $ $Revision:   3.5  $ *)
(* COMMON.TPL *)
(*****************************************************************************)
(* ASN.1 COMMON DATA-TYPE TEMPLATE                                           *)
(*****************************************************************************)

(* Extension Fields                                                          *)

ExtensionType              LABEL     = Cxtyp
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Cintg, C  0 P,O,0> D*,
                                         <Cobid, C  3 P,O,0>  * }

Criticality                LABEL     = Ccrtc
                           STRUCTURE = BITSTRING

(* Private Extensions                                                        *)

PrivateExtension           LABEL     = Cpext
                           STRUCTURE = ANY
                           CHILDREN  = {}

(* Primitives                                                                *)

Boolean                    LABEL     = Cbool
                           STRUCTURE = BOOLEAN

Integer                    LABEL     = Cintg
                           STRUCTURE = INTEGER

Real                       LABEL     = Creal
                           STRUCTURE = REAL

Bitstring                  LABEL     = Cbits
                           STRUCTURE = BITSTRING

OctetString                LABEL     = Cocts
                           STRUCTURE = OCTETSTRING

Null                       LABEL     = Cnull
                           STRUCTURE = NULL

ObjectIdentifier           LABEL     = Cobid
                           STRUCTURE = OBJECT IDENTIFIER

NumericString              LABEL     = Cnumc
                           STRUCTURE = NUMERIC STRING

PrintableString            LABEL     = Cptbl
                           STRUCTURE = PRINTABLE STRING

TeletexString              LABEL     = Ctexs
                           STRUCTURE = TELETEX STRING

VideotexString             LABEL     = Cvide
                           STRUCTURE = VIDEOTEX STRING

VisibleString              LABEL     = Cvisb
                           STRUCTURE = VISIBLE STRING

IA5String                  LABEL     = Cia5s
                           STRUCTURE = IA5 STRING

GraphicString              LABEL     = Cgphs
                           STRUCTURE = GRAPHIC STRING

GeneralString              LABEL     = Cgens
                           STRUCTURE = GENERAL STRING

GeneralisedTime            LABEL     = Cgent
                           STRUCTURE = GENERALIZED TIME

UTCTime                    LABEL     = Cutct
                           STRUCTURE = UTC TIME

ObjectDescriptor           LABEL     = Cobds
                           STRUCTURE = OBJECT DESCRIPTOR

Enumerated                 LABEL     = Cenum
                           STRUCTURE = ENUMERATED

(* External *)

External                   LABEL     = Cextn
                           STRUCTURE = SEQUENCE
                           TAG       = (U 8 C)
                           CHILDREN  = { <Cdref, U 6 P,O,0>,
                                         <Ciref, U 2 P,O,0>,
                                         <Cdvds, U 7 P,O,0>,
                                         <Cencd, U 0 P,O,0> }

Direct Reference           LABEL     = Cdref
                           STRUCTURE = OBJECT IDENTIFIER

Indirect Reference         LABEL     = Ciref
                           STRUCTURE = INTEGER

Data Value Descriptor      LABEL     = Cdvds
                           STRUCTURE = OBJECT DESCRIPTOR

Encoding                   LABEL     = Cencd
                           STRUCTURE = UNTAGGED CHOICE
                           CHILDREN  = { <Casn1, C 0 C,O,0>,
                                         <Cocta, C 1 P,O,0>,
                                         <Carbi, C 2 P,O,0>D  }

Single ASN.1 Type          LABEL     = Casn1               T=special_case
                           STRUCTURE = ANY
                           TAG       = (C 0 C)
                           CHILDREN  = { }

Octet Aligned              LABEL     = Cocta
                           STRUCTURE = OCTETSTRING

Arbitrary                  LABEL     = Carbi
                           STRUCTURE = BIT STRING
!
