<?xml version="1.0" encoding="us-ascii"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY rfc5890 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5890.xml">
  <!ENTITY rfc5891 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5891.xml">
  <!ENTITY rfc5892 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5892.xml">
  <!ENTITY rfc5893 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5893.xml">
  <!ENTITY rfc5894 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5894.xml">
  <!ENTITY rfc5895 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5895.xml">
  <!ENTITY rfc6452 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6452.xml">
]>

<rfc category="info" docName="draft-nemoto-idna2008-implementation-report-01" ipr="trust200902">
  <front>
    <title abbrev="IDNA2008 imple">IDNA2008 implementation report</title>
      
    <author fullname="Takahiro NEMOTO" initials="T" surname="NEMOTO">
        <organization>Keio University</organization>
        <address>
            <postal>
                <street>Graduate School of Media Design</street>
                <street>4-1-1 Hiyoshi, Kohoku-ku</street>
                <city>Yokohama</city>
                <region>Kanagawa</region>
                  <code>223-8526</code>
                  <country>Japan</country>
              </postal>
              <phone>+81 45 564 2517</phone>
              <email>t.nemo10@kmd.keio.ac.jp</email>
          </address>
      </author>

    <author fullname="Yoshiro YONEYA" initials="Y" surname="YONEYA">
      <organization>JPRS</organization>
      <address>
        <postal>
          <street>Chiyoda First Bldg. East 13F</street>
          <street>3-8-1 Nishi-Kanda</street>
          <city>Chiyoda-ku</city>
          <region>Tokyo</region>
          <code>101-0065</code>
          <country>Japan</country>
        </postal>
        <phone>+81 3 5215 8451</phone>
        <email>yoshiro.yoneya@jprs.co.jp</email>
      </address>
    </author>
      

    <date day="23" month="August" year="2012"/>

    <abstract>
      <t>
          This document reports implementation experience of IDNA2008 and findings from the implementation.
          </t>
    </abstract>

  </front>
<!-- ******************************************************************************* -->
  <middle>
    <section title="Introduction">
      <t>
          This document is a report of implementation experience to evaluate whether IDNA2008
          <xref target="RFC5890"/><xref target="RFC5891"/><xref target="RFC5892"/><xref target="RFC5893"/><xref target="RFC5894"/>
          can implement, IDNA2008 implementation have Unicode agility,
          and providing mapping methods based on <xref target="RFC5895"/> and <xref target="TR46"/> for applications are useful.
      </t>
      <t>
          In this document, two implementations based on IDNA2008 are described.
          The one provides support functions for various manipulations of internationalized domain names. 
          It is to evaluate whether core protocol of IDNA2008 can implement
          and the implementation provides useful mappings for applications.
          The other generates idnabis-tables.xml by using Unicode properties files. 
          It is to evaluate whether IDNA2008 implementation has Unicode agility.
          This document reports implementation experience of IDNA2008 and findings from the experience.
          </t>
    </section>
<!-- ******************************************************************************* -->
    <section title="Experience" anchor="expeience">
      <section title="Purposes">
          <t>
              Purposes of the implementations are following;
              <list style="symbols">
                  <t>
                    To evaluate whether core protocol of IDNA2008 can implement.
                  </t>
                  <t>
                    To evaluate whether IDNA2008 implementation has Unicode agility.
                  </t>
                  <t>
                    To evaluate whether providing mappings of <xref target="RFC5895"/> and <xref target="TR46"/> for applications are useful.
                  </t>
              </list>
          </t>
      </section>
      <section title="Implementations">
          <t> 
              In this document, two implementations based on IDNA2008 are described.
          </t>
          <t>
              The one based on core protocol of IDNA2008 provides APIs for handling internationalized domain names.
              Those APIs are for A/U-label conversion, two labels comparison and label validity check.
              The implementation is to evaluate whether core protocol of IDNA2008 can be implemented
              and providing mappings for applications are useful.
              The implementation also provide three command for convert, compare and check of internationalized domain names for end users.
          </t>
          <t>
              The implementation can import tables of certain version of Unicode properties
              and corresponding idnabis-tables.xml for codepoint validation. 
          </t>
          <t>
              The other implementation generates idnabis-tables.xml based on <xref target="RFC5892"/> by using Unicode properties files.
              The idnabis-tables.xml's format is the same as idnabis-tables.xml published by IANA.
              This implementation is for the APIs can have Unicode agility by using idnabis-tables.
              The generator is for evaluating latest Unicode version before IANA publish idnabis-tables.xml for the Unicode version.
            </t>
          <figure>
              <artwork><![CDATA[
 +----------------------------------------+
 |              Applications              |
 +----------------------------------------+
+-------------------------------------------+
|+--------+ +--------+ +--------+ +-------+ |
||  JAVA  | | Python | |  Perl  | |       | | 
||  API   | |  API   | |  API   | |       |  >APIs
|+--------+ +--------+ +--------+ |       | | -convert
|+--------+ |        | |        | |       | |  (A <--> U)
||        | | Wrapper| |   XS   | |       | | -compare
||  JNA   | |        | |        | |       | |  (A/U <--> A/U)
|+--------+ +--------+ +--------+ |       | | -check
|+--------------------------------+       | |  (A/U --> Valid/Invalid)
||                                        | |  
||    idnkit / idnkitlite (C/C++ API)     | | +------------------------+
||                                     <------|Unicode properties files|
|+----------------------------------------+ | |IANA idnabis-tables.xml |
+-------------------------------------------+ +------------------------+
 +----------------------------------------+          import files
 |                   OS                   |        
 +----------------------------------------+
              ]]></artwork>
              <postamble>fig. components of the implementation<xref target="idnkit"/></postamble>
          </figure>
        </section>
    </section>
