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.