Subject: RE: binary syntax suggestion (Was: AttributeTypeValue and binary)

From: "Ramsay, Ron" <[email-masked]>
Date: Mon, 22 Jan 2001 11:17:29 +1100

Kurt,

RFC 2251 describes how attribute values are carried in protocol. RFC 2252
should describe just the attribute values. I feel the comments on the OCTET
STRING wrapper are misplaced - there is no wrapping of the value. The fact
is that the value (any value) will be wrapped only in the protocol.

Ron.

-----Original Message-----
From: Kurt D. Zeilenga [mailto:[email-masked]]
Sent: Saturday, 20 January 2001 16:02
To: [email-masked]
Subject: binary syntax suggestion (Was: AttributeTypeValue and binary)

I think the RFC2252 specification of the binary syntax quite lacking.

6.2. Binary
   ( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' )
   Values in this syntax are encoded as described in section 4.3.1.

4.3.1  Binary Transfer of Values
   This encoding format is used if the binary encoding is requested by
   the client for an attribute, or if the attribute syntax name is
   "1.3.6.1.4.1.1466.115.121.1.5".  The contents of the LDAP 
   AttributeValue or AssertionValue field is a BER-encoded instance of
   the attribute value or a matching rule assertion value ASN.1 data
   type as defined for use with X.500. (The first byte inside the OCTET
   STRING wrapper is a tag octet.  However, the OCTET STRING is still
   encoded in primitive form.)

Though the first sentence says it applies to both ";binary" and the
binary syntax, the second sentence makes no sense in the context of
the binary syntax.  I believe the intent of the binary syntax is to
allow values conforming to any BER-encoded instance of any ASN.1
data type definition and, like other syntaxes, attribute type
specifications may specify additional restrictions such as limiting
the values to any BER-encoded instance of a specific ASN.1 data type.
The uses of this syntax that I've seen use it in this manner.

I suggest 4.3.1 be stricken and 6.2 be replaced with:

6.2. Binary

   ( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' )

   Each value of this syntax is a BER-encoded instance of
   an ASN.1 data type definition.  (The first octet inside
   the OCTET STRING wrapper is a tag octet.  However, the
   OCTET STRING is still encoded in primitive form). Values
   of this syntax MUST NOT be transferred using Binary Option
   [RFC2251, 4.1.5.1].

   Attribute type, matching rule, and other specifications
   which make use of this syntax MAY place further restrict
   upon values of this syntax including restricting values to
   instances of a specific ASN.1 data type or restricting
   values to those produced by a subset of BER.  Enforcement
   of additional restrictions is OPTIONAL.

Comments?

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Sun, 21 Jan 2001 19:17:12 -0800

I offer this revised suggestion.  I've dropped the ;binary
restriction as more discussion is needed regarding this and
the more general issues Steven has raised.  I've also dropped
the OCTET STRING wrapper comment as being misplaced and somewhat
confusing.

>   an ASN.1 data type definition. 

I actually view the following paragraph as stating the obvious
(attribute types can state additional restrictions upon values,
but such enforcement of such restrictions is OPTIONAL), so I'm
not sure if adds value or not.  Maybe a more general (not
syntax specific) statement in this area would be more appropriate.

>   of additional restrictions is OPTIONAL.

comments?