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. 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-descriptor ObjectDescriptor OPTIONAL,
data-value OCTET STRING
}( WITH COMPONENTS { ... , data-value-descriptor ABSENT})
The ASN1C compiler is used to create a meta-definition for this structure. This code
will be always generated in the Asn1EmbeddedPDV.h and
Asn1EmbeddedPDV.c/cpp files. The code will only be generated if the
given ASN.1 source specification requires this definition. The resulting C structure is
populated just like any other compiler-generated structure for working with ASN.1 data.
NOTE: It is recommended that if a specification contains multiple ASN.1 source files that reference EMBEDDEDPDV, all of these source files be compiled with a single ASN1C call in order to ensure that only a singled copy of the Asn1EmbeddedPDV source files are generated.