[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [idn] Re: stringprep and unassigned code points
--On 01-10-25 00.01 -0700 Yves Arrouye <yves@realnames.com> wrote:
> I have the same understanding you do re: when unassigned code points may
> be generated (by an application that gets code points from a version of
> Unicode that was released after the version of Nameprep it uses).
I must be extremely bad at expressing myself. This is now the third time
since monday I explain how things work.
> Now
> let's suppose Unicode encodes something new, for which a new Nameprep is
> released (because some additions to the mapping table are needed).
A mapping can only be from an earlier unassigned codepoint.
> At
> this point, the DNS servers may contain the ACE(Nameprep(names in this
> new thing)).
ACE have absolutely nothing to do with this. This is a stringprep issue.
Only nameservers which do understand the new version of stringprep can have
these names.
> And applications get these new codepoints,
What do you mean by "get these new codepoints"?
> but because they
> do not have the appropriate mapping table, they will pass ACE(Old
> Nameprep(names in this new thing))
No, because the codepoint is unassigned in old version of stringsprep, and
because of that MUST NOT be used.
> which will sometimes match the new
> labels, and sometimes not. Am I right in thinking that applications do
> not need to be updated only if Nameprep does not change for the new code
> points (looks like common sense anyway)?
You are wrong.
Summary (once again):
If a new version of Unicode comes out, which have a newly assigned
codepoint (X), and a mapping from X to Y, the following is true:
- X can not be part of the result of a nameprep which an old application
creates. If an old application get X as input, the codepoint is unassigned
and therefore illegal.
- If Y is an earlier assigned codepoint, an application understanding the
new version of nameprep will when getting X map that to Y.
- If Y is a newly assigned codepoint, an application understanding the
new version of nameprep will when getting X map that to Y.
- In neither case (old application or new application) X will be part of
the output of the stringprep process.
paf