Newsgroups: comp.protocols.iso
Path: utzoo!utgpu!watserv1!watmath!att!cbnewsl!pd
From: pd@cbnewsl.att.com (patricia.a.dunkin)
Subject: ISO/IEC 9596, Draft Addendum 2: ASN.1 syntax error?
Organization: AT&T Bell Laboratories
Date: Wed, 9 Jan 91 15:52:49 GMT
Message-ID: <1991Jan9.155249.18149@cbnewsl.att.com>
Lines: 34

ISO/IEC 9596:1990/DAD 2 (Draft Addendum 2 to the CMIP specification)
appears to contain an ASN.1 syntax error.  In the changes for page 16,
it says:

    Replace "attributeList" in SetArgument with the following:

	"modificationList	[12] IMPLICIT SET OF SEQUENCE {
	    attributeId		[0] IMPLICIT AttributeId,
	    attributeValue	[1] ANY DEFINED BY attributeId OPTIONAL,
	    modifyOperator	[2] IMPLICIT ModifyOperator DEFAULT replace }"

where AttributeId is defined in section 7.4 of the main part of 9596 as

    AttributeId ::= CHOICE { globalForm	[0] IMPLICIT OBJECT IDENTIFIER,
			     localForm	[1] IMPLICIT INTEGER }

However, ISO 8824, (the specification of ASN.1), in the section on
"Notation for tagged types," subsection 26.10 says, "The 'IMPLICIT'
alternative shall not be used if the type ... is a choice type or an any
type."  So, it looks like the CHOICE AttributeId shouldn't be IMPLICIT,
and an ASN.1 compiler agrees (says it's ignoring the "IMPLICIT untagged
CHOICE" and refuses to generate code).

Has anyone else tried to use the modificationList in the SetArgument?
If so, what did you do about the IMPLICIT CHOICE problem?  Or does
anyone know whether there is a more recent version of DAD 2 in which
this has been fixed?

Thanks,

Pat Dunkin (pad@groucho.att.com || ...!att!groucho!pad)

P.S. For the curious, ModifyOperator is an ENUMERATED type, so making
it IMPLICIT isn't a problem.
