EmbeddedPDV Type

The ASN.1 EMBEDDED PDV type is a useful type used to include non-ASN.1 or other data within an ASN.1 encoded message. It was introduced in 1994 to replace EXTERNAL by removing unneeded fields and adding a few new ones to hold information that was missing. This type is described using the following ASN.1 SEQUENCE:

   EmbeddedPDV ::= [UNIVERSAL 11] IMPLICIT SEQUENCE {
      identification CHOICE {
         syntaxes SEQUENCE {
            abstract OBJECT IDENTIFIER,
            transfer OBJECT IDENTIFIER },
         syntax OBJECT IDENTIFIER,
         presentation-context-id INTEGER,
         context-negotiation SEQUENCE {
            presentation-context-id INTEGER,
            transfer-syntax OBJECT IDENTIFIER },
         transfer-syntax OBJECT IDENTIFIER,
         fixed NULL
      },,
      data-value OCTET STRING }
   ( WITH COMPONENTS {
               ... ,
               data-value-descriptor ABSENT } )

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