Hi,
I have the following query regarding the EXTERNAL type. In the ITU-T X.680 34.5 the EXTERNAL type is said to be defined as follows -
EXTERNAL ::=
[UNIVERSAL 8] IMPLICIT SEQUENCE
{
identification CHOICE
{
syntaxes SEQUENCE
{
abstract OBJECT IDENTIFIER,
transfer OBJECT IDENTIFIER
},
syntax OBJECT IDENTIFIER,
presentation-context-id INTEGER,
context-negatiation 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
{
...,
identification (WITH COMPONENTS
{
...,
syntaxes ABSENT,
transfer-syntax ABSENT,
fixed ABSENT
})
})
In contrary to this most materials on the web details the following as the representation of EXTERNAL -
EXTERNAL ::=
[UNIVERSAL 8] IMPLICIT SEQUENCE
{
direct-reference OBJECT IDENTIFIER OPTIONAL,
indirect-reference INTEGER OPTIONAL,
data-value-descriptor ObjectDescriptor OPTIONAL,
encoding CHOICE
{
single-ASN1-type [0] TYPE-IDENTIFIER-1.&Type,
octet-aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING
}
}
In almost all the materials the newer one have been discussed. When is the 1st one applicable and when the 2nd? If one were to use the newer representation, then a previous version of the protocol using it would not be able to interpret it completely. How is this taken into account. Thanking you.
Yours Sincerely
Ramaswamy