Re: Complexity for case-sensitive systems

"Adam M. Costello" <[email protected]>
Newsgroups gmane.ietf.imaa
Message-ID <[email protected]>
Roy Badami <[email protected]> wrote:

> If one wanted to support case-sensitive systems, wouldn't it be enough
> to require punycode to output only lower-case (or alternatively only
> upper-case)?

And require ToASCII to prepend the lowercase form of the ACE prefix.

This then implies changes to either ToUnicode or the formal model of
equivalence.  Either you alter ToUnicode so that only lowercase ACEs
are decoded (which will annoy users, because local parts often get
uppercased, which violates the standards but is currently harmless
in practice); or you let ToUnicode decode uppercase ACEs and change
the symmetric equivalence relation to an asymmetric substitutability
relation (because it's okay to replace IESG--FOO with <nonASCII>, but
<nonASCII> must not be replaced with IESG--FOO, it has to be iesg--foo).

So there is a tradeoff between functionality (playing nicely with
uppercased local parts) versus complexity of the model (asymmetry).

> this would preclude the use of mixed case annotation...

The same tradeoff exists here.

Instead of requiring that ToASCII always use lowercase in the Punycode
encoding and the ACE prefix, we could merely require that it "preserves
lowestcase"; that is, if the input is lowestcase, then the output
must be lowestcase, but non-lowestcase input is also acceptable, in
which case non-lowestcase output is permitted.  Local parts (both ACE
and non-ACE) in case-insensitive domains would be case-insensitive,
while non-traditional local parts in case-sensitive domains would be
lowestcase-only (ASCII ACE forms containing uppercase letters must not
be created, and non-lowestcase non-ASCII forms are unreliable).  A
string is "lowestcase" if Nameprep would have the same effect on it
regardless of whether Stringprep table B.2 (the case-folding table) is
used or omitted.

The easy way for a ToASCII implementation to preserve lowestcase is
simply to always uses lowercase in the Punycode encoding and the ACE
prefix, so this model would be no burden on implementations, but it
would make the spec more complex.

We need to ask whether it makes sense to make any effort or any
compromises to support case-sensitive mail exchangers.  Case-sensitivity
is discouraged by RFC 2821.  Does anyone know of any case-sensitive
local parts that actually exist?

AMC
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.