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.