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.