[UA-discuss] Store domain in Punycode or Unicode?

Carolyn Liu Carolyn.Liu at microsoft.com
Tue Apr 3 18:36:03 UTC 2018


I work for Microsoft and own project EAI with O365 mail flow for the most part. We recently announced the support for Phase 1 EAI - that we now support send and receive emails with EAI address.

A question, or a challenge I would like to bring your attention and would like to discuss with this group.

Today we do not allow customers to enter IDN (in Unicode) in our system (O365), so customers can only enter domain in ASCII, or an IDN in Punycode form.  This already brings a challenge for us since mail may come in as UTF8 form. But more importantly, to prepare for the future support of EAI, we must design how to allow our customers to enter a Unicode domain in O365, and which form we shall store the domain - Unicode or punycode?

Our proposal is to store domain in punycode. The reasons are at the follows:

  1.  Domains in our system is unique, meaning domain is a key. One domain shall only exist once and belong to one customer only.
  2.  We already allow customers to enter domain in Punycode code.
  3.  At gateway we need to know whether a domain is in our system. The match logic will be at follows:
     *   Is domain in system? If so go ahead and accept.
     *   If not, is it UTF8 form? If so convert to Punycode and search again.
  4.  Every time when we display, we will always convert the domain to Unicode.
  5.  This is how DNS supports IDN. A uniform storage will make implementation a lot easier.

But if we allow to store domain in Unicode, then we have to understand those in Punycode and those in Unicode and convert back and force.  I understand we always need conversion, but if in only one form we know we always need to covert to the other form, vs we might need to covert both directions everywhere, very costly and very confusing.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mm.icann.org/pipermail/ua-discuss/attachments/20180403/02764baa/attachment.html>

More information about the UA-discuss mailing list