Comments on draft-ietf-idnabis-defs-10

John C Klensin klensin at jck.com
Mon Aug 31 12:41:11 CEST 2009


I am confused at this stage as to whether I should insert
lowercasing operations in appropriate places or whether I should
insert text that prohibits uppercase ACE strings as input to
IDNA.  As a reminder, ACE strings containing upper case
characters cannot be produced as output from IDNA, even though
they can be produced if strings that are not U-labels are used
as input to Punycode.

    john


--On Monday, August 31, 2009 02:15 -0400 Vint Cerf
<vint at google.com> wrote:

> Paul,
> 
> thanks for this -
> 
> Based on a few tests I tried with punycode and inverse
> punycode, it looks to me as if lowercasing might be preferable.
> 
> My reasoning is that IDNs containing upper case characters
> product punycode that, when inverted, yields lower case
> Unicode.
> 
> consequently it would appear as if only lowercased Unicode
> will convert identically to/from punycode.
> 
> allowing uppercase characters in the punycode and having them
> considered valid (and converting back to upper case Unicode)
> might create much more confusion
> especially considering that re-conversion of the upper-cased
> unicode would yield a lowercased punycode string again and
> subsequently lowercased unicode.
> 
> I hope I haven't confused things more.
> 
> Vint
> 
> 
> On Aug 30, 2009, at 8:24 PM, Paul Hoffman wrote:
> 
>> 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.
>> _______________________________________________
>> Idna-update mailing list
>> Idna-update at alvestrand.no
>> http://www.alvestrand.no/mailman/listinfo/idna-update
> 






More information about the Idna-update mailing list