Comments on draft-ietf-idnabis-defs-10
Paul Hoffman
phoffman at imc.org
Mon Aug 31 02:24:32 CEST 2009
At 2:32 PM -0400 8/30/09, John C Klensin wrote:
>Suggested fix? Do I need to put a "force lower case for
>undecorated Latin (ASCII) characters" into the conversation step
>from A-labels to U-labels?
Lower-casing the A-label before conversion is one possibility. The other is to do case-preserving comparisons when comparing A-labels for equivalence. I think the latter is a smaller change at this late date and also more robust. If you choose case-preserving comparisons, I think the following changes are sufficient.
idnabis-defs 2.3.2.4:
In IDNA, equivalence of labels is defined in terms of the A-labels.
If the A-labels are equal in a case-independent comparison, then the
s/case-independent/case-preserving/
labels are considered equivalent, no matter how they are represented.
Because of the isomorphism of A-labels and U-labels in IDNA2008, it
is possible to compare U-labels directly; see [IDNA2008-Protocol] for
details. Traditional LDH labels already have a notion of
equivalence: within that list of characters, upper case and lower
case are considered equivalent. The IDNA notion of equivalence is an
Remove the whole sentence "Traditional LDH ... considered equivalent."
extension of that older notion but, because there is no mapping, the
only equivalents are:
o Exact (bit-string identity) matches between a pair of U-labels.
o Matches between a pair of A-labels, using normal DNS matching
rules.
s/normal DNS/exact character/
o Equivalence between a U-label and an A-label determined by
translating the U-label form into an A-label form and then testing
for an exact match between the A-labels.
. . .
idnabis-defs 4.4:
. . .
[IDNA2008-Protocol]. For labels already in ASCII form, the proper
comparison reduces to the same case-insensitive ASCII comparison that
has always been used for ASCII labels although IDNA-aware
applications are expected to look up only A-labels and NR-LDH-labels,
i.e., to avoid looking up R-LDH-labels that are not A-labels.
. . .
Change "reduces to...ASCII labels although" to "(case-preserving), although...".
idnabis-protocol 3.1:
. . .
A pair of
A-labels MUST be compared as case-insensitive ASCII (as with all
comparisons of ASCII DNS labels).
Change to:
A pair of
A-labels MUST be compared using a case-preserving comparison.
I think the WG owes a hearty thanks to Wil for finding this bug in the spec and for being persistent in pointing it out after we forgot his earlier postings.
More information about the Idna-update
mailing list