[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Empty IA5String




Kurt,

Kurt D. Zeilenga wrote:
At 05:47 PM 11/10/2004, Steven Legg wrote:


Kurt,

Kurt D. Zeilenga wrote:

At 07:26 PM 11/9/2004, Steven Legg wrote:


For the record, I don't care whether IA5 String syntax is constrained to have
at least one character. However, I increasingly believe that stringprep should
be able to produce a zero-length string as input to a matching function.

I assume what you mean here is that you are increasing believing that LDAPprep should be redesigned to accept as input an zero-length string and output a zero-length string for this input.

No, I believe that LDAPprep should be able to output a zero-length string given a non-zero-length input string.


I disagree. I believe it LDAPprep must be idempotent.

Any particular technical reason why ?

> That is,
        LDAPprep(LDAPprep(x)) = LDAPprep(x)
be true for all X.

I think LDAPprep should be able to produce zero-length output and you think LDAPprep should be idempotent - both of us are satisfied if the input to LDAPprep is permitted to be a zero-length string.

Regards,
Steven



There are steps within
LDAPPrep that remove various insignificant characters. It should be
allowed to produce a zero-length string when it turns out that all the
characters are insignificant.



This would require a major redesign of the algorithm.

I don't see why.

There are internal steps where an empty string is replaced by
a single space. Just take those bits out.


Not enough to ensure idempotence.


I think the current description of the matching semantics in [syntaxes] is
compatible with zero-length strings being output by LDAPprep, but it would
be worth me adding some text to point out that zero-length strings can be
output by LDAPprep, and to formally state that two empty strings match.


If the designers of a particular matching rule desires
that zero-length input strings be matched as X strings
(where X is either a zero-length string or a particular
non-zero-length string, e.g. " "), the specification for
that rule should say something like:
      For non-zero-length input strings, the string
      is to prepared in accordance with LDAPprep.
      For zero-length input strings, no preparation
      is done.  The input string is used directly.
or:
      If the input string is zero-length, the string
      is matched as if X was inputted.  For input
      strings which are non-zero-length, the input
      string is prepared in accordance with LDAPprep
      before being compared.
I don't think we should undertake a redesign LDAPprep
to handle zero-length input string.

Allowing it to produce a zero-length output string is enough.


Not enough to ensure idempotence.



Regards,
Steven