Subject: reframing the Empty IA5 string discussion

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Wed, 10 Nov 2004 21:41:29 -0500

I see that there are few reasonable options here:
1) IA5 strings precludes zero-length values
2) IA5 strings allows zero-length values
   2A) a zero-length values only matches a zero-length value
   2B) a zero-length value matches " " (and all values
       equivalent to " ").

I prefer 1 over 2A over 2B (see prior posts for why).

(Regardless of the choice LDAPprep can and should be designed
to be idempotent.)

---

From: Steven Legg <[email-masked]>
Date: Thu, 11 Nov 2004 16:20:33 +1100

Kurt,

> I prefer 1 over 2A over 2B (see prior posts for why).

There are two separate questions here. Whether or not the IA5 String syntax
is restricted to preclude zero-length values (I don't care either way) there
is still the potential for zero-length IA5String values to be compared by
caseIgnoreIA5Match through component matching. 2A versus 2B still has to be
addressed. On that score I prefer 2B as it makes more sense when taking the
limit.

     caseIgnoreIA5Match says "   foo" and "foo" are equal
     caseIgnoreIA5Match says "   fo"  and "fo" are equal
     caseIgnoreIA5Match says "   f"   and "f" are equal
                     2B says "   "    and "" are equal
                     2A says they're not - that seems odd to me!

Regards,
Steven

---

From: Morteza Ansari <[email-masked]>
Date: Wed, 10 Nov 2004 22:07:00 -0800

I second that.  I think '1' makes sense for not allowing zero-length 
values, and 2B for matching rules.

Cheers,
Morteza

---

From: Leif Johansson <[email-masked]>
Date: Thu, 11 Nov 2004 15:37:16 +0100

> (Regardless of the choice LDAPprep can and should be designed

I prefer 1. I consider the fact that IA5String does not have
the same size-restriction as DirectoryString a bug. Moreover
allowing non-empty string is going to break clients en masse.

	MVH leifj

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Sun, 14 Nov 2004 22:20:09 -0800

At 12:20 AM 11/11/2004, Steven Legg wrote:
>caseIgnoreIA5Match through component matching.

Above, when I said "precludes" or "allows", I should have said
"by matching rule constraints".  That is, IA5String is as defined
in X.680.  The preclude/allows can be viewed an artifact of the
particular equality rule used, not as an artifact of this
particular syntax.  So, while LDAP doesn't re-define X.680's
IA5String, it does define caseIgnoreIA5Match.

Kurt