External Type

The ASN.1 EXTERNAL type is a useful type used to include non-ASN.1 or other data within an ASN.1 encoded message. The type is described using the following ASN.1 SEQUENCE:

   EXTERNAL ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
      direct-reference OBJECT IDENTIFIER OPTIONAL,
      indirect-reference INTEGER OPTIONAL,
      data-value-descriptor ObjectDescriptor OPTIONAL,
      encoding CHOICE {
         single-ASN1-type  [0] ANY,
         octet-aligned     [1] IMPLICIT OCTET STRING,
         arbitrary         [2] IMPLICIT BIT STRING
      }
   }

The ASN.1 compiler is used to create a meta-definition for this structure. The definition will be generated in the file Asn1External.cs (or Asn1XerExternal.cs for XER), if needed by compiling ASN.1 file. An object created from the resulting C# class is populated just like any other compiler-generated structure for working with ASN.1 data.