<!-- ******************************************************************************* -->
    <section title="Findings" anchor="dsc">
      <t>
	Findings from implementation experiences are following.
	<list style="symbols">
      <t>
        IDNA2008 core protocol <xref target="RFC5890"/><xref target="RFC5891"/>
        <xref target="RFC5892"/><xref target="RFC5893"/><xref target="RFC5894"/> can implement.
      </t>
      <t>
        IDNA2008 implementation can have Unicode agility.
        Originally, it complied with Unicode 5.2.0 based on <xref target="RFC5892"/>.
        And it is easily complying with Unicode 6.0.0 based on <xref target="RFC6452"/>.
        Further, it can comply with Unicode 6.1.0 by using the idnabis-tables.xml generator.
      </t>
      <t>
        This implementation is able to choice a method of mappings based on <xref target="RFC5895"/> or <xref target="TR46"/>.
        It is expected to improve the usability of user input.
        And also it can facilitate the transition from IDNA2003 to IDNA2008.
        But which is preferable mappings of <xref target="RFC5895"/> or <xref target="TR46"/> is not determined yet.
      </t>
	</list>
      </t>
    </section>
<!-- ******************************************************************************* -->
    <section title="IANA Considerations">
      <t>
        Unicode agility depends on the agility that IANA publishes the latest idnabis-tables.xml when Unicode version was updated.
        IANA is expected to publish the latest idnabis-tables.xml, when latest Unicode version is published.
      </t>
    </section>

    <section title="Security Considerations">
      <t>
        The implementation does not warn and handle strings with care when input strings are consisted from mixed scripts.
        To avoid user's confusion and unwanted access to phishing sites,
	    the application policy about user interface and the domain name registration policy should take into consideration for using mixed scripts.
      </t>
    </section>
    <section title="Acknowledgment" anchor="ack">
      <t>
        Patrik Faltstrom provided a program to calculate Unicode codepoints validity according to <xref target="RFC5892"/> and generate tables<xref target="createtables"/>.
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative references">
      &rfc5890;
      &rfc5891;
      &rfc5892;
      &rfc5893;
      &rfc5894;
      &rfc5895;
      &rfc6452;
      <reference anchor="TR46">
        <front>
          <title>Unicode Technical Standard #46</title>
          <author initials="" surname="The Unicode Consortium" fullname="">
            <organization/>
          </author>
          <date year="2012"/>
        </front>
        <seriesInfo name="" value="http://www.unicode.org/reports/tr46/"/>
      </reference>
    </references>
    <references title="Informative references">
        <reference anchor="idnkit">
            <front>
                <title>IDN Info by JPRS</title>
                <author initials="" surname="" fullname="Japan Registry Services Co., Ltd.">
                    <organization/>
                </author>
                <date year="2011"/>
            </front>
            <seriesInfo name="" value="http://jprs.co.jp/idn/index-e.html"/>
        </reference>
        <reference anchor="createtables">
            <front>
                <title>IDNA</title>
                <author initials="" surname="" fullname="Patrik Fältström">
                    <organization/>
                </author>
                <date year="2011"/>
            </front>
            <seriesInfo name="" value="http://stupid.domain.name/idna"/>
        </reference>
    </references>
    <section title="Change Log" anchor="changes">
      <section title="Changes since -00">
        <t>
          <list style="symbols">
            <t>
              Updated submission date to avoid expiration.
            </t>
          </list>
        </t>
      </section>
    </section>
  </back>
</rfc>
