Subject: Re: AttributeTypeValue and binary

From: "Jim Sermersheim" <[email-masked]>
Date: Tue, 23 Jan 2001 12:06:17 -0700

I believe there is consensus regarding the first part of this message. That being that the first paragraph of section 4.1.6 is confusing, and leaves the reader unsure as to whether or not all binary encodings require an extra OCTET STRING wrapper. 

Unless there are objections, I will make the following change to the protocol document:

4.1.6
<A field of type AttributeValue takes on as its value either a string encoding of a AttributeValue data type, or an OCTET STRING containing an encoded binary value, depending on whether the "binary" option is present in the companion AttributeDescription to this AttributeValue.
>A field of type AttributeValue is an OCTET STRING containing either a string encoding, or an encoded binary value of an AttributeValue data type, depending on whether the "binary" option is present in the companion AttributeDescription to this AttributeValue.

Note that this does not address any of the following recently discussed related issues:
- default encoding.
- future possiblity of other encodings.
- explicit tying of the term binary to BER.
- exclusion of ;binary with binary syntax.

I'll wait for more discussion before addressing these issues in the doc. 

Regarding the future possibility of other encodings, I'd like to add a statement to the end of the ammended paragraph above that reads: "Note that future AttributeDescription options may define other encodings that may be contained in the AttributeValue". Any feedback on that?

Jim

>>> "Kurt D. Zeilenga" <[email-masked]> 1/17/01 2:20:45 PM >>>
RFC 2251, 4.1.6:
   A field of type AttributeValue takes on as its value either a string
   encoding of a AttributeValue data type, or an OCTET STRING containing
   an encoded binary value, depending on whether the "binary" option is
   present in the companion AttributeDescription to this AttributeValue.
        AttributeValue ::= OCTET STRING

This wording can be interpreted as either:
   A field of type AttributeValue is an OCTET STRING which contains
   either a string encoding of a AttributeValue data type or an
   binary encoded value depending on whether the "binary" option is
   present in the companion AttributeDescription to this AttributeValue.

or:
   A field of type AttributeValue is an OCTET STRING which contains
   either a string encoding of a AttributeValue data type or an
   OCTET STRING containing an binary encoded value depending on
   whether the "binary" option is present in the companion
   AttributeDescription to this AttributeValue.

RFC 2252, 4.3.1 provides clarification that the correct interpretation
is the former.  I think RFC 2251 should be clarified to remove any
doubt.

Actually, I suggest that the description of the "binary" transfer
option be described completely within (and only within) RFC 2251
and that "binary" syntax be described within RFC 2252.  

Also as previously noted on the LDAPext mailing list (see archives
for discussion), "binary" transfer of values of "binary" syntax
makes little sense and likely should be disallowed.

Comments?

---

From: Mark Smith <[email-masked]>
Date: Wed, 24 Jan 2001 18:01:54 -0500

Jim Sermersheim wrote:
> 
> I believe there is consensus regarding the first part of this message.
> That being that the first paragraph of section 4.1.6 is confusing, and
> leaves the reader unsure as to whether or not all binary encodings require
> an extra OCTET STRING wrapper.
> 
> Unless there are objections, I will make the following change to the protocol > document:
> 
> 4.1.6

I think the revised text is better but still a little confusing and
awkward (although the OCTET STRING wrapper issue has been addressed). 
At the risk of being "wordy" I suggest:

 If the companion AttributeDescription to an AttributeValue does not
 contain the "binary" option, then the AttributeValue field is an
 OCTET STRING that contains a string encoded value.

 If the companion AttributeDescription to an AttributeValue contains the
 "binary" option, then the AttributeValue field is an OCTET STRING
 that contains an encoded binary value of the AttributeValue data type.

-Mark

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Wed, 24 Jan 2001 15:41:05 -0800

> that contains an encoded binary value of the AttributeValue data type.

This could be taken as disallowing other transfer options.
The previous wording likely could have been taken that
way too.