Internet DRAFT - draft-cira-regext-idn
draft-cira-regext-idn
Internet Engineering Task Force J. Latour
Internet-Draft T. Zhang
Intended status: Informational CIRA
Expires: October 6, 2016 J. Bernard
Viagenie
April 4, 2016
CIRA IDN EPP Extension
draft-cira-regext-idn-01
Abstract
The Canadian Internet Registration Authority (CIRA), administering
the .CA country-code top-level domain, offers internationalized
domain names (IDN) in French, one of Canada's official languages.
CIRA's Extensible Provisioning Protocol (EPP) services have been
augmented with an IDN EPP extension in order to support registrars
desiring to register internationalized domains using French
characters as bundled domains.
This document defines the extension to the Extensible Provisioning
Protocol used at CIRA to support IDN operations.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 6, 2016.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
Latour, et al. Expires October 6, 2016 [Page 1]
Internet-Draft CIRA IDN EPP Extension April 2016
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Operational Requirements . . . . . . . . . . . . . . . . . . 3
2.1. IDN Labels . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Repertoires . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. French IDN Characters Variants . . . . . . . . . . . . . 4
2.4. Bundling and Registration Policy . . . . . . . . . . . . 5
2.5. Domain Lists . . . . . . . . . . . . . . . . . . . . . . 6
3. Object Elements . . . . . . . . . . . . . . . . . . . . . . . 6
3.1. U-Labels . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Repertoires . . . . . . . . . . . . . . . . . . . . . . . 7
3.3. DomainVariants . . . . . . . . . . . . . . . . . . . . . 7
3.4. BundleDomains . . . . . . . . . . . . . . . . . . . . . . 8
3.5. Info . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. EPP Extension Elements . . . . . . . . . . . . . . . . . . . 8
4.1. The ciraIdnCheck Element . . . . . . . . . . . . . . . . 8
4.2. The ciraIdnInfo Element . . . . . . . . . . . . . . . . . 8
4.3. The ciraIdnCreate Element . . . . . . . . . . . . . . . . 9
5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 9
5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 9
5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 9
5.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 11
5.1.3. EPP <poll> Command . . . . . . . . . . . . . . . . . 14
5.1.4. EPP <transfer> Query Command . . . . . . . . . . . . 14
5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 14
5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 14
5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 15
5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 15
5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 16
5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 16
6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 16
6.1. Schema for cira-idn-1.0 . . . . . . . . . . . . . . . . . 16
6.2. Schema for cira-idn-bundle-1.0 . . . . . . . . . . . . . 18
7. Security Considerations . . . . . . . . . . . . . . . . . . . 19
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20
10.1. Normative References . . . . . . . . . . . . . . . . . . 20
10.2. Informative References . . . . . . . . . . . . . . . . . 21
Latour, et al. Expires October 6, 2016 [Page 2]
Internet-Draft CIRA IDN EPP Extension April 2016
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction
This document describes an extension to the Extensible Provisioning
Protocol (EPP) providing support for the internationalization of
domain names (IDN) and other related functions. This EPP extension
is used at the Canadian Internet Registration Authority (CIRA) to
support IDN operations for French, one of Canada's official
languages.
The design of this EPP extension is based on a number of requirements
from the CIRA registry. A first requirement is to exchange IDN
labels with registrars during create operations. There is also a
need to exchange information about the set of characters supported by
the registry. This set is called a repertoire throughout the
document, as a synonym with IDN-table.
Registry policies often prevent the registration of similar-looking
IDN labels by different registrants. CIRA policies allow each IDN
label to be registered independently, removing the need for a
registration bundle structure as described in [RFC4290] or more
recently in [ID.draft-kong-eppext-bundling-registration]. The
policies also specify that all the label variants must be linked to a
single registrant-registrar pair, even if some variants aren't
registered.
In order to support this, a simple list of label variants is used.
No zone information or registration information is included in that
list. By providing such list to a registrar, a registry has the
capacity to inform a registrar of the possible label variants without
relying on the accurate processing of complex Label Generation
Rulesets (LGR) on the registrar side, minimizing risks of errors.
The CIRA IDN EPP extension defines three XML elements named
createType, infDataType and checkType, respectively used in <create>,
<info> and <check> EPP commands. These elements contain elements
describing a "repertoire", as a set of variant Unicode code points,
an IDN label in U-label form and "domainVariants", a list of variant
labels accepted by the registry (also called bundle). A new type
named repertoireType is also defined. This type is used to carry a
set of variant Unicode code points supported by a registry.
2. Operational Requirements
This section explains the rationale and detailed requirements behind
CIRA's EPP extension for IDN.
Latour, et al. Expires October 6, 2016 [Page 3]
Internet-Draft CIRA IDN EPP Extension April 2016
2.1. IDN Labels
The first requirement relating to IDN support is to allow registrars
to specify a U-label string in a create operation. For this purpose
a new element is required, in this case called 'u-label'.
2.2. Repertoires
French being the first IDN language supported at CIRA, it would be
possible to accept EPP create operations without other information
than the U-label and to consider the French character set as the
default for all operations, which would include the base English
character set already in place. However CIRA did not want to
preclude the possibility to add support for other languages in the
future or to add supplementary constrained character sets. The
registrars are therefore required to specify the character set in
every create operation.
The character set is being specified in a repertoire type as a
string. The name 'repertoire' as used here represents the set of
code points variants accepted by policy by the registry for a
specific language. This has the same meaning as the definition of
idn:table identifier defined in
[ID.draft-kong-eppext-bundling-registration].
The string used to identify a repertoire may be similar in content to
a language tag, but shouldn't be confused with a language, as the
character set approved by policy by a registry may represent a subset
of an official language's character set. See section 1.3 of
[RFC4290] for a more detailed discussion on possible confusion in
usage.
2.3. French IDN Characters Variants
The code points below are included in the implementation of French
IDN by CIRA. Each French accented character is considered a variant
of the base character.
Latour, et al. Expires October 6, 2016 [Page 4]
Internet-Draft CIRA IDN EPP Extension April 2016
----------- ----------------------------------------------------
| Code Point | French | Base |
| | Character | Character |
----------- -------------------------------------- ------------
| U+00E0 | LATIN SMALL LETTER A WITH GRAVE | a |
| U+00E2 | LATIN SMALL LETTER A WITH CIRCUMFLEX | a |
| U+00E7 | LATIN SMALL LETTER C WITH CEDILLA | c |
| U+00E8 | LATIN SMALL LETTER E WITH GRAVE | e |
| U+00E9 | LATIN SMALL LETTER E WITH ACUTE | e |
| U+00EA | LATIN SMALL LETTER E WITH CIRCUMFLEX | e |
| U+00EB | LATIN SMALL LETTER E WITH DIAERESIS | e |
| U+00EE | LATIN SMALL LETTER I WITH CIRCUMFLEX | i |
| U+00EF | LATIN SMALL LETTER I WITH DIAERESIS | i |
| U+00F4 | LATIN SMALL LETTER O WITH CIRCUMFLEX | o |
| U+00F9 | LATIN SMALL LETTER U WITH GRAVE | u |
| U+00FB | LATIN SMALL LETTER U WITH CIRCUMFLEX | u |
| U+00FC | LATIN SMALL LETTER U WITH DIAERESIS | u |
| U+00FF | LATIN SMALL LETTER Y WITH DIAERESIS | y |
| U+00E6 | LATIN SMALL LETTER AE | ae |
| U+0153 | LATIN SMALL LIGATURE OE | oe |
----------- ----------------------------------------------------
Figure 1: Variant code points for French IDN at CIRA
2.4. Bundling and Registration Policy
A group of label variants referring to the same canonical base label
(without accented characters) is named a bundle in this document.
This definition is similar to the definition of registration bundle
provided in [RFC4290], with the difference that it isn't used for
registration at CIRA but only to retrieve information through an EPP
<info> operation.
Concurrent registration of different labels in a bundle is not
required by CIRA policy. The registration of individual variants
remains independent, with the requirement that the registrar-
registrant pair remains the same for every label in the bundle. Once
a single variant has been registered, registration of a variant by
different registrant or registrar is prevented. This includes the
registration of canonical names from a period preceding IDN support.
In a way similar to registration, transfers are handled on a per-
label basis. All labels within a bundle must be transferred within 5
days otherwise the transfer is canceled.
Label variants, besides being independently registered, are also
allowed to have different lifetimes, expiration times and server
information. The limitations on the bundle are managed using the
Latour, et al. Expires October 6, 2016 [Page 5]
Internet-Draft CIRA IDN EPP Extension April 2016
earliest registration date to the latest expiry date for all labels
in a single bundle. An expired variant part of a non-expired bundle
is considered 'withheld' and cannot be registered except by the same
registrant-registrar pair.
Variant1 ---R++++++++++++++E---------
Variant2 ------R++++++++++++++E------
Variant3 ---------R++++++++++++++E---
| |
Bundle ---++++++++++++++++++++++---
lifetime
R=Registration, E=Expiry,
+=valid, -=invalid
Figure 2: Bundle lifetime
In the context of CIRA, the bundle object will provide additional
information regarding the canonical base label, the registrar and the
registrant. Several fields relating to important dates, such as
creation date, last update, transfer date and expiration are also
included. The bundle object is not used for registration and
transfers.
2.5. Domain Lists
Because of the limitations on variant registration described above,
it is desirable for the registry to specify the exact list of allowed
label variants. A registrar could, for example, use that list to
display information to prospective registrants or to explain
registration errors in a registrant-facing interface.
The CIRA IDN EPP extension adds support for a domainList element
returned as a result to Info operations. The domainList contains a
list of allowed label variants based on the requested label.
Using a list is simpler to implement for registrars and does not
require them to process complex rules (or Label Generation Rulesets)
as defined in [ID.draft-ietf-lager-specification]. This limits
implementation errors in the parsing of these rules and the need to
refresh and process them on a regular basis.
3. Object Elements
In order to cover the requirements described above, five elements are
defined in this EPP extension. Elements u-label, repertoire and
domainVariants are defined as part of the base CIRA IDN extension.
The repertoire identifies a character table (idn-table) and the
Latour, et al. Expires October 6, 2016 [Page 6]
Internet-Draft CIRA IDN EPP Extension April 2016
domainVariants carries a list of label variants. The two other
elements, bundleDomain and info, are used in the bundle manipulation
part of the extension.
3.1. U-Labels
The u-label element is an optional parameter used to specify
explicitly the value of a U-label. It will be validated against the
A-label value found in the domain:name attribute. It is based on the
type labelType.
<element name="u-label" type="eppcom:labelType" minOccurs="0"/>
3.2. Repertoires
The repertoire element is based on the repertoireType type defined in
the extension and is a simple string token. Its value MUST be a
valid language tag as described in [RFC5646]. The attribute value is
linked to a character table describing which code points are valid
for this language.
<element name="repertoire" type="cira-idn:repertoireType" />
<simpleType name="repertoireType">
<restriction base="token">
<length value="2"/>
</restriction>
</simpleType>
3.3. DomainVariants
The optional domainVariants element is based on the domainList type,
which is a sequence of elements of labelType. Each label enumerated
in domainVariants represents the possible label variants for a base
domain.
<element name="domainVariants"
type="cira-idn:domainList"
minOccurs="0" />
<complexType name="domainList">
<sequence>
<element name="name"
type="eppcom:labelType"
maxOccurs="unbounded" />
</sequence>
</complexType>
Latour, et al. Expires October 6, 2016 [Page 7]
Internet-Draft CIRA IDN EPP Extension April 2016
3.4. BundleDomains
The bundleDomains element uses the same domainList type as
domainVariants and is used in a similar way, but in a bundle object
rather than in a ciraIdnInfo element. The exact usage is described
below in the extension elements section.
<element name="bundleDomains" type="cira-idn:domainList"/>
3.5. Info
The info element is based on the infoType type, built out of a label
type and a repertoire id. This is similar to the u-label and
repertoire types defined above, but this composed type is only used
in bundle objects and may contain either a u-label or an a-label.
<element name="info" type="cira-idn-bundle:infoType" />
<complexType name="infoType">
<sequence>
<element name="name" type="eppcom:labelType" />
<element name="repertoire"
type="cira-idn:repertoireType"
minOccurs="0"/>
</sequence>
</complexType>
4. EPP Extension Elements
4.1. The ciraIdnCheck Element
The ciraIdnCheck element is used in <check> commands requests to
specify which repertoire (language) is used. Multiple repertoire
elements may be specified if needed.
<element name="ciraIdnCheck" type="cira-idn:checkType" />
<complexType name="checkType">
<sequence>
<element name="repertoire" type="cira-idn:repertoireType" />
</sequence>
</complexType>
4.2. The ciraIdnInfo Element
The ciraIdnInfo element is used in <info> command responses to a
client when multiple IDN labels variants exist according to the
registry policies.
Latour, et al. Expires October 6, 2016 [Page 8]
Internet-Draft CIRA IDN EPP Extension April 2016
<element name="ciraIdnInfo" type="cira-idn:infDataType" />
<complexType name="infDataType">
<sequence>
<element name="domainVariants"
type="cira-idn:domainList"
minOccurs="0" />
</sequence>
</complexType>
4.3. The ciraIdnCreate Element
The ciraIdnCreate element is used in <create> command requests to
specify which repertoire (language) is used. An optionnal U-label of
the requested domain may be specified in order to be validated
against the A-label of the EPP <create> request to ensure correct
conversion. Multiple repertoire elements may be specified if needed.
<element name="ciraIdnCreate" type="cira-idn:createType"/>
<complexType name="createType">
<sequence>
<element name="repertoire" type="cira-idn:repertoireType" />
<element name="u-label" type="eppcom:labelType" minOccurs="0"/>
</sequence>
</complexType>
5. EPP Command Mapping
5.1. EPP Query Commands
5.1.1. EPP <check> Command
The following is an example of IDN EPP Domain Check transaction in
which the client includes the ciraIdnCheck element in the request:
C: <?xml version="1.0" encoding="UTF-8"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <check>
C: <domain:check
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>abc123.ca</domain:name>
C: <domain:name>xyz987.ca</domain:name>
C: <domain:name>xn--r-wfan6a.ca</domain:name>
C: </domain:check>
C: </check>
C: <extension>
C: <cira-idn:ciraIdnCheck
xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0">
Latour, et al. Expires October 6, 2016 [Page 9]
Internet-Draft CIRA IDN EPP Extension April 2016
C: <cira-idn:repertoire>fr</cira-idn:repertoire>
C: </cira-idn:ciraIdnCheck>
C: </extension>
C: <clTRID>ABC-12346</clTRID>
C: </command>
C: </epp>
S: <?xml version="1.0" encoding="UTF-8"?>
S: <epp xmlns:cira="urn:ietf:params:xml:ns:cira1.0"
S: xmlns="urn:ietf:params:xml:ns:epp-1.0"
S: xmlns:host="urn:ietf:params:xml:ns:host- 1.0"
S: xmlns:poll="urn:ietf:params:xml:ns:poll1.0"
S: xmlns:contact="urn:ietf:params:xml:ns:contact1.0"
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <domain:chkData>
S: <domain:cd>
S: <domain:name avail="true">abc123.ca</domain:name>
S: </domain:cd>
S: <domain:cd>
S: <domain:name avail="true">xyz987.ca</domain:name>
S: </domain:cd>
S: <domain:cd>
S: <domain:name avail="false">xn--r-wfan6a.ca</domain:name>
S: <domain:reason>Withheld</domain:reason>
S: </domain:cd>
S: </domain:chkData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12346</clTRID>
S: <svTRID>CIRA-000000000312-0000000003</svTRID>
S: </trID>
S: </response>
S: </epp>
This command returns successful completions responses as specified in
[RFC5730] if no error occurred, usually with a code 1000.
If the request is invalid, return code 2005 is used. The error value
is set to 8309 if the specified repertoire is invalid and to 8001 if
the label contains invalid characters or cannot be converted.
Latour, et al. Expires October 6, 2016 [Page 10]
Internet-Draft CIRA IDN EPP Extension April 2016
5.1.2. EPP <info> Command
The base CIRA IDN extension does not modify the EPP <info> command
sent by the client, except in the case of a bundle command where a
cira-idn-bundle:info object is added to the request. The two cases
are covered below.
5.1.2.1. EPP <info> command for an IDN
If the queried domain is an IDN in A-label format, the response is
modified to include a ciraIdnInfo element containing all the valid
label variants for the domain, including the base label.
C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <info>
C: <domain:info
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name hosts="all">xn--r-wfan6a.ca</domain:name>
C: <domain:authInfo>
C: <domain:pw>password</domain:pw>
C: </domain:authInfo>
C: </domain:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C: </epp>
S: <?xml version="1.0" encoding="UTF-8"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <domain:infData
xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>xn--r-wfan6a.ca</domain:name>
S: <domain:roid>CIRA-lifecycle-00122</domain:roid>
S: <domain:status s="serverUpdateProhibited">
change registrant
</domain:status>
S: <domain:status s="serverDeleteProhibited" />
S: <domain:status s="serverRenewProhibited" />
S: <domain:status s="serverTransferProhibited" />
S: <domain:status s="serverHold" />
S: <domain:registrant>rant003</domain:registrant>
Latour, et al. Expires October 6, 2016 [Page 11]
Internet-Draft CIRA IDN EPP Extension April 2016
S: <domain:contact type="admin">admin003</domain:contact>
S: <domain:contact type="tech">tech003</domain:contact>
S: <domain:ns>
S: <domain:hostObj>ns1.example.ca</domain:hostObj>
S: <domain:hostObj>ns2.example.ca</domain:hostObj>
S: </domain:ns>
S: <domain:host>ns1.pc-case3.ca</domain:host>
S: <domain:host>ns2.pc-case3.ca</domain:host>
S: <domain:clID>rar600</domain:clID>
S: <domain:crID>rar600</domain:crID>
S: <domain:crDate>2012-12-08T16:25:01.0Z</domain:crDate>
S: <domain:exDate>2012-12-08T16:25:01.0Z</domain:exDate>
S: <domain:authInfo>
S: <domain:pw>password2</domain:pw>
S: </domain:authInfo>
S: </domain:infData>
S: </resData>
S: <extension>
S: <cira-idn:ciraIdnInfo
xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0">
S: <cira-idn:domainVariants>
S: <cira-idn:name>xn--r-wfan6a.ca</cira-idn:name>
S: <cira-idn:name>xn--cir-cla.ca</cira-idn:name>
S: <cira-idn:name>cira.ca</cira-idn:name>
S: </cira-idn:domainVariants>
S: </cira-idn:ciraIdnInfo>
S: </extension>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>cira-000002-0000000005</svTRID>
S: </trID>
S: </response>
S: </epp>
This command returns successful completions responses as specified in
[RFC5730] if no error occurred, usually with a code 1000. [[C2:
Error codes and error values to be completed.]]
5.1.2.2. EPP <info> command with a bundle object
A client querying bundle information will include a cira-idn-
bundle:info object in the request. The server will reply with a
bundle object.
C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <info>
Latour, et al. Expires October 6, 2016 [Page 12]
Internet-Draft CIRA IDN EPP Extension April 2016
C: <cira-idn-bundle:info
C: xmlns:cira-idn-bundle=
"urn:ietf:params:xml:ns:cira-idn-bundle-1.0">
C: <cira-idn-bundle:name>
C: xn--valuation-93a.ca
C: </cira-idn-bundle:name>
C: <cira-idn-bundle:repertoire>fr</cira-idn-bundle:repertoire>
C: </cira-idn-bundle:info>
C: </info>
C: <clTRID>
C: ABC-12345
C: </clTRID>
C: </command>
C: </epp>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <extension>
S: <cira-idn-bundle:infData
S: xmlns:cira-idn=
S: "urn:ietf:params:xml:ns:cira-idn-1.0"
S: xmlns:cira-idn-bundle=
S: "urn:ietf:params:xml:ns:cira-idn-bundle-1.0">
S: <cira-idn-bundle:canonicalDomainName>
S: evaluation.ca
S: </cira-idn-bundle:canonicalDomainName>
S: <cira-idn-bundle:roid>CIRA-123</cira-idn-bundle:roid>
S: <cira-idn-bundle:clID>rar600</cira-idn-bundle:clID>
S: <cira-idn-bundle:registrant>
S: rant600
S: </cira-idn-bundle:registrant>
S: <cira-idn-bundle:crID>rar600</cira-idn-bundle:crID>
S: <cira-idn-bundle:crDate>
S: 2012-12-08T16:25:01.0Z
S: </cira-idn-bundle:crDate>
S: <cira-idn-bundle:upID>rar600</cira-idn-bundle:upID>
S: <cira-idn-bundle:upDate>
S: 2012-12-08T17:25:01.0Z
S: </cira-idn-bundle:upDate>
S: <cira-idn-bundle:bundleDomains>
S: <cira-idn:name>evaluation.ca</cira-idn:name>
S: <cira-idn:name>xn--valuation-93a.ca</cira-idn:name>
S: <cira-idn:name>xn--valution-2ya9f.ca</cira-idn:name>
S: </cira-idn-bundle:bundleDomains>
S: </cira-idn-bundle:infData>
Latour, et al. Expires October 6, 2016 [Page 13]
Internet-Draft CIRA IDN EPP Extension April 2016
S: </extension>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>cira-000002-0000000005</svTRID>
S: </trID>
S: </response>
S: </epp>
5.1.3. EPP <poll> Command
The EPP <poll> command is not modified by this extension.
5.1.4. EPP <transfer> Query Command
The transfer command is not modified by this extension. The
domain:name element may contain an IDN in A-label format.
5.2. EPP Transform Commands
5.2.1. EPP <create> Command
The create command from the client is extended with a ciraIdnCreate
element containing the repertoire information and the U-Label for the
domain to create. The server answer will contain the A-label of the
created domain in the domain:name element. The server answer is not
modified by this extension except for return codes.
Return code 8001 is returned by the server when the domain name
contains invalid characters or when the A-label cannot be converted
successfully to a valid U-label. Error code 8309 is used for an
invalid repertoire and 8310 is used when the A-label does not match
the U-label.
C: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
C: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <create>
C: <domain:create
C: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
C: <domain:name>xn--r-wfan6a.ca</domain:name>
C: <domain:period unit="y">2</domain:period>
C: <domain:ns>
C: <domain:hostObj>hostname.example.net</domain:hostObj>
C: <domain:hostObj>hostname.example.com</domain:hostObj>
C: </domain:ns>
C: <domain:registrant>contactid-1</domain:registrant>
C: <domain:contact type="admin">contactid-1</domain:contact>
C: <domain:contact type="tech">nbguy</domain:contact>
Latour, et al. Expires October 6, 2016 [Page 14]
Internet-Draft CIRA IDN EPP Extension April 2016
C: <domain:contact type="tech">nbtech</domain:contact>
C: <domain:contact type="tech">nbadmin</domain:contact>
C: <domain:authInfo>
C: <domain:pw>password</domain:pw>
C: </domain:authInfo>
C: </domain:create>
C: </create>
C: <extension>
C: <cira-idn:ciraIdnCreate
C: xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0">
C: <cira-idn:repertoire>fr</cira-idn:repertoire>
C: <cira-idn:u-label>cira.ca</cira-idn:u-label>
C: </cira-idn:ciraIdnCreate>
C: </extension>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C: </epp>
S: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
S: <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
S: <response>
S: <result code="1000">
S: <msg>Command completed successfully</msg>
S: </result>
S: <resData>
S: <domain:creData
S: xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
S: <domain:name>xn--r-wfan6a.ca</domain:name>
S: <domain:crDate>2012-08-27T17:52:21.0Z</domain:crDate>
S: <domain:exDate>2014-08-27T17:52:01.0Z</domain:exDate>
S: </domain:creData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>CIRA-000001-0000000133</svTRID>
S: </trID>
S: </response>
S: </epp>
5.2.2. EPP <delete> Command
The EPP <delete> command is not modified by this extension.
5.2.3. EPP <renew> Command
The EPP <renew> command is not modified by this extension.
Latour, et al. Expires October 6, 2016 [Page 15]
Internet-Draft CIRA IDN EPP Extension April 2016
5.2.4. EPP <transfer> Command
The EPP <transfer> command is not modified by this extension. The
domain:name element may contain an IDN in A-label format. New error
codes and error values may be returned based on IDN processing.
5.2.5. EPP <update> Command
The EPP <update> command is not modified by this extension. The
domain:name element may contain an IDN in A-label format. New error
codes and error values may be returned based on IDN processing.
The server returns code 8001 when the domain name contains invalid
characters or when the A-label cannot be converted successfully to a
valid U-label. Error code 8309 is used for an invalid repertoire and
8317 is used when the request fails due to a syntax error or a policy
violation error.
6. Formal Syntax
Below are the XML schemas for cira-idn-1.0 and cira-idn-bundle-1.0.
These two schemas were developed separately and are almost
independent of each other, except for the latter borrowing the
domainList type of the former.
6.1. Schema for cira-idn-1.0
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:cira-idn-1.0"
xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!--
Import common element types.
-->
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
schemaLocation="eppcom-1.0.xsd" />
<annotation>
<documentation>
Extensible Provisioning Protocol v1.0
extension schema for IDN name in the .CA registry
</documentation>
</annotation>
<element name="ciraIdnCreate" type="cira-idn:createType" />
Latour, et al. Expires October 6, 2016 [Page 16]
Internet-Draft CIRA IDN EPP Extension April 2016
<element name="ciraIdnInfo" type="cira-idn:infDataType" />
<element name="ciraIdnCheck" type="cira-idn:checkType" />
<!--
Child elements of the <create> command.
-->
<complexType name="createType">
<sequence>
<element name="repertoire" type="cira-idn:repertoireType" />
<element name="u-label" type="eppcom:labelType" minOccurs="0"/>
</sequence>
</complexType>
<simpleType name="repertoireType">
<restriction base="token">
<length value="2"/>
</restriction>
</simpleType>
<!--
Child elements of the <info> command.
-->
<complexType name="infDataType">
<sequence>
<element name="domainVariants"
type="cira-idn:domainList" minOccurs="0" />
</sequence>
</complexType>
<complexType name="domainList">
<sequence>
<element name="name" type="eppcom:labelType
maxOccurs="unbounded" />
</sequence>
</complexType>
<!--
Child elements of the <check> command.
-->
<complexType name="checkType">
<sequence>
<element name="repertoire" type="cira-idn:repertoireType" />
</sequence>
</complexType>
<!--
Latour, et al. Expires October 6, 2016 [Page 17]
Internet-Draft CIRA IDN EPP Extension April 2016
End of schema.
-->
</schema>
6.2. Schema for cira-idn-bundle-1.0
<?xml version="1.0" encoding="UTF-8"?>
<schema
targetNamespace="urn:ietf:params:xml:ns:cira-idn-bundle-1.0"
xmlns:cira-idn-bundle="urn:ietf:params:xml:ns:cira-idn-bundle-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:cira-idn="urn:ietf:params:xml:ns:cira-idn-1.0"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!--
Import common element types.
-->
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
schemaLocation="eppcom-1.0.xsd" />
<import namespace="urn:ietf:params:xml:ns:cira-idn-1.0"
schemaLocation="cira-idn-1.0.xsd" />
<annotation>
<documentation>
Extensible Provisioning Protocol v1.0
bundle schema for framework for
provisioning of cira idn bundle
information.
</documentation>
</annotation>
<!--
Child elements found in EPP commands.
-->
<element name="info" type="cira-idn-bundle:infoType" />
<!--
Child elements of the <info> commands.
-->
<complexType name="infoType">
<sequence>
<element name="name" type="eppcom:labelType" />
<element name="repertoire"
type="cira-idn:repertoireType" minOccurs="0"/>
</sequence>
</complexType>
Latour, et al. Expires October 6, 2016 [Page 18]
Internet-Draft CIRA IDN EPP Extension April 2016
<!--
Child response elements.
-->
<element name="infData" type="cira-idn-bundle:infDataType" />
<!--
<info> response elements.
-->
<complexType name="infDataType">
<sequence>
<element name="canonicalDomainName"
type="eppcom:labelType" />
<element name="roid" type="eppcom:roidType" />
<element name="clID" type="eppcom:clIDType"/>
<element name="registrant" type="eppcom:clIDType"
minOccurs="0"/>
<element name="crID" type="eppcom:clIDType"
minOccurs="0" />
<element name="crDate" type="dateTime"
minOccurs="0" />
<element name="upID" type="eppcom:clIDType"
minOccurs="0" />
<element name="upDate" type="dateTime"
minOccurs="0" />
<element name="trDate" type="dateTime"
minOccurs="0" />
<element name="bundleDomains" type="cira-idn:domainList"/>
</sequence>
</complexType>
<!--
End of schema.
-->
</schema>
7. Security Considerations
For domain labels containing a large number of IDN characters, the
list of label variants can be large. For the French repertoire, the
largest variant code point is from the e character and has 5 variants
(including the base one). For a label containing 64 characters, the
list of label variants may exceed 5E+44 entries. The current schema
does not place a limit on the size of domainVariants element, but
implementations should limit its size for performance purpose.
8. IANA Considerations
The CIRA IDN EPP extension is to be added to the EPP extension
registry as specified in [RFC7451]. Below is the registration
template.
Latour, et al. Expires October 6, 2016 [Page 19]
Internet-Draft CIRA IDN EPP Extension April 2016
-----BEGIN FORM-----
Name of Extension:
"CIRA IDN EPP Extension"
Document Status:
Informational
Reference:
draft-latour-cira-idn-eppext
Registrant Name and Email Address:
.CA Registry Operations, regops@cira.ca
TLDs: .ca
IPR Disclosure: TBD
Status: Active
Notes: None
-----END FORM-----
[[C1: To be completed as needed.]]
9. Acknowledgments
The initial version of this document was written by Jean-Francois
Tremblay and Stuart Olmstead-Wilcox, the authors would like to thank
them for their work.
The authors would also like to thank Marc Blanchet and Audric
Schiltknecht for suggestions and revisions.
10. References
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying
Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646,
September 2009, <http://www.rfc-editor.org/info/rfc5646>.
Latour, et al. Expires October 6, 2016 [Page 20]
Internet-Draft CIRA IDN EPP Extension April 2016
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,
<http://www.rfc-editor.org/info/rfc5730>.
[RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)
Domain Name Mapping", STD 69, RFC 5731,
DOI 10.17487/RFC5731, August 2009,
<http://www.rfc-editor.org/info/rfc5731>.
[RFC5890] Klensin, J., "Internationalized Domain Names for
Applications (IDNA): Definitions and Document Framework",
RFC 5890, DOI 10.17487/RFC5890, August 2010,
<http://www.rfc-editor.org/info/rfc5890>.
[RFC5891] Klensin, J., "Internationalized Domain Names in
Applications (IDNA): Protocol", RFC 5891,
DOI 10.17487/RFC5891, August 2010,
<http://www.rfc-editor.org/info/rfc5891>.
[RFC5892] Faltstrom, P., Ed., "The Unicode Code Points and
Internationalized Domain Names for Applications (IDNA)",
RFC 5892, DOI 10.17487/RFC5892, August 2010,
<http://www.rfc-editor.org/info/rfc5892>.
10.2. Informative References
[RFC3743] Konishi, K., Huang, K., Qian, H., and Y. Ko, "Joint
Engineering Team (JET) Guidelines for Internationalized
Domain Names (IDN) Registration and Administration for
Chinese, Japanese, and Korean", RFC 3743,
DOI 10.17487/RFC3743, April 2004,
<http://www.rfc-editor.org/info/rfc3743>.
[RFC4290] Klensin, J., "Suggested Practices for Registration of
Internationalized Domain Names (IDN)", RFC 4290,
DOI 10.17487/RFC4290, December 2005,
<http://www.rfc-editor.org/info/rfc4290>.
[RFC7451] Hollenbeck, S., "Extension Registry for the Extensible
Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451,
February 2015, <http://www.rfc-editor.org/info/rfc7451>.
[iana-idn-tables]
"Repository of IDN Practices",
<https://www.iana.org/domains/idn-tables>.
Latour, et al. Expires October 6, 2016 [Page 21]
Internet-Draft CIRA IDN EPP Extension April 2016
[icann-idn-guidelines]
"Guidelines For The Implementation Of Internationalized
Domain Names", April 2007,
<http://www.icann.org/en/topics/idn/
idn-guidelines-26apr07.pdf>.
[icann-epp-extentions]
"Proprietary EPP Extensions", December 2012,
<http://newgtlds.icann.org/en/applicants/advisories/
epp-extensions-21dec12-en>.
[ID.draft-ietf-lager-specification]
Davies, K. and A. Freytag, "Representing Label Generation
Rulesets using XML", March 2016,
<http://tools.ietf.org/html/
draft-ietf-lager-specification>.
[ID.draft-ietf-eppext-idnmap]
Obispo, F. and L. Munoz, "Internationalized Domain Name
Mapping Extension for the Extensible Provisioning Protocol
(EPP)", January 2015,
<http://tools.ietf.org/html/draft-ietf-eppext-idnmap>.
[ID.draft-kong-eppext-bundling-registration]
Kong, N., Yao, J., Li, X., Xie, J., and W. Tan,
"Extensible Provisioning Protocol (EPP) Domain Name
Mapping Extension for Bundling Registration", October
2014, <http://tools.ietf.org/html/
draft-kong-eppext-bundling-registration>.
Authors' Addresses
Jacques Latour
CIRA
350 Sparks Street, Suite 306
Ottawa, ON K1R 7S8
Canada
Email: jacques.latour@cira.ca
Tongfeng Zhang
CIRA
Email: tongfeng.zhang@cira.ca
Latour, et al. Expires October 6, 2016 [Page 22]
Internet-Draft CIRA IDN EPP Extension April 2016
Julien Bernard
Viagenie
Email: julien.bernard@viagenie.ca
Latour, et al. Expires October 6, 2016 [Page 23]