Internet DRAFT - draft-ietf-regext-nv-mapping
draft-ietf-regext-nv-mapping
Internet Engineering Task Force X. Jiagui
Internet-Draft Teleinfo
Intended status: Informational J. Gould
Expires: April 29, 2017 VeriSign, Inc.
L. Hongyan
Teleinfo
October 26, 2016
Extensible Provisioning Protocol (EPP) China Name Verification Mapping
draft-ietf-regext-nv-mapping-00
Abstract
This document describes an Extensible Provisioning Protocol (EPP) for
the provisioning and management of Name Verification (NV) stored in a
shared central repository in China. Specified in XML, the mapping
defines EPP command syntax and semantics as applied to name
verification.
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 April 29, 2017.
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
(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
Jiagui, et al. Expires April 29, 2017 [Page 1]
Internet-Draft EPP NV Mapping October 2016
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.
This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other
than English.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definitions and Object Attributes . . . . . . . . . . . . . . 4
3.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Object Attributes . . . . . . . . . . . . . . . . . . . . 5
3.3. Name Verification Proofs . . . . . . . . . . . . . . . . 5
4. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 6
4.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 6
4.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 6
4.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 8
4.1.3. EPP <transfer> Command . . . . . . . . . . . . . . . 16
4.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 16
4.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 16
4.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 22
4.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 22
4.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 22
4.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 22
4.3. Offline Review of Requested Actions . . . . . . . . . . . 24
5. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 26
6. Internationalization Considerations . . . . . . . . . . . . . 33
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33
7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 33
7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 34
8. Security considerations . . . . . . . . . . . . . . . . . . . 34
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35
10. Change History . . . . . . . . . . . . . . . . . . . . . . . 35
10.1. draft-xie-eppext-nv-mapping-00: Version 00 . . . . . . . 35
10.2. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 35
10.3. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 35
10.4. Change from EPPEXT 02 to REGEXT 00 . . . . . . . . . . . 35
Jiagui, et al. Expires April 29, 2017 [Page 2]
Internet-Draft EPP NV Mapping October 2016
11. Normative References . . . . . . . . . . . . . . . . . . . . 35
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36
1. Introduction
When creating a domain name which will be stored in a shared central
repository, some registry administrative organizations require the
verification of the domain name and the real name based on legal or
policy requirements.
The domain name verification, means to verify the domain label is in
compliance with laws, rules and regulations. The real name
verification, means to verify that the registrant really exists and
is authorized to register a domain name.
The verification of this document meets the requirements in China,
but MAY be applicable outside of China.
In order to meet above requirements of the domain name registration,
this document describes the Extensible Provisioning Protocol (EPP)
Name Verification (NV) Mapping. This document is specified using the
Extensible Markup Language (XML) 1.0 as described in
[W3C.REC-xml-20040204] and XML Schema notation as described in
[W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028].
The EPP core protocol specification [RFC5730] provides a complete
description of EPP command and response structures. A thorough
understanding of the base protocol specification is necessary to
understand the mapping described in this document.
2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
"nv-1.0" in this document is used as an abbreviation for
urn:ietf:params:xml:ns:nv-1.0. The XML namespace prefix "nv" is
used, but implementations MUST NOT depend on it and instead employ a
proper namespace-aware XML parser and serializer to interpret and
output the XML documents.
In examples, "C:" represents lines sent by a protocol client and "S:"
represents lines returned by a protocol server. Indentation and
white space in examples are provided only to illustrate element
relationships and are not a REQUIRED feature of this specification.
Jiagui, et al. Expires April 29, 2017 [Page 3]
Internet-Draft EPP NV Mapping October 2016
XML is case sensitive. Unless stated otherwise, XML specifications
and examples provided in this document MUST be interpreted in the
character case presented to develop a conforming implementation.
3. Definitions and Object Attributes
3.1. Definitions
The following definitions are used in this document:
o Domain Name Verification(DNV), represents the verification of the
domain's label is in compliance with laws, rules and regulations.
o Real Name Verification(RNV), represents the verification of the
registrant(real name) is in compliance with laws, rules and
regulations.
o Name Verification(NV), represents DNV, RNV or both of them.
o Verification Service Provider(VSP), collects the proof of
materials for Name Verification(NV) and performs the verification.
o Verification Code, which is described in
[I-D.gould-eppext-verificationcode] ,is a formatted token,
referred to as the Verification Code Token, that is digitally
signed by a Verification Service Provider (VSP) using XML
Signature in "W3C.CR-xmldsig-core2-20120124".
o Signed Code, which is described in
[I-D.gould-eppext-verificationcode], is the XML Signature format
of the Verification Code.
o Encoded Signed Code, which is described in
[I-D.gould-eppext-verificationcode], is the "base64" encoded XML
Signature format of the Verification Code.
o Prohibited Name(PN), is a domain label that is prohibited from
registration.
o Restricted Name(RN), is a domain label that is restricted from
registration. Additional information is needed during Domain Name
Verification(DNV) to authorize the registration of a Restricted
Name.
Jiagui, et al. Expires April 29, 2017 [Page 4]
Internet-Draft EPP NV Mapping October 2016
3.2. Object Attributes
An EPP NV object has attributes and associated values that can be
viewed and modified by the sponsoring client or the server. This
section describes each attribute type in detail. The formal syntax
for the attribute values described here can be found in the "Formal
Syntax" section of this document and in the appropriate normative
references.
o Status Values. A NV object MUST always have one associated status
value. The Status value can be set only by the server. The
status value MAY be accompanied by a string of human-readable text
that describes the rationale for the status applied to the object.
The status of an object MAY change as a result of an action
performed by a server operator. Status Value Descriptions:
* pendingCompliant. The object verification is not complete and
is pending completion. Please refer to Section 4.3 for details
on handling offline review of NV objects with the
pendingComplaint status.
* compliant. The object is in compliance with the policy.
* nonCompliant. The object is not in compliance with the policy.
o Dates and Times. Date and time attribute values MUST be
represented in Universal Coordinated Time (UTC) using the
Gregorian calendar. The extended date-time form using upper case
"T" and "Z" characters defined in [W3C.REC-xmlschema-2-20041028]
MUST be used to represent date-time values, as XML Schema does not
support truncated date-time forms or lower case "T" and "Z"
characters.
o Authorization Information. Authorization information is
associated with NV objects to facilitate query operations.
Authorization information is assigned when a NV object is created,
and it might be updated in the future. This specification
describes password-based authorization information, though other
mechanisms are possible.
3.3. Name Verification Proofs
When performing name verification, some Verification Service
Providers(VSP) MAY need to collect the proof of materials to verify
the real name of a registrant. The proof of materials is defined
with the following enumerated values:
Jiagui, et al. Expires April 29, 2017 [Page 5]
Internet-Draft EPP NV Mapping October 2016
o "poc" for Proof of Citizen(POC). The POC represents the citizen's
identification card(ID) material.
o "poe" for Proof of Enterprise(POE). The POE represents the
Organization Code Certificate(OCC) or Business License(BL)
material.
o "poot" for Proof of Other Types(POOT). The POOT represents other
certificate materials except the POC and POE.
4. EPP Command Mapping
A detailed description of the EPP syntax and semantics can be found
in the EPP core protocol specification [RFC5730]. The command
mappings described here are specifically for use in provisioning and
managing NV via EPP.
4.1. EPP Query Commands
EPP provides three commands to retrieve NV information: <check>
determine if an object is known to the server, <info> to retrieve
detailed information associated with an object, and <transfer> to
retrieve object transfer status information.
4.1.1. EPP <check> Command
The EPP <check> command is used to determine if the domain's label
can be used to create a DNV object. It provides a hint that allows a
client to anticipate the success or failure of creating a DNV object
using the <create> command.
In addition to the standard EPP command elements, the <check> command
MUST contain a <nv:check> element that identifies the nv namespace.
The <nv:check> element contains the following child elements:
o One or more <nv:name> elements that contain the domain labels to
be queried.
Jiagui, et al. Expires April 29, 2017 [Page 6]
Internet-Draft EPP NV Mapping October 2016
Example <check> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <check>
C: <nv:check xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
C: <nv:name>example1</nv:name>
C: <nv:name>example2</nv:name>
C: <nv:name>example3</nv:name>
C: </nv:check>
C: </check>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When a <check> command has been processed successfully, the EPP
<resData> element MUST contain a child <nv:chkData> element that
identifies the NV namespace. The <nv:chkData> element contains one
or more <nv:cd>elements that contain the following child elements:
o A <nv:name> element that contains the queried domain label. This
element MUST contain an "avail" attribute whose value indicates
object availability (can it be created or not) at the moment the
<check> command was completed. A value of "1" or "true" means
that the object can be created. A value of "0" or "false" means
that the object can not be created. This element SHOULD contain a
"restricted" attribute whose value indicates this name is a RN or
not, with a default value of "0". A value of "1" or "true" means
that the object is a RN Name. A value of "0" or "false" means
that the object is not restricted.
o An OPTIONAL <nv:reason> element that MAY be provided when an
object cannot be created. If present, this element contains
server-specific text to help explain why the object cannot be
created. This text MUST be represented in the response language
previously negotiated with the client; an OPTIONAL "lang"
attribute MAY be present to identify the language if the
negotiated value is something other than the default value of "en"
(English).
Jiagui, et al. Expires April 29, 2017 [Page 7]
Internet-Draft EPP NV Mapping October 2016
Example <check> response:
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: <nv:chkData
S: xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:cd>
S: <nv:name avail="1">example1</nv:name>
S: </nv:cd>
S: <nv:cd>
S: <nv:name avail="0">example2</nv:name>
S: <nv:reason>In Prohibited Lists.</nv:reason>
S: </nv:cd>
S: <nv:cd>
S: <nv:name avail="0" restricted="1">example3</nv:name>
S: </nv:cd>
S: </nv:chkData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
An EPP error response MUST be returned if a <check> command cannot be
processed for any reason.
4.1.2. EPP <info> Command
The EPP <info> command is used to retrieve information associated
with a NV object. The response to this command MAY vary depending on
the identity of the querying client, and server policy towards
unauthorized clients. If the querying client is the sponsoring
client, all available information MUST be returned. If the querying
client is not the sponsoring client but the client provides valid
authorization information, all available information MUST be
returned. If the querying client is not the sponsoring client and
the client does not provide valid authorization information, server
policy determines which OPTIONAL elements are returned.
Jiagui, et al. Expires April 29, 2017 [Page 8]
Internet-Draft EPP NV Mapping October 2016
In addition to the standard EPP command elements, the <info> command
MUST contain a <nv:info> element that identifies the NV namespace.
The <nv:info> element contains the following child elements:
o A <nv:code> element that contains the Verification Code Token
value. An "type" attribute MUST be used to identify the type of
the query(Signed Code or Input Data). If the type is
"signedCode", the successful response of the server MUST be the
Signed Code of the verification code. If the type is "input", the
successful response of the server MUST be the verification input
data and the verification status.
o An OPTIONAL <nv:authInfo> element that contains authorization
information associated with the NV object. If this element is not
provided or if the authorization information is invalid, server
policy determines if the command is rejected or if response
information will be returned to the client.
Jiagui, et al. Expires April 29, 2017 [Page 9]
Internet-Draft EPP NV Mapping October 2016
Example <info> command to query the signed code:
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: <nv:info xmlns:nv="urn:ietf:params:xml:ns:nv-1.0"
C: type="signedCode">
C: <nv:code>abc-123</nv:code>
C: </nv:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <info> command to query the input data:
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: <nv:info xmlns:nv="urn:ietf:params:xml:ns:nv-1.0"
C: type="input">
C: <nv:code>abc-123</nv:code>
C: </nv:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <info> command with authorization information:
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: <nv:info xmlns:nv="urn:ietf:params:xml:ns:nv-1.0"
C: type="signedCode">
C: <nv:code>abc-123</nv:code>
C: <nv:authInfo>
C: <nv:pw>2fooBAR</nv:pw>
C: </nv:authInfo>
C: </nv:info>
C: </info>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Jiagui, et al. Expires April 29, 2017 [Page 10]
Internet-Draft EPP NV Mapping October 2016
When an <info> command has been processed successfully, the EPP
<resData> element MUST contain a child <nv:infData> element that
identifies the nv namespace. The <nv:infData> element has two forms
based on the query type provided in the command: the Signed Code Form
and the Input Form. The child element of the <nv:infData> element is
defined for each form.
The Signed Code Form is returned when the command "type" attribute is
set to "signedCode". The <nv:signedCode> element is used for the
Signed Code Form that contains the following child elements:
o A <nv:code> element that contains the Verification Code Token
value of the signed code with the "type" attribute to indicate the
type of NV object. The "type" attribute value of "domain"
indicates a DNV object and "real-name" indicates a RNV object.
o An OPTIONAL <nv:status> element that contains the current status
using the status values defined in Section 3.2.
o A <nv:encodedSignedCode> element include:
* A <verificationCode:code>element that is a "base64" encoded
form of the digitally signed <verificationCode:signedCode> as
defined in [I-D.gould-eppext-verificationcode].
Example <info> response of a Signed Code:
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: <nv:infData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:signedCode>
S: <nv:code type="domain">abc-123</nv:code>
S: <nv:status s="compliant"/>
S: <nv:authInfo>
S: <nv:pw>2fooBAR</nv:pw>
S: </nv:authInfo>
S: <nv:encodedSignedCode>
S:ICAgICAgPHZlcmlmaWNhdGlvbkNvZGU6c2lnbmVkQ29kZQogICAgICAgIHhtbG5z
S:OnZlcmlmaWNhdGlvbkNvZGU9CiAgICAgICAgICAidXJuOmlldGY6cGFyYW1zOnht
S:bDpuczp2ZXJpZmljYXRpb25Db2RlLTEuMCIKICAgICAgICAgIGlkPSJzaWduZWRD
S:b2RlIj4KICAgCQk8dmVyaWZpY2F0aW9uQ29kZTpjb2RlPjEtYWJjMTIzPC92ZXJp
S:ZmljYXRpb25Db2RlOmNvZGU+CiAgPFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3
Jiagui, et al. Expires April 29, 2017 [Page 11]
Internet-Draft EPP NV Mapping October 2016
S:dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgIDxTaWduZWRJbmZvPgogICAg
S:PENhbm9uaWNhbGl6YXRpb25NZXRob2QKIEFsZ29yaXRobT0iaHR0cDovL3d3dy53
S:My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+CiAgICA8U2lnbmF0dXJlTWV0
S:aG9kCiBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNp
S:Zy1tb3JlI3JzYS1zaGEyNTYiLz4KICAgIDxSZWZlcmVuY2UgVVJJPSIjc2lnbmVk
S:Q29kZSI+CiAgICAgPFRyYW5zZm9ybXM+CiAgICAgIDxUcmFuc2Zvcm0KIEFsZ29y
S:aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3Bl
S:ZC1zaWduYXR1cmUiLz4KICAgICA8L1RyYW5zZm9ybXM+CiAgICAgPERpZ2VzdE1l
S:dGhvZAogQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu
S:YyNzaGEyNTYiLz4KIDxEaWdlc3RWYWx1ZT53Z3lXM25aUG9FZnBwdGxoUklMS25P
S:UW5iZHRVNkFyTTdTaHJBZkhnREZnPTwvRGlnZXN0VmFsdWU+CiAgICA8L1JlZmVy
S:ZW5jZT4KICAgPC9TaWduZWRJbmZvPgogICA8U2lnbmF0dXJlVmFsdWU+CiBqTXU0
S:UGZ5UUdpSkJGMEdXU0VQRkNKam15d0NFcVIyaDRMRCtnZTZYUStKbm1LRkZDdUNa
S:Uy8zU0xLQXgwTDF3CiBRREZPMmUwWTY5azJHNy9MR0UzN1gzdk9mbG9iRk0xb0d3
S:amE4K0dNVnJhb3RvNXhBZDQvQUY3ZUh1a2dBeW1ECiBvOXRveG9hMmgweVY0QTRQ
S:bVh6c1U2Uzg2WHRDY1VFK1MvV003Mm55bjQ3em9VQ3p6UEtIWkJSeWVXZWhWRlEr
S:CiBqWVJNSUFNek01N0hIUUErNmVhWGVmUnZ0UEVUZ1VPNGFWSVZTdWdjNE9VQVpa
S:d2JZY1pyQzZ3T2FRcXFxQVppCiAzMGFQT0JZYkF2SE1TbVdTUytoRmtic2hvbUpm
S:SHhiOTdURDJncmxZTnJRSXpxWGs3V2JIV3kyU1lkQStzSS9aCiBpcEpzWE5hNm9z
S:VFV3MUN6QTdqZndBPT0KICAgPC9TaWduYXR1cmVWYWx1ZT4KICAgPEtleUluZm8+
S:CiAgICA8WDUwOURhdGE+CiAgICA8WDUwOUNlcnRpZmljYXRlPgogTUlJRVNUQ0NB
S:ekdnQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFzRkFEQmlNUXN3Q1FZRFZRUUdF
S:d0pWVXpFTAogTUFrR0ExVUVDQk1DUTBFeEZEQVNCZ05WQkFjVEMweHZjeUJCYm1k
S:bGJHVnpNUk13RVFZRFZRUUtFd3BKUTBGTwogVGlCVVRVTklNUnN3R1FZRFZRUURF
S:eEpKUTBGT1RpQlVUVU5JSUZSRlUxUWdRMEV3SGhjTk1UTXdNakE0TURBdwogTURB
S:d1doY05NVGd3TWpBM01qTTFPVFU1V2pCc01Rc3dDUVlEVlFRR0V3SlZVekVMTUFr
S:R0ExVUVDQk1DUTBFeAogRkRBU0JnTlZCQWNUQzB4dmN5QkJibWRsYkdWek1SY3dG
S:UVlEVlFRS0V3NVdZV3hwWkdGMGIzSWdWRTFEU0RFaAogTUI4R0ExVUVBeE1ZVm1G
S:c2FXUmhkRzl5SUZSTlEwZ2dWRVZUVkNCRFJWSlVNSUlCSWpBTkJna3Foa2lHOXcw
S:QgogQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBby9jd3ZYaGJWWWwwUkRXV3ZveWVa
S:cEVUVlpWVmNNQ292VVZOZy9zdwogV2ludU1nRVdnVlFGcnoweEEwNHBFaFhDRlZ2
S:NGV2YlVwZWtKNWJ1cVUxZ21ReU9zQ0tRbGhPSFRkUGp2a0M1dQogcERxYTUxRmxr
S:MFRNYU1rSVFqczdhVUtDbUE0Ukc0dFRUR0svRWpSMWl4OC9EMGdIWVZSbGR5MVlQ
S:ck1QK291NwogNWJPVm5Jb3MrSGlmckF0ckl2NHFFcXdMTDRGVFpBVXBhQ2EyQm1n
S:WGZ5MkNTUlFieEQ1T3IxZ2NTYTN2dXJoNQogc1BNQ054cWFYbUlYbVFpcFMrRHVF
S:QnFNTTh0bGRhTjdSWW9qVUVLckdWc05rNWk5eTIvN3NqbjF6eXlVUGY3dgogTDRH
S:Z0RZcWhKWVdWNjFEblhneC9KZDZDV3h2c25ERjZzY3NjUXpVVEVsK2h5d0lEQVFB
S:Qm80SC9NSUg4TUF3RwogQTFVZEV3RUIvd1FDTUFBd0hRWURWUjBPQkJZRUZQWkVj
S:SVFjRC9CajJJRnovTEVSdW8yQURKdmlNSUdNQmdOVgogSFNNRWdZUXdnWUdBRk8w
S:LzdrRWgzRnVFS1MrUS9rWUhhRC9XNndpaG9XYWtaREJpTVFzd0NRWURWUVFHRXdK
S:VgogVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGREFTQmdOVkJBY1RDMHh2Y3lCQmJtZGxi
S:R1Z6TVJNd0VRWURWUVFLRXdwSgogUTBGT1RpQlVUVU5JTVJzd0dRWURWUVFERXhK
S:SlEwRk9UaUJVVFVOSUlGUkZVMVFnUTBHQ0FRRXdEZ1lEVlIwUAogQVFIL0JBUURB
S:Z2VBTUM0R0ExVWRId1FuTUNVd0k2QWhvQitHSFdoMGRIQTZMeTlqY213dWFXTmhi
S:bTR1YjNKbgogTDNSdFkyZ3VZM0pzTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFC
S:MnFTeTd1aSs0M2NlYktVS3dXUHJ6ejl5LwogSWtyTWVKR0tqbzQwbis5dWVrYXcz
S:REo1RXFpT2YvcVo0cGpCRCsrb1I2QkpDYjZOUXVRS3dub0F6NWxFNFNzdQogeTUr
S:aTkzb1QzSGZ5VmM0Z05NSW9IbTFQUzE5bDdEQktyYndiekFlYS8waktXVnpydm1W
Jiagui, et al. Expires April 29, 2017 [Page 12]
Internet-Draft EPP NV Mapping October 2016
S:N1RCZmp4RDNBUW8xUgogYlU1ZEJyNklqYmRMRmxuTzV4MEcwbXJHN3g1T1VQdXVy
S:aWh5aVVScEZEcHdIOEtBSDF3TWNDcFhHWEZSdEdLawogd3lkZ3lWWUF0eTdvdGts
S:L3ozYlprQ1ZUMzRnUHZGNzBzUjYrUXhVeTh1MEx6RjVBL2JlWWFacHhTWUczMWFt
S:TAogQWRYaXRUV0ZpcGFJR2VhOWxFR0ZNMEw5K0JnN1h6Tm40blZMWG9reUVCM2Jn
S:UzRzY0c2UXpuWDIzRkdrCiAgIDwvWDUwOUNlcnRpZmljYXRlPgogICA8L1g1MDlE
S:YXRhPgogICA8L0tleUluZm8+CiAgPC9TaWduYXR1cmU+CgkJPC92ZXJpZmljYXRp
S:b25Db2RlOnNpZ25lZENvZGU+Cg==
S: </nv:encodedSignedCode>
S: </nv:signedCode>
S: </nv:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
The Input Code Form is returned when the command "type" attribute is
set to "input". The <nv:input> element is used for the Input Form
and contains a choice of two different child elements dependent on
the type of NV object that matches the <nv:code> in the command. The
<nv:dnv> child element is used for a DNV object and the <nv:rnv>
child element is used for a RNV object.
The <nv:dnv> element is used for a DNV object and contains the
following child elements:
o A <nv:name> element that contains the label of the domain.
o An OPTIONAL <nv:rnvCode> element containing the Verification Code
Token value of a RNV object used for verification of a Restricted
Name.
Jiagui, et al. Expires April 29, 2017 [Page 13]
Internet-Draft EPP NV Mapping October 2016
Example <info> response of a DNV:
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: <nv:infData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:input>
S: <nv:dnv>
S: <nv:name>example</nv:name>
S: </nv:dnv>
S: <nv:authInfo>
S: <nv:pw>2fooBAR</nv:pw>
S: </nv:authInfo>
S: </nv:input>
S: </nv:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
The <nv:rnv> element is used for a RNV object. The "role" attribute
MUST be used to identify the role of the RNV object with the possible
values of "person" or "org".
The <nv:rnv> element contains the following child elements:
o A <nv:name> element that contains the full name of the contact.
o A <nv:num> element that contains the citizen or the organization
ID of the contact.
o A <nv:proofType> element that contains the proof material type of
the contact based on the enumerated values defined in Name
Verification Proofs (Section 3.3).
o Zero or more <nv:document> elements that contains the following
child elements:
* A <nv:fileType> element contains the type of the file.
Jiagui, et al. Expires April 29, 2017 [Page 14]
Internet-Draft EPP NV Mapping October 2016
* A <nv:fileContent> element contains the "base64" encoded
content of the file.
Example <info> response of a RNV person:
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: <nv:infData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:input>
S: <nv:rnv role="person">
S: <nv:name>John Xie</nv:name>
S: <nv:num>1234567890</nv:num>
S: <nv:proofType>poc</nv:proofType>
S: <nv:document>
S: <nv:fileType>jpg</nv:fileType>
S: <nv:fileContent>EABQRAQAAAAAAAAAAAAAAAAAAAAD
S: </nv:fileContent>
S: </nv:document>
S: </nv:rnv>
S: <nv:authInfo>
S: <nv:pw>2fooBAR</nv:pw>
S: </nv:authInfo>
S: </nv:input>
S: </nv:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
Example <info> response of a RNV organization:
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: <nv:infData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
Jiagui, et al. Expires April 29, 2017 [Page 15]
Internet-Draft EPP NV Mapping October 2016
S: <nv:input>
S: <nv:rnv role="org">
S: <nv:name>John Xie</nv:name>
S: <nv:num>1234567890</nv:num>
S: <nv:proofType>poe</nv:proofType>
S: <nv:document>
S: <nv:fileType>jpg</nv:fileType>
S: <nv:fileContent>EABQRAQAAAAAAAAAAAAAAAAAAAAD
S: </nv:fileContent>
S: </nv:document>
S: </nv:rnv>
S: <nv:authInfo>
S: <nv:pw>2fooBAR</nv:pw>
S: </nv:authInfo>
S: </nv:input>
S: </nv:infData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54322-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
A server with a different information-return policy MAY provide less
information in a response for an unauthorized client.
An EPP error response MUST be returned if an <info> command cannot be
processed for any reason.
4.1.3. EPP <transfer> Command
Transfer semantics do not apply to Name Verification (NV) objects, so
there is no mapping defined for the EPP <transfer> command.
4.2. EPP Transform Commands
EPP provides five commands to transform NV objects: <create> to
create an instance of an object, <delete> to delete an instance of an
object, <renew> to extend the validity period of an object,
<transfer> to manage object sponsorship changes, and <update> to
change information associated with an object.
4.2.1. EPP <create> Command
The EPP <create> command provides a transform operation that allows a
client to create an NV object. In addition to the standard EPP
command elements, the <create> command MUST contain a <nv:create>
Jiagui, et al. Expires April 29, 2017 [Page 16]
Internet-Draft EPP NV Mapping October 2016
element that identifies the NV namespace. The <nv:create> elements
contains a choice of two different child elements dependent on the
type of NV object to create. The <nv:dnv> child element is used to
create a DNV object and the <nv:rnv> child element is used to create
a RNV object. AN <nv:authInfo> element contains authorization
information to be associated with the NV object.
o The <nv:dnv> element is used for a DNV object and contains the
following child elements:
* A <nv:name> element that contains the label of the domain.
* An OPTIONAL <nv:rnvCode> element containing the Verification
Code Token value of a RNV object used for verification of a
Restricted Name.
o The <nv:rnv> element is used for a RNV object. The "role"
attribute MUST be used to identify the role of the RNV object with
the possible values of "person" or "org". The <nv:rnv> element
contains the following child elements:
* A <nv:name> element that contains the full name of the contact.
* A <nv:num> element that contains the citizen or the
organization ID of the contact.
* A <nv:proofType> element that contains the proof material type
of the contact based on the enumerated values defined in Name
Verification Proofs (Section 3.3).
* Zero or more <nv:document> elements that contains the following
child elements:
+ A <nv:fileType> element contains the type of the file.
+ A <nv:fileContent> element contains the "base64" encoded
content of the file.
Example <create> command for a DNV 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: <create>
C: <nv:create xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
C: <nv:dnv>
C: <nv:name>example</nv:name>
C: </nv:dnv>
Jiagui, et al. Expires April 29, 2017 [Page 17]
Internet-Draft EPP NV Mapping October 2016
C: <nv:authInfo>
C: <nv:pw>2fooBAR</nv:pw>
C: </nv:authInfo>
C: </nv:create>
C: </create>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <create> command for a RNV person 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: <create>
C: <nv:create xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
C: <nv:rnv role="person">
C: <nv:name>John Xie</nv:name>
C: <nv:num>1234567890</nv:num>
C: <nv:proofType>poe</nv:proofType>
C: <nv:document>
C: <nv:fileType>jpg</nv:fileType>
C: <nv:fileContent>EABQRAQAAAAAAAAAAAAAAAAAAAAD
C: </nv:fileContent>
C: </nv:document>
C: </nv:rnv>
C: <nv:authInfo>
C: <nv:pw>2fooBAR</nv:pw>
C: </nv:authInfo>
C: </nv:create>
C: </create>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
Example <create> command for an RNV organization:
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: <nv:create xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
C: <nv:rnv role="org">
C: <nv:name>John Xie</nv:name>
C: <nv:num>1234567890</nv:num>
C: <nv:proofType>poe</nv:proofType>
C: <nv:document>
C: <nv:fileType>jpg</nv:fileType>
Jiagui, et al. Expires April 29, 2017 [Page 18]
Internet-Draft EPP NV Mapping October 2016
C: <nv:fileContent>EABQRAQAAAAAAAAAAAAAAAAAAAAD
C: </nv:fileContent>
C: </nv:document>
C: </nv:rnv>
C: <nv:authInfo>
C: <nv:pw>2fooBAR</nv:pw>
C: </nv:authInfo>
C: </nv:create>
C: </create>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When a <create> command has been processed successfully, the EPP
<resData> element MUST contain a child <nv:creData> element that
identifies the nv namespace. <nv:creData> element contains the either
a <nv:success> element on success or a <nv:failed> element on
failure.
o The <nv:success> element contains the following child elements:
* A <nv:code> element that contains the id of the verification
code with the required "type" attribute that defines the type
of the verification code.
* A <nv:status> element that contains the current status using
the status values defined in Section 3.2.
* A <nv:crDate> element that contains the date and time of nv
object creation.
* A <nv:encodedSignedCode> element include:
+ A <verificationCode:code>element that is a "base64" encoded
form of the digitally signed <verificationCode:signedCode>
as defined in [I-D.gould-eppext-verificationcode].
o The <nv:failed> element contains the following child elements:
* A <nv:status> element that contains the current status using
the status values defined in Section 3.2.
* A <nv:msg> element containing a human-readable description of
the reason of the failure. The language of the response is
identified via an OPTIONAL "lang" attribute. If not specified,
the default attribute value MUST be "en" (English).
Example <create> response of success:
Jiagui, et al. Expires April 29, 2017 [Page 19]
Internet-Draft EPP NV Mapping October 2016
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: <nv:creData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:success>
S: <nv:code type="domain">abc-123</nv:code>
S: <nv:status s="compliant"/>
S: <nv:crDate>2015-08-17T22:00:00.0Z</nv:crDate>
S: <nv:encodedSignedCode>
S:ICAgICAgPHZlcmlmaWNhdGlvbkNvZGU6c2lnbmVkQ29kZQogICAgICAgIHhtbG5z
S:OnZlcmlmaWNhdGlvbkNvZGU9CiAgICAgICAgICAidXJuOmlldGY6cGFyYW1zOnht
S:bDpuczp2ZXJpZmljYXRpb25Db2RlLTEuMCIKICAgICAgICAgIGlkPSJzaWduZWRD
S:b2RlIj4KICAgCQk8dmVyaWZpY2F0aW9uQ29kZTpjb2RlPjEtYWJjMTIzPC92ZXJp
S:ZmljYXRpb25Db2RlOmNvZGU+CiAgPFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3
S:dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+CiAgIDxTaWduZWRJbmZvPgogICAg
S:PENhbm9uaWNhbGl6YXRpb25NZXRob2QKIEFsZ29yaXRobT0iaHR0cDovL3d3dy53
S:My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+CiAgICA8U2lnbmF0dXJlTWV0
S:aG9kCiBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNp
S:Zy1tb3JlI3JzYS1zaGEyNTYiLz4KICAgIDxSZWZlcmVuY2UgVVJJPSIjc2lnbmVk
S:Q29kZSI+CiAgICAgPFRyYW5zZm9ybXM+CiAgICAgIDxUcmFuc2Zvcm0KIEFsZ29y
S:aXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3Bl
S:ZC1zaWduYXR1cmUiLz4KICAgICA8L1RyYW5zZm9ybXM+CiAgICAgPERpZ2VzdE1l
S:dGhvZAogQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu
S:YyNzaGEyNTYiLz4KIDxEaWdlc3RWYWx1ZT53Z3lXM25aUG9FZnBwdGxoUklMS25P
S:UW5iZHRVNkFyTTdTaHJBZkhnREZnPTwvRGlnZXN0VmFsdWU+CiAgICA8L1JlZmVy
S:ZW5jZT4KICAgPC9TaWduZWRJbmZvPgogICA8U2lnbmF0dXJlVmFsdWU+CiBqTXU0
S:UGZ5UUdpSkJGMEdXU0VQRkNKam15d0NFcVIyaDRMRCtnZTZYUStKbm1LRkZDdUNa
S:Uy8zU0xLQXgwTDF3CiBRREZPMmUwWTY5azJHNy9MR0UzN1gzdk9mbG9iRk0xb0d3
S:amE4K0dNVnJhb3RvNXhBZDQvQUY3ZUh1a2dBeW1ECiBvOXRveG9hMmgweVY0QTRQ
S:bVh6c1U2Uzg2WHRDY1VFK1MvV003Mm55bjQ3em9VQ3p6UEtIWkJSeWVXZWhWRlEr
S:CiBqWVJNSUFNek01N0hIUUErNmVhWGVmUnZ0UEVUZ1VPNGFWSVZTdWdjNE9VQVpa
S:d2JZY1pyQzZ3T2FRcXFxQVppCiAzMGFQT0JZYkF2SE1TbVdTUytoRmtic2hvbUpm
S:SHhiOTdURDJncmxZTnJRSXpxWGs3V2JIV3kyU1lkQStzSS9aCiBpcEpzWE5hNm9z
S:VFV3MUN6QTdqZndBPT0KICAgPC9TaWduYXR1cmVWYWx1ZT4KICAgPEtleUluZm8+
S:CiAgICA8WDUwOURhdGE+CiAgICA8WDUwOUNlcnRpZmljYXRlPgogTUlJRVNUQ0NB
S:ekdnQXdJQkFnSUJBakFOQmdrcWhraUc5dzBCQVFzRkFEQmlNUXN3Q1FZRFZRUUdF
S:d0pWVXpFTAogTUFrR0ExVUVDQk1DUTBFeEZEQVNCZ05WQkFjVEMweHZjeUJCYm1k
S:bGJHVnpNUk13RVFZRFZRUUtFd3BKUTBGTwogVGlCVVRVTklNUnN3R1FZRFZRUURF
S:eEpKUTBGT1RpQlVUVU5JSUZSRlUxUWdRMEV3SGhjTk1UTXdNakE0TURBdwogTURB
S:d1doY05NVGd3TWpBM01qTTFPVFU1V2pCc01Rc3dDUVlEVlFRR0V3SlZVekVMTUFr
S:R0ExVUVDQk1DUTBFeAogRkRBU0JnTlZCQWNUQzB4dmN5QkJibWRsYkdWek1SY3dG
S:UVlEVlFRS0V3NVdZV3hwWkdGMGIzSWdWRTFEU0RFaAogTUI4R0ExVUVBeE1ZVm1G
S:c2FXUmhkRzl5SUZSTlEwZ2dWRVZUVkNCRFJWSlVNSUlCSWpBTkJna3Foa2lHOXcw
S:QgogQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBby9jd3ZYaGJWWWwwUkRXV3ZveWVa
Jiagui, et al. Expires April 29, 2017 [Page 20]
Internet-Draft EPP NV Mapping October 2016
S:cEVUVlpWVmNNQ292VVZOZy9zdwogV2ludU1nRVdnVlFGcnoweEEwNHBFaFhDRlZ2
S:NGV2YlVwZWtKNWJ1cVUxZ21ReU9zQ0tRbGhPSFRkUGp2a0M1dQogcERxYTUxRmxr
S:MFRNYU1rSVFqczdhVUtDbUE0Ukc0dFRUR0svRWpSMWl4OC9EMGdIWVZSbGR5MVlQ
S:ck1QK291NwogNWJPVm5Jb3MrSGlmckF0ckl2NHFFcXdMTDRGVFpBVXBhQ2EyQm1n
S:WGZ5MkNTUlFieEQ1T3IxZ2NTYTN2dXJoNQogc1BNQ054cWFYbUlYbVFpcFMrRHVF
S:QnFNTTh0bGRhTjdSWW9qVUVLckdWc05rNWk5eTIvN3NqbjF6eXlVUGY3dgogTDRH
S:Z0RZcWhKWVdWNjFEblhneC9KZDZDV3h2c25ERjZzY3NjUXpVVEVsK2h5d0lEQVFB
S:Qm80SC9NSUg4TUF3RwogQTFVZEV3RUIvd1FDTUFBd0hRWURWUjBPQkJZRUZQWkVj
S:SVFjRC9CajJJRnovTEVSdW8yQURKdmlNSUdNQmdOVgogSFNNRWdZUXdnWUdBRk8w
S:LzdrRWgzRnVFS1MrUS9rWUhhRC9XNndpaG9XYWtaREJpTVFzd0NRWURWUVFHRXdK
S:VgogVXpFTE1Ba0dBMVVFQ0JNQ1EwRXhGREFTQmdOVkJBY1RDMHh2Y3lCQmJtZGxi
S:R1Z6TVJNd0VRWURWUVFLRXdwSgogUTBGT1RpQlVUVU5JTVJzd0dRWURWUVFERXhK
S:SlEwRk9UaUJVVFVOSUlGUkZVMVFnUTBHQ0FRRXdEZ1lEVlIwUAogQVFIL0JBUURB
S:Z2VBTUM0R0ExVWRId1FuTUNVd0k2QWhvQitHSFdoMGRIQTZMeTlqY213dWFXTmhi
S:bTR1YjNKbgogTDNSdFkyZ3VZM0pzTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFC
S:MnFTeTd1aSs0M2NlYktVS3dXUHJ6ejl5LwogSWtyTWVKR0tqbzQwbis5dWVrYXcz
S:REo1RXFpT2YvcVo0cGpCRCsrb1I2QkpDYjZOUXVRS3dub0F6NWxFNFNzdQogeTUr
S:aTkzb1QzSGZ5VmM0Z05NSW9IbTFQUzE5bDdEQktyYndiekFlYS8waktXVnpydm1W
S:N1RCZmp4RDNBUW8xUgogYlU1ZEJyNklqYmRMRmxuTzV4MEcwbXJHN3g1T1VQdXVy
S:aWh5aVVScEZEcHdIOEtBSDF3TWNDcFhHWEZSdEdLawogd3lkZ3lWWUF0eTdvdGts
S:L3ozYlprQ1ZUMzRnUHZGNzBzUjYrUXhVeTh1MEx6RjVBL2JlWWFacHhTWUczMWFt
S:TAogQWRYaXRUV0ZpcGFJR2VhOWxFR0ZNMEw5K0JnN1h6Tm40blZMWG9reUVCM2Jn
S:UzRzY0c2UXpuWDIzRkdrCiAgIDwvWDUwOUNlcnRpZmljYXRlPgogICA8L1g1MDlE
S:YXRhPgogICA8L0tleUluZm8+CiAgPC9TaWduYXR1cmU+CgkJPC92ZXJpZmljYXRp
S:b25Db2RlOnNpZ25lZENvZGU+Cg==
S: </nv:encodedSignedCode>
S: </nv:success>
S: </nv:creData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
Example <create> response of failed:
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: <nv:creData xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:failed>
S: <nv:status s="nonCompliant"/>
Jiagui, et al. Expires April 29, 2017 [Page 21]
Internet-Draft EPP NV Mapping October 2016
S: <nv:msg lang="en">
S: The name of the object is not correct.
S: </nv:msg>
S: </nv:failed>
S: </nv:creData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
An EPP error response MUST be returned if a <create> command cannot
be processed for any reason.
4.2.2. EPP <delete> Command
Delete semantics do not apply to Name Verification (NV) objects, so
there is no mapping defined for the EPP <delete> command.
4.2.3. EPP <renew> Command
Renew semantics do not apply to Name Verification (NV) objects, so
there is no mapping defined for the EPP <renew> command.
4.2.4. EPP <transfer> Command
Transfer semantics do not apply to Name Verification (NV) objects, so
there is no mapping defined for the EPP <transfer> command.
4.2.5. EPP <update> Command
The EPP <update> command provides a transform operation that allows a
client to modify the attributes of a NV object. In addition to the
standard EPP command elements, the <update> command MUST contain a
<nv:update> element that identifies the NV namespace. The
<nv:update> element contains the following child elements:
o A <nv:code> element that contains the code of the a NV object to
be updated.
o A <nv:chg> element that contains object attribute values to be
changed.
A <nv:chg> element contains the following child elements:
Jiagui, et al. Expires April 29, 2017 [Page 22]
Internet-Draft EPP NV Mapping October 2016
o A <nv:authInfo> element that contains authorization information
associated with the NV object. This mapping includes a password-
based authentication mechanism, but the schema allows new
mechanisms to be defined in new schemas.
Example <update> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C: <command>
C: <update>
C: <nv:update xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
C: <nv:code>abc-123</nv:code>
C: <nv:chg>
C: <nv:authInfo>
C: <nv:pw>2BARfoo</nv:pw>
C: </nv:authInfo>
C: </nv:chg>
C: </nv:update>
C: </update>
C: <clTRID>ABC-12345</clTRID>
C: </command>
C:</epp>
When an <update> command has been processed successfully,
a server MUST respond with an EPP response with no
<resData> element.
Example <update> response:
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: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
An EPP error response MUST be returned if an <update>
command cannot be processed for any reason.
Jiagui, et al. Expires April 29, 2017 [Page 23]
Internet-Draft EPP NV Mapping October 2016
4.3. Offline Review of Requested Actions
Commands are processed by a server in the order they are received
from a client. Though an immediate response confirming receipt and
processing of the command is produced by the server, a server
operator MAY perform an offline review of requested transform
commands before completing the requested action. In such situations,
the response from the server MUST clearly note that the transform
command has been received and processed but that the requested action
is pending. The status of the corresponding object MUST clearly
reflect processing of the pending action. The server MUST notify the
client when offline processing of the action has been completed.
Examples describing a <create> command that requires offline review
are included here. Note the result code and message returned in
response to the <create> command.
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="1001">
S: <msg>Command completed successfully; action pending</msg>
S: </result>
S: <resData>
S: <nv:creData
S: xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:pending>
S: <nv:code type="domain">abc-123</nv:code>
S: <nv:status s="pendingCompliant"/>
S: <nv:crDate>2015-09-03T22:00:00.0Z</nv:crDate>
S: </nv:pending>
S: </nv:creData>
S: </resData>
S: <trID>
S: <clTRID>ABC-12345</clTRID>
S: <svTRID>54321-XYZ</svTRID>
S: </trID>
S: </response>
S:</epp>
The status of the NV object after returning this response MUST
include "pendingCompliant". The server operator reviews the request
offline, and informs the client of the outcome of the review either
by queuing a service message for retrieval via the <poll> command or
by using an out-of-band mechanism to inform the client of the outcome
of the review.
Jiagui, et al. Expires April 29, 2017 [Page 24]
Internet-Draft EPP NV Mapping October 2016
The service message MUST contain text that describes the notification
in the child <msg> element of the response <msgQ> element. In
addition, the EPP <resData> element MUST contain a child <nv:panData>
element that identifies the NV namespace. The <nv:panData> element
contains the following child elements:
A <nv:code> element that contains the id of the verification code
with the required "type" attribute that defines the type of the
verification code.
A <nv:paStatus> element that contains the current status
descriptors associated with the NV.
A <nv:msg> element containing a human-readable description of the
result. The language of the response is identified via an
OPTIONAL "lang" attribute. If not specified, the default
attribute value MUST be "en" (English).
A <nv:paDate> element that contains the date and time describing
when review of the requested action was completed.
Jiagui, et al. Expires April 29, 2017 [Page 25]
Internet-Draft EPP NV Mapping October 2016
Example "review completed" service message:
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="1301">
S: <msg>Command completed successfully; ack to dequeue</msg>
S: </result>
S: <msgQ count="5" id="12345">
S: <qDate>2015-09-04T22:01:00.0Z</qDate>
S: <msg>Pending action completed successfully.</msg>
S: </msgQ>
S: <resData>
S: <nv:panData
S: xmlns:nv="urn:ietf:params:xml:ns:nv-1.0">
S: <nv:code type="domain">abc-123</nv:code>
S: <nv:paStatus s="compliant"/>
S: <nv:msg>The object has passed verification,
S: signed code was generated.</nv:msg>
S: <nv:paDate>2015-09-04T22:00:00.0Z</nv:paDate>
S: </nv:panData>
S: </resData>
S: <trID>
S: <clTRID>BCD-23456</clTRID>
S: <svTRID>65432-WXY</svTRID>
S: </trID>
S: </response>
S:</epp>
5. Formal Syntax
An EPP object NV mapping is specified in XML Schema notation. The
formal syntax presented here is a complete schema representation of
the object mapping suitable for automated validation of EPP XML
instances. The BEGIN and END tags are not part of the schema; they
are used to note the beginning and ending of the schema for URI
registration purposes.
BEGIN
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:nv-1.0"
xmlns:nv="urn:ietf:params:xml:ns:nv-1.0"
xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:verificationCode=
"urn:ietf:params:xml:ns:verificationCode-1.0"
xmlns="http://www.w3.org/2001/XMLSchema"
Jiagui, et al. Expires April 29, 2017 [Page 26]
Internet-Draft EPP NV Mapping October 2016
elementFormDefault="qualified">
<annotation>
<documentation>
Extensible Provisioning Protocol v1.0
Name Verification provisioning schema.
</documentation>
</annotation>
<!--
Import common element types.
-->
<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/>
<import namespace="urn:ietf:params:xml:ns:epp-1.0"/>
<import namespace=
"urn:ietf:params:xml:ns:verificationCode-1.0"/>
<!--
Child elements found in EPP commands.
-->
<element name="check" type="nv:mNameType"/>
<element name="create" type="nv:createType"/>
<element name="info" type="nv:infoType"/>
<element name="update" type="nv:updateType"/>
<!--
Child element of <check> command.
-->
<complexType name="mNameType">
<sequence>
<element name="name" type="eppcom:labelType"
maxOccurs="unbounded"/>
</sequence>
</complexType>
<!--
Child elements of the <create> command.
-->
<complexType name="createType">
<sequence>
<choice>
<element name="dnv" type="nv:dnvType"/>
<element name="rnv" type="nv:rnvType"/>
</choice>
<element name="authInfo" type="nv:authInfoChgType"/>
</sequence>
</complexType>
Jiagui, et al. Expires April 29, 2017 [Page 27]
Internet-Draft EPP NV Mapping October 2016
<complexType name="dnvType">
<sequence>
<element name="name" type="eppcom:labelType"/>
<element name="rnvCode" type="token"
minOccurs="0"/>
</sequence>
</complexType>
<complexType name="rnvType">
<sequence>
<element name="name" type="nv:nameType"/>
<element name="num" type="nv:nameType"/>
<element name="proofType" type="nv:proofEumType"/>
<element name="document" type="nv:documentType"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="role" type="nv:roleType"
default="person"/>
</complexType>
<simpleType name="proofEumType">
<restriction base="token">
<enumeration value="poc"/>
<enumeration value="poe"/>
<enumeration value="poot"/>
</restriction>
</simpleType>
<simpleType name="roleType">
<restriction base="token">
<enumeration value="person"/>
<enumeration value="org"/>
</restriction>
</simpleType>
<simpleType name="nameType">
<restriction base="token">
<minLength value="1"/>
<maxLength value="255"/>
</restriction>
</simpleType>
<complexType name="documentType">
<sequence>
<element name="fileType" type="nv:fileType"/>
<element name="fileContent" type="base64Binary"/>
</sequence>
</complexType>
Jiagui, et al. Expires April 29, 2017 [Page 28]
Internet-Draft EPP NV Mapping October 2016
<simpleType name="fileType">
<restriction base="token">
<enumeration value="pdf"/>
<enumeration value="jpg"/>
</restriction>
</simpleType>
<!--
Child elements of the <info> command.
-->
<complexType name="infoType">
<sequence>
<element name="code" type="token"/>
<element name="authInfo" type="nv:authInfoChgType"
minOccurs="0"/>
</sequence>
<attribute name="type" type="nv:infoFormType"
default="signedCode"/>
</complexType>
<simpleType name="infoFormType">
<restriction base="token">
<enumeration value="input"/>
<enumeration value="signedCode"/>
</restriction>
</simpleType>
<!--
Child elements of the <update> command.
-->
<complexType name="updateType">
<sequence>
<element name="code" type="token"/>
<element name="chg" type="nv:chgType"/>
</sequence>
</complexType>
<!--
Data elements that can be changed.
-->
<complexType name="chgType">
<sequence>
<element name="authInfo" type="nv:authInfoChgType"/>
</sequence>
</complexType>
Jiagui, et al. Expires April 29, 2017 [Page 29]
Internet-Draft EPP NV Mapping October 2016
<!--
Data elements of authInfoChgType.
-->
<complexType name="authInfoChgType">
<choice>
<element name="pw" type="eppcom:pwAuthInfoType"/>
<element name="ext" type="eppcom:extAuthInfoType"/>
</choice>
</complexType>
<!--
Child response elements.
-->
<element name="chkData" type="nv:chkDataType"/>
<element name="creData" type="nv:creDataType"/>
<element name="panData" type="nv:panDataType"/>
<element name="infData" type="nv:infDataType"/>
<!--
<check> response elements.
-->
<complexType name="chkDataType">
<sequence>
<element name="cd" type="nv:checkType"
maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="checkType">
<sequence>
<element name="name" type="nv:checkNameType"/>
<element name="reason" type="eppcom:reasonType"
minOccurs="0"/>
</sequence>
</complexType>
<complexType name="checkNameType">
<simpleContent>
<extension base="eppcom:labelType">
<attribute name="avail" type="boolean"
use="required"/>
<attribute name="restricted" type="boolean"
default="0"/>
</extension>
</simpleContent>
</complexType>
<!--
Jiagui, et al. Expires April 29, 2017 [Page 30]
Internet-Draft EPP NV Mapping October 2016
<create> response elements.
-->
<complexType name="creDataType">
<choice>
<element name="success" type="nv:successType"/>
<element name="failed" type="nv:failedType"/>
<element name="pending" type="nv:pendingType"/>
</choice>
</complexType>
<complexType name="successType">
<sequence>
<element name="code" type="nv:verificationCodeType"/>
<element name="status" type="nv:statusType"/>
<element name="crDate" type="dateTime"/>
<element name="encodedSignedCode"
type="verificationCode:encodedSignedCodeType"/>
</sequence>
</complexType>
<complexType name="failedType">
<sequence>
<element name="status" type="nv:statusType"/>
<element name="msg" type="nv:msgType"/>
</sequence>
</complexType>
<complexType name="pendingType">
<sequence>
<element name="code" type="nv:verificationCodeType"/>
<element name="status" type="nv:statusType"/>
<element name="crDate" type="dateTime"/>
</sequence>
</complexType>
<!--
Pending action notification response elements.
-->
<complexType name="panDataType">
<sequence>
<element name="code" type="nv:verificationCodeType"/>
<element name="paStatus" type="nv:statusType"/>
<element name="msg" type="nv:msgType"/>
<element name="paDate" type="dateTime"/>
</sequence>
</complexType>
<!--
Jiagui, et al. Expires April 29, 2017 [Page 31]
Internet-Draft EPP NV Mapping October 2016
<info> response elements.
-->
<complexType name="infDataType">
<sequence>
<choice>
<element name="signedCode" type="nv:signedCodeType"/>
<element name="input" type="nv:createType"/>
</choice>
</sequence>
</complexType>
<complexType name="signedCodeType">
<sequence>
<element name="code" type="nv:verificationCodeType"/>
<element name="status" type="nv:statusType"
minOccurs="0"/>
<element name="authInfo" type="nv:authInfoChgType"/>
<element name="encodedSignedCode"
type="verificationCode:encodedSignedCodeType"/>
</sequence>
</complexType>
<complexType name="verificationCodeType">
<simpleContent>
<extension base="token">
<attribute name="type" type="token"
use="required"/>
</extension>
</simpleContent>
</complexType>
<!--
Status is a combination of attributes and an optional
human-readable message that may be expressed in languages other
than English.
-->
<complexType name="statusType">
<simpleContent>
<extension base="normalizedString">
<attribute name="s" type="nv:statusValueType"
use="required"/>
<attribute name="lang" type="language"
default="en"/>
</extension>
</simpleContent>
</complexType>
<complexType name="msgType">
Jiagui, et al. Expires April 29, 2017 [Page 32]
Internet-Draft EPP NV Mapping October 2016
<simpleContent>
<extension base="normalizedString">
<attribute name="lang" type="language"
default="en"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="statusValueType">
<restriction base="token">
<enumeration value="compliant"/>
<enumeration value="nonCompliant"/>
<enumeration value="pendingCompliant"/>
</restriction>
</simpleType>
<!--
End of schema.
-->
</schema>
END
6. Internationalization Considerations
EPP is represented in XML, which provides native support for encoding
information using the Unicode character set and its more compact
representations including UTF-8. Conformant XML processors recognize
both UTF-8 and UTF-16. Though XML includes provisions to identify
and use other character encodings through use of an "encoding"
attribute in an <?xml?> declaration, use of UTF-8 is RECOMMENDED.
As an extension of the EPP, the elements, element content described
in this document MUST inherit the internationalization conventions
used to represent higher-layer domain and core protocol structures
present in an XML instance that includes this extension.
7. IANA Considerations
7.1. XML Namespace
This document uses URNs to describe XML namespaces and XML schemas
conforming to a registry mechanism described in [RFC3688]. IANA is
requested to assignment the following two URI.
Registration request for the NV namespace:
o URI: urn:ietf:params:xml:ns:nv-1.0
Jiagui, et al. Expires April 29, 2017 [Page 33]
Internet-Draft EPP NV Mapping October 2016
o Registrant Contact: See the "Author's Address" section of this
document.
o XML: None. Namespace URI does not represent an XML specification.
Registration request for the NV XML schema:
o URI: urn:ietf:params:xml:schema:nv-1.0
o Registrant Contact: See the "Author's Address" section of this
document.
o XML: See the "Formal Syntax" section of this document.
7.2. EPP Extension Registry
The EPP extension described in this document should be registered by
the IANA in the EPP Extension Registry described in [RFC7451]. The
details of the registration are as follows:
Name of Extension: Extensible Provisioning Protocol (EPP) China Name
Verification Mapping
Document status: Informational
Reference: (insert reference to RFC version of this document)
Registrant Name and Email Address: IESG, <iesg@ietf.org>
TLDs: Any
IPR Disclosure: None
Status: Active
Notes: None
8. Security considerations
Verification Code Tokens are digitally signed using XML Signature
technology. The security considerations described in Section 12 of
the W3C XML Signature Syntax and Processing Candidate Recommendation
[W3C.CR-xmldsig-core2-20120124] apply to this specification as well.
The object mapping described in this document does not provide any
other security services or introduce any additional considerations
beyond those described by [RFC5730] or those caused by the protocol
layers used by EPP.
Jiagui, et al. Expires April 29, 2017 [Page 34]
Internet-Draft EPP NV Mapping October 2016
9. Acknowledgements
The authors especially thank the author of [RFC5730].
Useful comments and contributions were made by TBD.
10. Change History
RFC Editor: Please remove this section.
10.1. draft-xie-eppext-nv-mapping-00: Version 00
o First draft.
10.2. Change from 00 to 01
1. Made the <nv:code> element of the panDataType and pendingType
require the "type" attribute in the XML schema.
2. Fixed the XML schema to include the <nv:rnvCode> OPTIONAL
element.
3. Added the support for the OPTIONAL "lang" attribute for the
<nv:msg> element of the <nv:failed> and <nv:panData> elements.
10.3. Change from 01 to 02
1. Ping update.
10.4. Change from EPPEXT 02 to REGEXT 00
1. Changed to regext working group draft by changing draft-xie-
eppext-nv-mapping-02 to draft-ietf-regext-nv-mapping-00.
11. Normative References
[I-D.gould-eppext-verificationcode]
Gould, J., "Verification Code Extension for the Extensible
Provisioning Protocol (EPP)", draft-gould-eppext-
verificationcode-04 (work in progress), September 2016.
[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>.
Jiagui, et al. Expires April 29, 2017 [Page 35]
Internet-Draft EPP NV Mapping October 2016
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>.
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009,
<http://www.rfc-editor.org/info/rfc5730>.
[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>.
[W3C.CR-xmldsig-core2-20120124]
Bartel, M., Boyer, J., Fox, B., LaMacchia, B., and E.
Simon, ""XML Signature Syntax and Processing Version 2.0",
W3C Candidate Recommendation 24 January 2012", January
2012,
<http://www.w3.org/TR/2012/CR-xmldsig-core2-20120124/>.
[W3C.REC-xml-20040204]
Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
F. Yergeau, ""Extensible Markup Language (XML) 1.0 (Third
Edition)", World Wide Web Consortium FirstEdition REC-xml-
20040204", February 2004,
<http://www.w3.org/TR/2004/REC-xml-20040204>.
[W3C.REC-xmlschema-1-20041028]
Thompson, H., Beech, D., Maloney, M., and N. Mendelsohn,
""XML Schema Part 1: Structures Second Edition", World
Wide Web Consortium Recommendation REC-xmlschema-
1-20041028", October 2004,
<http://www.w3.org/TR/2004/REC-xmlschema-1-20041028>.
[W3C.REC-xmlschema-2-20041028]
Biron, P. and A. Malhotra, ""XML Schema Part 2: Datatypes
Second Edition", World Wide Web Consortium Recommendation
REC-xmlschema-2-20041028", October 2004,
<http://www.w3.org/TR/2004/REC-xmlschema-2-20041028>.
Authors' Addresses
Jiagui, et al. Expires April 29, 2017 [Page 36]
Internet-Draft EPP NV Mapping October 2016
Xie Jiagui
Teleinfo
1#-21,gaolizhang Street,Haidian District
Beijing, Beijing 100095
China
Phone: +86 10 5884 6931
Email: xiejiagui@teleinfo.cn
James Gould
VeriSign, Inc.
12061 Bluemont Way
Reston, VA 20190
US
Email: jgould@verisign.com
URI: http://www.verisign.com
Liu Hongyan
Teleinfo
1#-21,gaolizhang Street,Haidian District
Beijing, Beijing 100095
China
Phone: +86 10 5884 6931
Email: liuhongyan@teleinfo.cn
Jiagui, et al. Expires April 29, 2017 [Page 37]