| rfc9873.original | rfc9873.txt | |||
|---|---|---|---|---|
| Network Working Group D. Belyavskiy | Internet Engineering Task Force (IETF) D. Belyavskiy | |||
| Internet-Draft | Request for Comments: 9873 | |||
| Intended status: Standards Track J. Gould | Category: Standards Track J. Gould | |||
| Expires: 20 November 2025 VeriSign, Inc. | ISSN: 2070-1721 VeriSign, Inc. | |||
| S. Hollenbeck | S. Hollenbeck | |||
| Verisign Labs | Verisign Labs | |||
| 19 May 2025 | October 2025 | |||
| Additional Email Address Extension for the Extensible Provisioning | Additional Email Address Extension for the Extensible Provisioning | |||
| Protocol (EPP) | Protocol (EPP) | |||
| draft-ietf-regext-epp-eai-27 | ||||
| Abstract | Abstract | |||
| The Extensible Provisioning Protocol (EPP) does not natively support | The Extensible Provisioning Protocol (EPP) does not inherently | |||
| internationalized email addresses because the specifications for | support internationalized email addresses because the specifications | |||
| these addresses did not exist when EPP was developed. This document | for these addresses did not exist when EPP was developed. This | |||
| describes a command-response extension that adds support for | document describes a command-response extension that adds support for | |||
| associating an additional email address with an EPP contact object. | associating an additional email address with an EPP contact object. | |||
| That additional email address can be either an internationalized | That additional email address can be either an internationalized | |||
| email address or an all-ASCII address. | email address or an ASCII-only address. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 20 November 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9873. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | ||||
| Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
| and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
| extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
| described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
| provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. Conventions Used in This Document . . . . . . . . . . . . 4 | 1.1. Conventions Used in This Document | |||
| 2. Email Address Specification . . . . . . . . . . . . . . . . . 4 | 2. Email Address Specification | |||
| 3. Additional Email Address Element . . . . . . . . . . . . . . 5 | 3. Additional Email Address Element | |||
| 4. Extension Considerations . . . . . . . . . . . . . . . . . . 5 | 4. Extension Considerations | |||
| 4.1. Signaling Client and Server Support . . . . . . . . . . . 5 | 4.1. Signaling Client and Server Support | |||
| 4.2. Extension Behavior . . . . . . . . . . . . . . . . . . . 5 | 4.2. Extension Behavior | |||
| 4.2.1. Extension Negotiated . . . . . . . . . . . . . . . . 6 | 4.2.1. Extension Negotiated | |||
| 4.2.2. Extension Not Negotiated . . . . . . . . . . . . . . 6 | 4.2.2. Extension Not Negotiated | |||
| 5. EPP Command Mapping . . . . . . . . . . . . . . . . . . . . . 7 | 5. EPP Command Mapping | |||
| 5.1. EPP Query Commands . . . . . . . . . . . . . . . . . . . 7 | 5.1. EPP Query Commands | |||
| 5.1.1. EPP <check> Command . . . . . . . . . . . . . . . . . 7 | 5.1.1. EPP <check> Command | |||
| 5.1.2. EPP <info> Command . . . . . . . . . . . . . . . . . 7 | 5.1.2. EPP <info> Command | |||
| 5.1.3. EPP <transfer> Query Command . . . . . . . . . . . . 11 | 5.1.3. EPP <transfer> Query Command | |||
| 5.2. EPP Transform Commands . . . . . . . . . . . . . . . . . 11 | 5.2. EPP Transform Commands | |||
| 5.2.1. EPP <create> Command . . . . . . . . . . . . . . . . 11 | 5.2.1. EPP <create> Command | |||
| 5.2.2. EPP <delete> Command . . . . . . . . . . . . . . . . 15 | 5.2.2. EPP <delete> Command | |||
| 5.2.3. EPP <renew> Command . . . . . . . . . . . . . . . . . 15 | 5.2.3. EPP <renew> Command | |||
| 5.2.4. EPP <transfer> Command . . . . . . . . . . . . . . . 15 | 5.2.4. EPP <transfer> Command | |||
| 5.2.5. EPP <update> Command . . . . . . . . . . . . . . . . 15 | 5.2.5. EPP <update> Command | |||
| 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6. Formal Syntax | |||
| 6.1. EPP Additional Email Address Extension Schema . . . . . . 17 | 6.1. EPP Additional Email Address Extension Schema | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 7. IANA Considerations | |||
| 7.1. XML Namespace . . . . . . . . . . . . . . . . . . . . . . 18 | 7.1. XML Namespace | |||
| 7.2. EPP Extension Registry . . . . . . . . . . . . . . . . . 19 | 7.2. EPP Extension Registry | |||
| 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 19 | 8. Security Considerations | |||
| 8.1. Verisign EPP SDK . . . . . . . . . . . . . . . . . . . . 20 | 9. Privacy Considerations | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 10. References | |||
| 10. Privacy Considerations . . . . . . . . . . . . . . . . . . . 21 | 10.1. Normative References | |||
| 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 21 | 10.2. Informative References | |||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 | Acknowledgments | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 23 | ||||
| Appendix A. Change History . . . . . . . . . . . . . . . . . . . 24 | ||||
| A.1. Change from 00 to 01 . . . . . . . . . . . . . . . . . . 24 | ||||
| A.2. Change from 01 to 02 . . . . . . . . . . . . . . . . . . 24 | ||||
| A.3. Change from 02 to 03 . . . . . . . . . . . . . . . . . . 24 | ||||
| A.4. Change from 03 to 04 . . . . . . . . . . . . . . . . . . 25 | ||||
| A.5. Change from 04 to the regext 01 version . . . . . . . . . 25 | ||||
| A.6. Change from the regext 01 to regext 02 version . . . . . 25 | ||||
| A.7. Change from the regext 02 to regext 03 version . . . . . 25 | ||||
| A.8. Change from the regext 03 to regext 04 version . . . . . 25 | ||||
| A.9. Change from the regext 04 to regext 05 version . . . . . 25 | ||||
| A.10. Change from the regext 05 to regext 06 version . . . . . 25 | ||||
| A.11. Change from the regext 06 to regext 07 version . . . . . 25 | ||||
| A.12. Change from the regext 07 to regext 08 version . . . . . 25 | ||||
| A.13. Change from the regext 08 to regext 09 version . . . . . 26 | ||||
| A.14. Change from the regext 09 to regext 10 version . . . . . 26 | ||||
| A.15. Change from the regext 10 to regext 11 version . . . . . 26 | ||||
| A.16. Change from the regext 11 to regext 12 version . . . . . 26 | ||||
| A.17. Change from the regext 12 to regext 13 version . . . . . 26 | ||||
| A.18. Change from the regext 13 to regext 14 version . . . . . 26 | ||||
| A.19. Change from the regext 14 to regext 15 version . . . . . 26 | ||||
| A.20. Change from the regext 15 to regext 16 version . . . . . 26 | ||||
| A.21. Change from the regext 16 to regext 17 version . . . . . 26 | ||||
| A.22. Change from the regext 17 to regext 18 version . . . . . 26 | ||||
| A.23. Change from the regext 18 to regext 19 version . . . . . 27 | ||||
| A.24. Change from the regext 19 to regext 20 version . . . . . 27 | ||||
| A.25. Change from the regext 20 to regext 21 version . . . . . 27 | ||||
| A.26. Change from the regext 21 to regext 22 version . . . . . 27 | ||||
| A.27. Change from the regext 22 to regext 23 version . . . . . 27 | ||||
| A.28. Change from the regext 23 to regext 24 version . . . . . 27 | ||||
| A.29. Change from the regext 24 to regext 25 version . . . . . 28 | ||||
| A.30. Change from the regext 25 to regext 26 version . . . . . 28 | ||||
| A.31. Change from the regext 26 to regext 27 version . . . . . 28 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 28 | ||||
| 1. Introduction | 1. Introduction | |||
| The framework for internationalized email addresses is described in | The framework for internationalized email addresses is described in | |||
| [RFC6530]. This document describes an Extensible Provisioning | [RFC6530]. This document describes an Extensible Provisioning | |||
| Protocol (EPP) [RFC5730] command-response extension that adds support | Protocol (EPP) [RFC5730] command-response extension that adds support | |||
| for adding a second email address to the EPP contact object [RFC5733] | for adding a second email address to the EPP contact object mapping | |||
| mapping. The syntax for the email address associated with the base | [RFC5733]. The syntax for the email address associated with the base | |||
| contact object is described in Section 2.6 of [RFC5733]. The second | contact object is described in Section 2.6 of [RFC5733]. The second | |||
| email address can be either an ASCII-only email address or an | email address can be either an ASCII-only email address or an | |||
| internationalized, SMTPUTF8 [RFC6530] email address. This second | internationalized SMTPUTF8 email address [RFC6530]. This second | |||
| address can be used to identify an alternate ASCII-only email address | address can be used to identify an alternate ASCII-only email address | |||
| for use in case of primary address delivery issues. It can also be | for use in case of primary address delivery issues. It can also be | |||
| used to identify an SMTPUTF8 address for contact purposes, in which | used to identify an SMTPUTF8 address for contact purposes, in which | |||
| case the ASCII-only address can be used in case of SMTPUTF8 address | case the ASCII-only address can be used in case of SMTPUTF8 address | |||
| delivery issues. | delivery issues. | |||
| While this extension adds support for an additional email address to | While this extension adds support for an additional email address to | |||
| contact objects, and that additional email address can be an SMTPUTF8 | contact objects, and that additional email address can be an SMTPUTF8 | |||
| address, it does not in any way update or change any other EPP | address, it does not in any way update or change any other EPP | |||
| extension that includes an email address. Adding support for | extension that includes an email address. Adding support for | |||
| SMTPUTF8 addresses to those extensions will require an update to the | SMTPUTF8 addresses to those extensions will require an update to the | |||
| relevant extension specifications. In cases where a contact object | relevant extension specifications. In cases where a contact object | |||
| contains two email addresses, all users of these addresses should be | contains two email addresses, all users of these addresses should be | |||
| aware that either address may be forwarded to the other. This | aware that either address may be forwarded to the other. This | |||
| implies that a message sent to an all-ASCII address may receive a | implies that a message sent to an ASCII-only address may receive a | |||
| reply from an SMTPUTF8 address, or vice versa. | reply from an SMTPUTF8 address or vice versa. | |||
| 1.1. Conventions Used in This Document | 1.1. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| XML is case sensitive. Unless stated otherwise, XML specifications | XML is case sensitive. Unless stated otherwise, XML specifications | |||
| and examples provided in this document MUST be interpreted in the | and examples provided in this document MUST be interpreted in the | |||
| character case presented in order to develop a conforming | character case presented in order to develop a conforming | |||
| implementation. | implementation. | |||
| In examples, "C:" represents lines sent by a protocol client and "S:" | In examples, "C:" represents lines sent by a protocol client, and | |||
| represents lines returned by a protocol server. Indentation and | "S:" represents lines returned by a protocol server. Indentation and | |||
| white space in the examples are provided only to illustrate element | white space in the examples are provided only to illustrate element | |||
| relationships and are not REQUIRED in the protocol. | relationships and are not REQUIRED in the protocol. | |||
| The XML namespace prefix "addlEmail" is used for the namespace | The XML namespace prefix "addlEmail" is used for the namespace | |||
| "urn:ietf:params:xml:ns:epp:addlEmail-1.0", but implementations MUST | "urn:ietf:params:xml:ns:epp:addlEmail-1.0", but implementations MUST | |||
| NOT depend on it and instead employ a proper namespace-aware XML | NOT depend on it and instead MUST employ a proper namespace-aware XML | |||
| parser and serializer to interpret and output the XML documents. | parser and serializer to interpret and output the XML documents. | |||
| 2. Email Address Specification | 2. Email Address Specification | |||
| The EPP contact object mapping [RFC5733] normatively references | The EPP contact object mapping [RFC5733] normatively references | |||
| [RFC5322] as the specification for email address syntax. That | [RFC5322] as the specification for email address syntax. That | |||
| specification does not include support for internationalized email | specification does not include support for internationalized email | |||
| addresses. RFC 6530 [RFC6530] provides an overview and describes the | addresses. [RFC6530] provides an overview and describes the | |||
| framework for internationalized email. SMTPUTF8 email address syntax | framework for internationalized email. SMTPUTF8 email address syntax | |||
| is described in Section 3.3 of [RFC6531]. [RFC6531] extends the | is described in Section 3.3 of [RFC6531]. [RFC6531] extends the | |||
| Mailbox, Local-part and Domain ABNF rules in [RFC5321] to support | Mailbox, Local-part, and Domain ABNF rules in [RFC5321] to support | |||
| "UTF8-non-ascii", defined in Section 3.1 of [RFC6532], for the local- | "UTF8-non-ascii" (defined in Section 3.1 of [RFC6532]) for the local- | |||
| part and U-label, defined in Section 2.3.2.1 of [RFC5890], for the | part and to support U-label (defined in Section 2.3.2.1 of [RFC5890]) | |||
| domain. The validation rules described in RFC 6531 MUST be followed | for the domain. The validation rules described in [RFC6531] MUST be | |||
| when processing internationalized email addresses associated with | followed when processing internationalized email addresses associated | |||
| this extension. | with this extension. | |||
| 3. Additional Email Address Element | 3. Additional Email Address Element | |||
| A second email address can be set using the <addlEmail:addlEmail> | A second email address can be set using the <addlEmail:addlEmail> | |||
| element with the command and response extensions defined in | element with the command-response extensions defined in Section 5. | |||
| Section 5. The <addlEmail:addlEmail> element contains the following | The <addlEmail:addlEmail> element contains the following child | |||
| child element: | element: | |||
| <addlEmail:email>: An element following the syntax in Section 2 for | <addlEmail:email>: An element following the syntax in Section 2 for | |||
| defining a second ASCII or SMTPUTF8 address. An empty | defining a second ASCII or SMTPUTF8 address. An empty | |||
| <addlEmail:email/> element unsets the second email address in the | <addlEmail:email/> element unsets the second email address in the | |||
| Update Command (Section 5.2.5) and indicates the second email is | Update Command (Section 5.2.5) and indicates the second email is | |||
| not set in the Info Response (Section 5.1.2). The | not set in the Info Response (Section 5.1.2). The | |||
| <addlEmail:email> element contains an OPTIONAL "primary" | <addlEmail:email> element contains an OPTIONAL "primary" | |||
| attribute that can be used to indicate that the extension email | attribute that can be used to indicate that the extension email | |||
| address should be treated as the primary email address for the | address should be treated as the primary email address for the | |||
| extended contact object. The "primary" attribute MUST NOT be | extended contact object. The "primary" attribute MUST NOT be | |||
| present if the <addlEmail:email> is empty. | present if the <addlEmail:email> is empty. | |||
| Additional email address considerations: | Additional email address considerations: | |||
| * The value set for the <contact:disclose><contact:email/> "flag" | * The value set for the <contact:disclose><contact:email/> "flag" | |||
| attribute (described in Section 2.9 of RFC 5733 [RFC5733]) MUST | attribute (described in Section 2.9 of [RFC5733]) MUST also be | |||
| also be applied to all additional email addresses that are added | applied to all additional email addresses that are added by a | |||
| by a contact extension. | contact extension. | |||
| * Any address included in an extension is intended to be an | * Any address included in an extension is intended to be an | |||
| additional address that's associated only with the primary | additional address that is associated only with the primary | |||
| <contact:email> address, and that support for any other additional | <contact:email> address, and support for any other additional | |||
| email addresses MUST explicitly describe how the additional | email addresses MUST explicitly describe how the additional | |||
| addresses are associated with the existing addresses. | addresses are associated with the existing addresses. | |||
| 4. Extension Considerations | 4. Extension Considerations | |||
| 4.1. Signaling Client and Server Support | 4.1. Signaling Client and Server Support | |||
| As described in Section 2.4 of [RFC5730], the client and the server | As described in Section 2.4 of [RFC5730], the client and the server | |||
| can signal support for the extension using a namespace URI in the | can signal support for the extension using a namespace URI in the | |||
| login and greeting extension services respectively. The namespace | login and greeting extension services, respectively. The namespace | |||
| URI "urn:ietf:params:xml:ns:epp:addlEmail-1.0" is used to signal | URI "urn:ietf:params:xml:ns:epp:addlEmail-1.0" is used to signal | |||
| support for the extension. The client includes the namespace URI in | support for the extension. The client includes the namespace URI in | |||
| an <svcExtension> <extURI> element of the [RFC5730] <login> Command. | an <svcExtension> <extURI> element of the <login> command [RFC5730]. | |||
| The server includes the namespace URI in an <svcExtension> <extURI> | The server includes the namespace URI in an <svcExtension> <extURI> | |||
| element of the [RFC5730] greeting. | element of the greeting [RFC5730]. | |||
| 4.2. Extension Behavior | 4.2. Extension Behavior | |||
| 4.2.1. Extension Negotiated | 4.2.1. Extension Negotiated | |||
| If both client and server have indicated support for SMTPUTF8 | If both client and server have indicated support for SMTPUTF8 | |||
| addresses during session establishment, they MUST be able to process | addresses during session establishment, they MUST be able to process | |||
| an SMTPUTF8 address in any extended contact object during the | an SMTPUTF8 address in any extended contact object during the | |||
| established EPP session. Server and client obligations when this | established EPP session. Server and client obligations when this | |||
| extension has been successfully negotiated in the EPP session are | extension has been successfully negotiated in the EPP session are | |||
| described below. | described below. | |||
| The server MUST satisfy the following obligations when support for | The server MUST satisfy the following obligations when support for | |||
| this extension has been negotiated: | this extension has been negotiated: | |||
| * Accept SMTPUTF8 compliant addresses for the extended contact | * Accept SMTPUTF8-compliant addresses for the extended contact | |||
| object in the EPP session. | object in the EPP session. | |||
| * Support email address validation based on SMTPUTF8 validation | * Support email address validation based on the SMTPUTF8 validation | |||
| rules defined in Section 2 | rules defined in Section 2. | |||
| * Storage of email properties that support internationalized | * Store email properties that support internationalized characters. | |||
| characters. | ||||
| * Return SMTPUTF8 compliant addresses for the extended contact | * Return SMTPUTF8-compliant addresses for the extended contact | |||
| object in EPP responses. | object in EPP responses. | |||
| * Support the SMTP extension for internationalized email described | * Support the SMTP extension for internationalized email described | |||
| in [RFC6531] when sending or receiving email. | in [RFC6531] when sending or receiving email. | |||
| The client MUST satisfy the following obligations when support for | The client MUST satisfy the following obligations when support for | |||
| this extension has been negotiated: | this extension has been negotiated: | |||
| * Provide SMTPUTF8 compliant addresses for the extended contact | * Provide SMTPUTF8-compliant addresses for the extended contact | |||
| object in the EPP session. | object in the EPP session. | |||
| * Accept SMTPUTF8 compliant addresses for the extended contact | * Accept SMTPUTF8-compliant addresses for the extended contact | |||
| object in EPP responses. | object in EPP responses. | |||
| * Support the SMTP extension for internationalized email described | * Support the SMTP extension for internationalized email described | |||
| in [RFC6531] when sending or receiving email. | in [RFC6531] when sending or receiving email. | |||
| 4.2.2. Extension Not Negotiated | 4.2.2. Extension Not Negotiated | |||
| An extended contact object MUST NOT be provided or returned by either | An extended contact object MUST NOT be provided or returned by either | |||
| an EPP client or an EPP server when support for this extension is not | an EPP client or an EPP server when support for this extension is not | |||
| successfully negotiated at the start of an EPP session. | successfully negotiated at the start of an EPP session. | |||
| skipping to change at page 7, line 28 ¶ | skipping to change at line 265 ¶ | |||
| 5.1.1. EPP <check> Command | 5.1.1. EPP <check> Command | |||
| This extension does not add any elements to the EPP <check> command | This extension does not add any elements to the EPP <check> command | |||
| or <check> response described in [RFC5730]. | or <check> response described in [RFC5730]. | |||
| 5.1.2. EPP <info> Command | 5.1.2. EPP <info> Command | |||
| This extension does not add any elements to the EPP <info> command | This extension does not add any elements to the EPP <info> command | |||
| response described in [RFC5730]. | response described in [RFC5730]. | |||
| If the query was successful, the server replies with an | If the query is successful, the server replies with an | |||
| <addlEmail:addlEmail> element (Section 3) along with the regular EPP | <addlEmail:addlEmail> element (Section 3) along with the regular EPP | |||
| <resData>. | <resData>. | |||
| The following is an example <info> contact response using the | ||||
| <addlEmail:addlEmail> extension with no alternate email address: | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <contact:infData | S: <contact:infData | |||
| S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| S: <contact:id>sh8013</contact:id> | S: <contact:id>sh8013</contact:id> | |||
| skipping to change at page 8, line 42 ¶ | skipping to change at line 325 ¶ | |||
| S: <addlEmail:email/> | S: <addlEmail:email/> | |||
| S: </addlEmail:addlEmail> | S: </addlEmail:addlEmail> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp> | S:</epp> | |||
| Figure 1: Example <info> contact response using the | Figure 1: Example <info> Contact Response Using the | |||
| <addlEmail:addlEmail> extension with no alternate email address | <addlEmail:addlEmail> Extension with No Alternate Email Address | |||
| The following is an example <info> contact response using the | ||||
| <addlEmail:addlEmail> extension with an ASCII alternate email | ||||
| address: | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <contact:infData | S: <contact:infData | |||
| S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| skipping to change at page 10, line 12 ¶ | skipping to change at line 384 ¶ | |||
| S: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | S: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | |||
| S: </addlEmail:addlEmail> | S: </addlEmail:addlEmail> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp> | S:</epp> | |||
| Figure 2: Example <info> contact response using the | Figure 2: Example <info> Contact Response Using the | |||
| <addlEmail:addlEmail> extension with an ASCII alternate email | <addlEmail:addlEmail> Extension with an Alternate ASCII Email | |||
| address | Address | |||
| The following is an example <info> contact response using the | ||||
| <addlEmail:addlEmail> extension with an SMTPUTF8 primary email | ||||
| address: | ||||
| S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| S: <response> | S: <response> | |||
| S: <result code="1000"> | S: <result code="1000"> | |||
| S: <msg>Command completed successfully</msg> | S: <msg>Command completed successfully</msg> | |||
| S: </result> | S: </result> | |||
| S: <resData> | S: <resData> | |||
| S: <contact:infData | S: <contact:infData | |||
| S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | S: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| skipping to change at page 11, line 29 ¶ | skipping to change at line 445 ¶ | |||
| primary="true">麥克風@example.com</addlEmail:email> | primary="true">麥克風@example.com</addlEmail:email> | |||
| S: </addlEmail:addlEmail> | S: </addlEmail:addlEmail> | |||
| S: </extension> | S: </extension> | |||
| S: <trID> | S: <trID> | |||
| S: <clTRID>ABC-12345</clTRID> | S: <clTRID>ABC-12345</clTRID> | |||
| S: <svTRID>54322-XYZ</svTRID> | S: <svTRID>54322-XYZ</svTRID> | |||
| S: </trID> | S: </trID> | |||
| S: </response> | S: </response> | |||
| S:</epp> | S:</epp> | |||
| Figure 3: Example <info> contact response using the | Figure 3: Example <info> Contact Response Using the | |||
| <addlEmail:addlEmail> extension with an SMTPUTF8 primary email | <addlEmail:addlEmail> Extension with an SMTPUTF8 Primary Email | |||
| address | Address | |||
| 5.1.3. EPP <transfer> Query Command | 5.1.3. EPP <transfer> Query Command | |||
| This extension does not add any elements to the EPP <transfer> query | This extension does not add any elements to the EPP <transfer> query | |||
| command or <transfer> query response described in [RFC5730]. | command or <transfer> query response described in [RFC5730]. | |||
| 5.2. EPP Transform Commands | 5.2. EPP Transform Commands | |||
| EPP provides five commands to transform objects: <create> to create | EPP provides five commands to transform objects: <create> to create | |||
| an instance of an object, <delete> to delete an instance of an | an instance of an object, <delete> to delete an instance of an | |||
| object, <renew> to extend the validity period of an object, | object, <renew> to extend the validity period of an object, | |||
| <transfer> to manage object sponsorship changes, and <update> to | <transfer> to manage object sponsorship changes, and <update> to | |||
| change information associated with an object. | change information associated with an object. | |||
| 5.2.1. EPP <create> Command | 5.2.1. EPP <create> Command | |||
| This extension defines additional elements to extend the EPP <create> | This extension defines additional elements to extend the EPP <create> | |||
| command of an object mapping like [RFC5733]. | command described in [RFC5733]. | |||
| The EPP <create> command provides a transform operation that allows a | The EPP <create> command provides a transform operation that allows a | |||
| client to create an instance of an object. In addition to the EPP | client to create an instance of an object. In addition to the EPP | |||
| command elements described in an object mapping like [RFC5733], the | command elements described in [RFC5733], the command MUST contain a | |||
| command MUST contain a child <addlEmail:addlEmail> element | child <addlEmail:addlEmail> element (Section 3) for the client to set | |||
| (Section 3) for the client to set an alternate email address. | an alternate email address. | |||
| The following is an example <create> command to create a contact | ||||
| object with an alternate ASCII email address: | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <create> | C: <create> | |||
| C: <contact:create | C: <contact:create | |||
| C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| C: <contact:id>sh8013</contact:id> | C: <contact:id>sh8013</contact:id> | |||
| C: <contact:postalInfo type="int"> | C: <contact:postalInfo type="int"> | |||
| C: <contact:name>John Doe</contact:name> | C: <contact:name>John Doe</contact:name> | |||
| skipping to change at page 13, line 46 ¶ | skipping to change at line 514 ¶ | |||
| C: <extension> | C: <extension> | |||
| C: <addlEmail:addlEmail | C: <addlEmail:addlEmail | |||
| C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | |||
| C: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | C: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | |||
| C: </addlEmail:addlEmail> | C: </addlEmail:addlEmail> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp> | C:</epp> | |||
| Figure 4: Example <create> command to create a contact object | Figure 4: Example <create> Command to Create a Contact Object | |||
| with an alternate ASCII email address | with an Alternate ASCII Email Address | |||
| The following is an example <create> command to create a contact | ||||
| object with a primary SMTPUTF8 email address: | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <create> | C: <create> | |||
| C: <contact:create | C: <contact:create | |||
| C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| C: <contact:id>sh8013</contact:id> | C: <contact:id>sh8013</contact:id> | |||
| C: <contact:postalInfo type="int"> | C: <contact:postalInfo type="int"> | |||
| C: <contact:name>John Doe</contact:name> | C: <contact:name>John Doe</contact:name> | |||
| skipping to change at page 14, line 47 ¶ | skipping to change at line 559 ¶ | |||
| C: <addlEmail:addlEmail | C: <addlEmail:addlEmail | |||
| C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | |||
| C: <addlEmail:email | C: <addlEmail:email | |||
| primary="true">麥克風@example.com</addlEmail:email> | primary="true">麥克風@example.com</addlEmail:email> | |||
| C: </addlEmail:addlEmail> | C: </addlEmail:addlEmail> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp> | C:</epp> | |||
| Figure 5: Example <create> command to create a contact object | Figure 5: Example <create> Command to Create a Contact Object | |||
| with a primary SMTPUTF8 email address | with a Primary SMTPUTF8 Email Address | |||
| This extension does not add any elements to the EPP <create> response | This extension does not add any elements to the EPP <create> response | |||
| described in [RFC5730]. | described in [RFC5730]. | |||
| 5.2.2. EPP <delete> Command | 5.2.2. EPP <delete> Command | |||
| This extension does not add any elements to the EPP <delete> command | This extension does not add any elements to the EPP <delete> command | |||
| or <delete> response described in [RFC5730]. | or <delete> response described in [RFC5730]. | |||
| 5.2.3. EPP <renew> Command | 5.2.3. EPP <renew> Command | |||
| skipping to change at page 15, line 23 ¶ | skipping to change at line 583 ¶ | |||
| or <renew> response described in [RFC5730]. | or <renew> response described in [RFC5730]. | |||
| 5.2.4. EPP <transfer> Command | 5.2.4. EPP <transfer> Command | |||
| This extension does not add any elements to the EPP <transfer> | This extension does not add any elements to the EPP <transfer> | |||
| command or <transfer> response described in [RFC5730]. | command or <transfer> response described in [RFC5730]. | |||
| 5.2.5. EPP <update> Command | 5.2.5. EPP <update> Command | |||
| This extension defines additional elements to extend the EPP <update> | This extension defines additional elements to extend the EPP <update> | |||
| command of an object mapping like [RFC5733]. | command described in [RFC5733]. | |||
| The EPP <update> command provides a transform operation that allows a | The EPP <update> command provides a transform operation that allows a | |||
| client to update an instance of an object. In addition to the EPP | client to update an instance of an object. In addition to the EPP | |||
| command elements described in an object mapping like [RFC5733], the | command elements described in [RFC5733], the command MUST contain a | |||
| command MUST contain a child <addlEmail:addlEmail> element | child <addlEmail:addlEmail> element (Section 3) for the client to set | |||
| (Section 3) for the client to set or unset an alternate email | or unset an alternate email address. If the alternate email address | |||
| address. If the alternate email address cannot be applied to the | cannot be applied to the object, the server MUST return an EPP error | |||
| object, the server MUST return an EPP error result code of 2201. | result code of 2201. | |||
| The following is an example <update> command to set a contact object | ||||
| with an alternate ASCII email address: | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <update> | C: <update> | |||
| C: <contact:update | C: <contact:update | |||
| C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| C: <contact:id>sh8013</contact:id> | C: <contact:id>sh8013</contact:id> | |||
| C: </contact:update> | C: </contact:update> | |||
| C: </update> | C: </update> | |||
| C: <extension> | C: <extension> | |||
| C: <addlEmail:addlEmail | C: <addlEmail:addlEmail | |||
| C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | |||
| C: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | C: <addlEmail:email>jdoe-alt@example.net</addlEmail:email> | |||
| C: </addlEmail:addlEmail> | C: </addlEmail:addlEmail> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp> | C:</epp> | |||
| Figure 6: Example <update> command to set a contact object with | Figure 6: Example <update> Command to Set a Contact Object with | |||
| an alternate ASCII email address | an Alternate ASCII Email Address | |||
| The following is an example <update> command to set a contact object | ||||
| with an alternate SMTPUTF8 email address: | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <update> | C: <update> | |||
| C: <contact:update | C: <contact:update | |||
| C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| C: <contact:id>sh8013</contact:id> | C: <contact:id>sh8013</contact:id> | |||
| C: </contact:update> | C: </contact:update> | |||
| C: </update> | C: </update> | |||
| C: <extension> | C: <extension> | |||
| C: <addlEmail:addlEmail | C: <addlEmail:addlEmail | |||
| C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | |||
| C: <addlEmail:email>麥克風@example.com</addlEmail:email> | C: <addlEmail:email>麥克風@example.com</addlEmail:email> | |||
| C: </addlEmail:addlEmail> | C: </addlEmail:addlEmail> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp> | C:</epp> | |||
| Figure 7: Example <update> command to set a contact object with | Figure 7: Example <update> Command to Set a Contact Object with | |||
| an alternate SMTPUTF8 email address | an Alternate SMTPUTF8 Email Address | |||
| The following is an example <update> command to unset a contact | ||||
| object alternate email address: | ||||
| C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> | |||
| C: <command> | C: <command> | |||
| C: <update> | C: <update> | |||
| C: <contact:update | C: <contact:update | |||
| C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | C: xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"> | |||
| C: <contact:id>sh8013</contact:id> | C: <contact:id>sh8013</contact:id> | |||
| C: </contact:update> | C: </contact:update> | |||
| C: </update> | C: </update> | |||
| C: <extension> | C: <extension> | |||
| C: <addlEmail:addlEmail | C: <addlEmail:addlEmail | |||
| C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | C: xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0"> | |||
| C: <addlEmail:email/> | C: <addlEmail:email/> | |||
| C: </addlEmail:addlEmail> | C: </addlEmail:addlEmail> | |||
| C: </extension> | C: </extension> | |||
| C: <clTRID>ABC-12345</clTRID> | C: <clTRID>ABC-12345</clTRID> | |||
| C: </command> | C: </command> | |||
| C:</epp> | C:</epp> | |||
| Figure 8: Example <update> command to unset a contact object | Figure 8: Example <update> Command to Unset a Contact Object | |||
| alternate email address | Alternate Email Address | |||
| This extension does not add any elements to the EPP <update> response | This extension does not add any elements to the EPP <update> response | |||
| described in [RFC5730]. | described in [RFC5730]. | |||
| 6. Formal Syntax | 6. Formal Syntax | |||
| The EPP Additional Email Address Extension schema is presented here. | The EPP Additional Email Address Extension schema is presented here. | |||
| The formal syntax shown here is a complete XML Schema | The formal syntax shown here is a complete XML Schema | |||
| ([W3C.REC-xmlschema-1-20041028], [W3C.REC-xmlschema-2-20041028]) | [W3C.REC-xmlschema-1-20041028] [W3C.REC-xmlschema-2-20041028] | |||
| representation of the object mapping suitable for automated | representation of the object mapping suitable for automated | |||
| validation of EPP XML instances. The <CODE BEGINS> and <CODE ENDS> | validation of EPP XML instances. The <CODE BEGINS> and <CODE ENDS> | |||
| tags are not part of the XML Schema; they are used to note the | tags are not part of the XML Schema; they are used to note the | |||
| beginning and ending of the XML Schema for URI registration purposes. | beginning and ending of the XML Schema for URI registration purposes. | |||
| 6.1. EPP Additional Email Address Extension Schema | 6.1. EPP Additional Email Address Extension Schema | |||
| <CODE BEGINS> | <CODE BEGINS> | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <schema xmlns="http://www.w3.org/2001/XMLSchema" | <schema xmlns="http://www.w3.org/2001/XMLSchema" | |||
| xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0" | xmlns:addlEmail="urn:ietf:params:xml:ns:epp:addlEmail-1.0" | |||
| targetNamespace="urn:ietf:params:xml:ns:epp:addlEmail-1.0" | targetNamespace="urn:ietf:params:xml:ns:epp:addlEmail-1.0" | |||
| elementFormDefault="qualified"> | elementFormDefault="qualified"> | |||
| <annotation> | <annotation> | |||
| <documentation>Extensible Provisioning Protocol v1.0 | <documentation>Extensible Provisioning Protocol v1.0 | |||
| additional email address schema.</documentation> | additional email address schema.</documentation> | |||
| </annotation> | </annotation> | |||
| skipping to change at page 18, line 41 ¶ | skipping to change at line 712 ¶ | |||
| <!-- | <!-- | |||
| End of schema. | End of schema. | |||
| --> | --> | |||
| </schema> | </schema> | |||
| <CODE ENDS> | <CODE ENDS> | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| 7.1. XML Namespace | 7.1. XML Namespace | |||
| This document uses URNs to describe XML namespaces conforming to a | This document uses URNs to describe XML namespaces and XML schemas | |||
| registry mechanism described in RFC 3688 [RFC3688]. The following | conforming to a registry mechanism described in [RFC3688]. The | |||
| URI assignment should be made by IANA: | following URI assignments have been made by IANA: | |||
| Registration request for the addlEmail namespace: | Registration for the addlEmail namespace: | |||
| URI: urn:ietf:params:xml:ns:epp:addlEmail-1.0 | URI: urn:ietf:params:xml:ns:epp:addlEmail-1.0 | |||
| Registrant Contact: IESG | Registrant Contact: IESG | |||
| XML: None. Namespace URIs do not represent an XML specification. | XML: None. Namespace URIs do not represent an XML specification. | |||
| Registration request for the addlEmail XML Schema: | Registration for the addlEmail XML Schema: | |||
| URI: urn:ietf:params:xml:schema:epp:addlEmail-1.0 | URI: urn:ietf:params:xml:schema:epp:addlEmail-1.0 | |||
| Registrant Contact: IESG | Registrant Contact: IESG | |||
| XML: See the "Formal Syntax" section of this document. | XML: See Section 6 of this document. | |||
| 7.2. EPP Extension Registry | 7.2. EPP Extension Registry | |||
| The EPP extension described in this document should be registered by | The EPP extension described in this document have been registered by | |||
| IANA in the "Extensions for the Extensible Provisioning Protocol | IANA in the "Extensions for the Extensible Provisioning Protocol | |||
| (EPP)" registry described in RFC 7451 [RFC7451]. The details of the | (EPP)" registry described in [RFC7451]. The details of the | |||
| registration are as follows: | registration are as follows: | |||
| Name of Extension: "Additional Email Address Extension for the | Name of Extension: Additional Email Address Extension for the | |||
| Extensible Provisioning Protocol (EPP)" | Extensible Provisioning Protocol (EPP) | |||
| Document status: Standards Track | Document Status: Standards Track | |||
| Reference: (This specification) | Reference: RFC 9873 | |||
| Registrant Name and Email Address: IESG, <iesg@ietf.org> | Registrant Name and Email Address: IESG, <iesg@ietf.org> | |||
| Top-Level Domains(TLDs): Any | TLDs: Any | |||
| IPR Disclosure: None | IPR Disclosure: None | |||
| Status: Active | Status: Active | |||
| Notes: None | Notes: None | |||
| 8. Implementation Status | 8. Security Considerations | |||
| Note to RFC Editor: Please remove this section and the reference to | ||||
| RFC 7942 [RFC7942] before publication. | ||||
| This section records the status of known implementations of the | ||||
| protocol defined by this specification at the time of posting of this | ||||
| Internet-Draft, and is based on a proposal described in RFC 7942 | ||||
| [RFC7942]. The description of implementations in this section is | ||||
| intended to assist the IETF in its decision processes in progressing | ||||
| drafts to RFCs. Please note that the listing of any individual | ||||
| implementation here does not imply endorsement by the IETF. | ||||
| Furthermore, no effort has been spent to verify the information | ||||
| presented here that was supplied by IETF contributors. This is not | ||||
| intended as, and must not be construed to be, a catalog of available | ||||
| implementations or their features. Readers are advised to note that | ||||
| other implementations may exist. | ||||
| According to RFC 7942 [RFC7942], "this will allow reviewers and | ||||
| working groups to assign due consideration to documents that have the | ||||
| benefit of running code, which may serve as evidence of valuable | ||||
| experimentation and feedback that have made the implemented protocols | ||||
| more mature. It is up to the individual working groups to use this | ||||
| information as they see fit". | ||||
| 8.1. Verisign EPP SDK | ||||
| Organization: Verisign Inc. | ||||
| Name: Verisign EPP SDK | ||||
| Description: The Verisign EPP SDK includes both a full client | ||||
| implementation and a full server stub implementation of draft-ietf- | ||||
| regext-epp-eai. | ||||
| Level of maturity: Development | ||||
| Coverage: All aspects of the protocol are implemented. | ||||
| Licensing: GNU Lesser General Public License | ||||
| Contact: jgould@verisign.com | ||||
| URL: https://www.verisign.com/en_US/channel-resources/domain- | ||||
| registry-products/epp-sdks | ||||
| 9. Security Considerations | ||||
| As is noted in Section 10.1 and Section 13 of [RFC6530], | As noted in Sections 10.1 and 13 of [RFC6530], unconstrained Unicode | |||
| unconstrained Unicode in email addresses can introduce a class of | in email addresses can introduce a class of security threats that do | |||
| security threats that do not exist with all-ASCII email addresses. | not exist with ASCII-only email addresses. As EPP exists in | |||
| As EPP exists in ecosystems where email addresses passed in EPP are | ecosystems where email addresses passed in EPP are displayed in the | |||
| displayed in RDAP and other services, and copy-and-paste of these | Registration Data Access Protocol (RDAP) and other services, and | |||
| email addresses is common for businesses transferring domains via | copy-and-paste of these email addresses is common for businesses | |||
| EPP, there should be safeguards against these threats. Therefore, | transferring domains via EPP, there should be safeguards against | |||
| use of the SMTPUTF8 email addresses as described in this document | these threats. Therefore, use of the SMTPUTF8 email addresses as | |||
| SHOULD be done with policies that disallow the use of unconstrained | described in this document SHOULD be done with policies that disallow | |||
| Unicode. The domain-part of these SMTPUTF8 email addresses SHOULD | the use of unconstrained Unicode. The domain-part of these SMTPUTF8 | |||
| conform to IDNA2008. The local-part of these SMTPUTF8 email | email addresses SHOULD conform to IDNA2008 [RFC5895]. The local-part | |||
| addresses SHOULD be restricted to Unicode that does not introduce the | of these SMTPUTF8 email addresses SHOULD be restricted to Unicode | |||
| threats noted in [RFC6530]. One such possible solution would be to | that does not introduce the threats noted in [RFC6530]. One such | |||
| disallow characters outside of Unicode Annex 31 [Unicode-UAX31]. | possible solution would be to disallow characters outside of Unicode | |||
| Annex 31 [Unicode-UAX31]. | ||||
| As email address is often a primary end user contact, and an invalid | As an email address is often a primary end user contact, an invalid | |||
| email address may put communication with the end user at risk when | email address may put communication with the end user at risk when | |||
| such contact is necessary. In case of an invalid domain name in the | such contact is necessary. In case of an invalid domain name in the | |||
| email address a malicious actor can register a valid domain name with | email address, a malicious actor can register a valid domain name | |||
| similar U-label (homograph attack) and assume control over the domain | with a similar U-label (homograph attack) and assume control over the | |||
| name associated with the contact using social engineering techniques. | domain name associated with the contact using social engineering | |||
| To reduce the risk of the use of invalid domain names in email | techniques. To reduce the risk of the use of invalid domain names in | |||
| addresses, registries SHOULD validate the domain name syntax in | email addresses, registries SHOULD validate the domain name syntax in | |||
| provided email addresses and validate whether the domain name | provided email addresses and validate whether the domain name | |||
| consists of the code points allowed by IDNA Rules and Derived | consists of the code points listed in the "IDNA Rules and Derived | |||
| Property Values (https://www.iana.org/assignments/idna-tables). | Property Values" registry <https://www.iana.org/assignments/idna- | |||
| tables>). | ||||
| Note that the syntax for internationalized email localparts is very | Note that the syntax for internationalized email local-parts is very | |||
| liberal. Domains are normalized during MX lookup, while localparts | liberal. Domains are normalized during MX lookup, while local-parts | |||
| are unconstrained. Implementers may wish to test that their database | are unconstrained. Implementers may wish to test that their database | |||
| is able to store difficult localparts such as U+0061 U+0300 U+00E0. | is able to store difficult local-parts such as U+0061 U+0300 U+00E0. | |||
| For more on normalization and these three code points, see [RFC5198] | For more on normalization and these three code points, see [RFC5198], | |||
| Section 3. | Section 3. | |||
| 10. Privacy Considerations | 9. Privacy Considerations | |||
| The content of <addlEmail:email> elements can be processed by EPP | The content of <addlEmail:email> elements can be processed by EPP | |||
| clients and servers in the same way that <contact:email> elements are | clients and servers in the same way that <contact:email> elements are | |||
| processed, including publication in directory services such as RDAP | processed, including publication in directory services such as RDAP | |||
| [STD95]. Many data protection regulations recognize email addresses | [STD95]. Many data protection regulations recognize email addresses | |||
| as personal data, so any policies governing the collection, | as personal data, so any policies governing the collection, | |||
| transmission, and processing of contact information by EPP clients | transmission, and processing of contact information by EPP clients | |||
| and servers should apply equally to <addlEmail:email> elements. | and servers should apply equally to <addlEmail:email> elements. | |||
| 11. Acknowledgments | 10. References | |||
| The authors would like to thank Alexander Mayrhofer, Chris Lonvick, | ||||
| Gustavo Lozano, Jody Kolker, John C Klensin, John Levine, Klaus | ||||
| Malorny, Marc Blanchet, Marco Schrieck, Mario Loffredo, Murray S. | ||||
| Kucherawy, Patrick Mevzek, Pete Resnick, Takahiro Nemoto, Taras | ||||
| Heichenko, Arnt Gulbrandsen, Thomas Corte, Gavin Brown, and Andrew | ||||
| Newton for their careful review and valuable comments. | ||||
| 12. References | ||||
| 12.1. Normative References | 10.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| DOI 10.17487/RFC3688, January 2004, | DOI 10.17487/RFC3688, January 2004, | |||
| <https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
| skipping to change at page 22, line 49 ¶ | skipping to change at line 846 ¶ | |||
| Email Headers", RFC 6532, DOI 10.17487/RFC6532, February | Email Headers", RFC 6532, DOI 10.17487/RFC6532, February | |||
| 2012, <https://www.rfc-editor.org/info/rfc6532>. | 2012, <https://www.rfc-editor.org/info/rfc6532>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [W3C.REC-xmlschema-1-20041028] | [W3C.REC-xmlschema-1-20041028] | |||
| Beech, D., Ed., Thompson, H., Ed., Maloney, M., Ed., and | Beech, D., Ed., Thompson, H., Ed., Maloney, M., Ed., and | |||
| N. Mendelsohn, Ed., "XML Schema Part 1: Structures Second | N. Mendelsohn, Ed., "XML Schema Part 1: Structures Second | |||
| Edition", W3C REC REC-xmlschema-1-20041028, W3C REC- | Edition", W3C Recommendation, 28 October 2004, | |||
| xmlschema-1-20041028, 28 October 2004, | ||||
| <https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/>. | <https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/>. | |||
| [W3C.REC-xmlschema-2-20041028] | [W3C.REC-xmlschema-2-20041028] | |||
| Malhotra, A., Ed. and P. V. Biron, Ed., "XML Schema Part | Malhotra, A., Ed. and P. V. Biron, Ed., "XML Schema Part | |||
| 2: Datatypes Second Edition", W3C REC REC-xmlschema- | 2: Datatypes Second Edition", W3C Recommendation, 28 | |||
| 2-20041028, W3C REC-xmlschema-2-20041028, 28 October 2004, | October 2004, | |||
| <https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/>. | <https://www.w3.org/TR/2004/REC-xmlschema-2-20041028>. | |||
| 12.2. Informative References | 10.2. Informative References | |||
| [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network | [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network | |||
| Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008, | Interchange", RFC 5198, DOI 10.17487/RFC5198, March 2008, | |||
| <https://www.rfc-editor.org/info/rfc5198>. | <https://www.rfc-editor.org/info/rfc5198>. | |||
| [RFC5895] Resnick, P. and P. Hoffman, "Mapping Characters for | ||||
| Internationalized Domain Names in Applications (IDNA) | ||||
| 2008", RFC 5895, DOI 10.17487/RFC5895, September 2010, | ||||
| <https://www.rfc-editor.org/info/rfc5895>. | ||||
| [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | [RFC7451] Hollenbeck, S., "Extension Registry for the Extensible | |||
| Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | Provisioning Protocol", RFC 7451, DOI 10.17487/RFC7451, | |||
| February 2015, <https://www.rfc-editor.org/info/rfc7451>. | February 2015, <https://www.rfc-editor.org/info/rfc7451>. | |||
| [RFC7942] Sheffer, Y. and A. Farrel, "Improving Awareness of Running | ||||
| Code: The Implementation Status Section", BCP 205, | ||||
| RFC 7942, DOI 10.17487/RFC7942, July 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7942>. | ||||
| [STD95] Internet Standard 95, | [STD95] Internet Standard 95, | |||
| <https://www.rfc-editor.org/info/std95>. | <https://www.rfc-editor.org/info/std95>. | |||
| At the time of writing, this STD comprises the following: | At the time of writing, this STD comprises the following: | |||
| Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | Newton, A., Ellacott, B., and N. Kong, "HTTP Usage in the | |||
| Registration Data Access Protocol (RDAP)", STD 95, | Registration Data Access Protocol (RDAP)", STD 95, | |||
| RFC 7480, DOI 10.17487/RFC7480, March 2015, | RFC 7480, DOI 10.17487/RFC7480, March 2015, | |||
| <https://www.rfc-editor.org/info/rfc7480>. | <https://www.rfc-editor.org/info/rfc7480>. | |||
| Hollenbeck, S. and N. Kong, "Security Services for the | Hollenbeck, S. and N. Kong, "Security Services for the | |||
| skipping to change at page 24, line 11 ¶ | skipping to change at line 900 ¶ | |||
| Registration Data Access Protocol (RDAP)", STD 95, | Registration Data Access Protocol (RDAP)", STD 95, | |||
| RFC 9083, DOI 10.17487/RFC9083, June 2021, | RFC 9083, DOI 10.17487/RFC9083, June 2021, | |||
| <https://www.rfc-editor.org/info/rfc9083>. | <https://www.rfc-editor.org/info/rfc9083>. | |||
| Blanchet, M., "Finding the Authoritative Registration Data | Blanchet, M., "Finding the Authoritative Registration Data | |||
| Access Protocol (RDAP) Service", STD 95, RFC 9224, | Access Protocol (RDAP) Service", STD 95, RFC 9224, | |||
| DOI 10.17487/RFC9224, March 2022, | DOI 10.17487/RFC9224, March 2022, | |||
| <https://www.rfc-editor.org/info/rfc9224>. | <https://www.rfc-editor.org/info/rfc9224>. | |||
| [Unicode-UAX31] | [Unicode-UAX31] | |||
| The Unicode Consortium, "Unicode Standard Annex #31: | Davis, M., Ed. and R. Leroy, Ed., "Unicode Identifiers and | |||
| Unicode Identifiers and Syntax", September 2024, | Syntax", Version 16.0.0, Unicode Standard Annex #31, | |||
| <https://unicode.org/reports/tr31/>. | September 2024, | |||
| <https://www.unicode.org/reports/tr31/tr31-41.html>. | ||||
| Appendix A. Change History | Latest version available at | |||
| <https://www.unicode.org/reports/tr31/>. | ||||
| This section is to be removed before publishing as an RFC. | ||||
| A.1. Change from 00 to 01 | ||||
| 1. Changed from update of RFC 5733 to use the "Placeholder Text and | ||||
| a New Email Element" EPP Extension approach. | ||||
| A.2. Change from 01 to 02 | ||||
| 1. Fixed the XML schema and the XML examples based on validating | ||||
| them. | ||||
| 2. Added James Gould as co-author. | ||||
| 3. Updated the language to apply to any EPP object mapping and to | ||||
| use the EPP contact mapping as an example. | ||||
| 4. Updated the structure of document to be consistent with the other | ||||
| Command-Response Extensions. | ||||
| 5. Replaced the use of "eppEAI" in the XML namespace and the XML | ||||
| namespace prefix with "eai". | ||||
| 6. Changed to use a pointed XML namespace with "0.2" instead of | ||||
| "1.0". | ||||
| A.3. Change from 02 to 03 | ||||
| 1. The approach has changed to use the concept of Functional EPP | ||||
| Extension. | ||||
| 2. The examples are removed | ||||
| A.4. Change from 03 to 04 | ||||
| 1. More detailed reference to email syntax is provided | ||||
| 2. The shortened eai namespace reference is removed | ||||
| A.5. Change from 04 to the regext 01 version | ||||
| 1. Provided the recommended placeholder value | ||||
| A.6. Change from the regext 01 to regext 02 version | ||||
| 1. Removed the concept of the placeholder value | ||||
| A.7. Change from the regext 02 to regext 03 version | ||||
| 1. Changed to use a pointed XML namespace with "0.3" instead of | ||||
| "0.2". | ||||
| 2. Some wording improvements | ||||
| A.8. Change from the regext 03 to regext 04 version | ||||
| 1. Some nitpicking | ||||
| A.9. Change from the regext 04 to regext 05 version | ||||
| 1. Some nitpicking | ||||
| 2. The "Implementation considerations" section is removed | ||||
| A.10. Change from the regext 05 to regext 06 version | ||||
| 1. Some nitpicking | ||||
| A.11. Change from the regext 06 to regext 07 version | ||||
| 1. Namespace version set to 1.0 | ||||
| A.12. Change from the regext 07 to regext 08 version | ||||
| 1. Information about implementations is provided. | ||||
| 2. Acknowledgments section is added. | ||||
| 3. Reference to RFC 7451 is moved to Informative. | ||||
| 4. IPR information is provided | ||||
| 5. Sections are reordered to align with the other regext documents | ||||
| A.13. Change from the regext 08 to regext 09 version | ||||
| 1. Nitpicking according to Murray S. Kucherawy review | ||||
| A.14. Change from the regext 09 to regext 10 version | ||||
| 1. Some nitpicking in the security considerations. | ||||
| A.15. Change from the regext 10 to regext 11 version | ||||
| 1. Nitpicking according mostly GenArt review. | ||||
| A.16. Change from the regext 11 to regext 12 version | ||||
| 1. XML schema registration request removed. | ||||
| A.17. Change from the regext 12 to regext 13 version | ||||
| 1. Document updated according to SecDir and ART-ART review. | ||||
| A.18. Change from the regext 13 to regext 14 version | ||||
| 1. Document updated according the IANA review #1231866. | ||||
| A.19. Change from the regext 14 to regext 15 version | ||||
| 1. Document updated according to ART-ART review. | ||||
| A.20. Change from the regext 15 to regext 16 version | ||||
| 1. Document removed the definition of the concept of a functional | ||||
| extension and updated to use a command-response extension, based | ||||
| on the feedback from John C Klensin. | ||||
| 2. Document removed the EAI abbreviation and uses SMTPUTF8 as | ||||
| umbrella term instead, based on the feedback from John C Klensin. | ||||
| A.21. Change from the regext 16 to regext 17 version | ||||
| 1. Added support for an alternate email during a transition period, | ||||
| based on feedback from John C Klensin. | ||||
| A.22. Change from the regext 17 to regext 18 version | ||||
| 1. Roll back to approach in -16 with the Cardinality of One Option, | ||||
| posted to and supported on the mailing list. | ||||
| 2. Replaced references of eai to smtputf8, based on feedback from | ||||
| John C Klensin. | ||||
| 3. Revised the Security Considerations section based on feedback and | ||||
| text from Andy Newton. | ||||
| A.23. Change from the regext 18 to regext 19 version | ||||
| 1. Reverted back to -17 with support for one or two email addresses | ||||
| using either ASCII or SMTPUTF8 and remove any reference to the | ||||
| requirement for an ASCII email address and remove the concept of | ||||
| a transition period. | ||||
| A.24. Change from the regext 19 to regext 20 version | ||||
| 1. Reverted Security Considerations section back to the content in | ||||
| -18 based on feedback from Andy Newton. | ||||
| A.25. Change from the regext 20 to regext 21 version | ||||
| 1. Added Scott Hollenbeck as a document editor. Rewrote the draft | ||||
| to require ASCII-only email addresses in the base contact object | ||||
| mapping, allowing either ASCII-only or SMTPUTF8 addresses in the | ||||
| extension. | ||||
| 2. Replaced "eai" with "addlEmail" in the extension-identifying URNs | ||||
| and schema elements. | ||||
| A.26. Change from the regext 21 to regext 22 version | ||||
| 1. Fixed XML schema to use correct complexType. | ||||
| 2. Added Implementation Status section. | ||||
| 3. Example line formatting to fit within 72 characters. | ||||
| A.27. Change from the regext 22 to regext 23 version | ||||
| 1. Second WG last call updates. | ||||
| A.28. Change from the regext 23 to regext 24 version | ||||
| 1. Second IETF last call updates: | ||||
| 2. Changed document name to reflect change from focus on SMTPUTF8 | ||||
| addresses to an additional email address that can be either an | ||||
| SMTPUTF8 address or an all-ASCII address. | ||||
| 3. Added additional mail address considerations. | ||||
| A.29. Change from the regext 24 to regext 25 version | ||||
| 1. IESG Evaluation updates: | ||||
| 2. Updated Dmitry's address. | ||||
| A.30. Change from the regext 25 to regext 26 version | ||||
| 1. IESG Evaluation updates. Revised text to describe email address | ||||
| syntax in the Introduction. This was inadvertently missed in | ||||
| -25. | ||||
| A.31. Change from the regext 26 to regext 27 version | Acknowledgments | |||
| 1. IESG Evaluation updates. Added reference to RFC 5730 in | The authors would like to thank Alexander Mayrhofer, Chris Lonvick, | |||
| Section 4.1. Fixed extension name in the IANA Considerations | Gustavo Lozano, Jody Kolker, John C. Klensin, John Levine, Klaus | |||
| section. | Malorny, Marc Blanchet, Marco Schrieck, Mario Loffredo, Murray | |||
| S. Kucherawy, Patrick Mevzek, Pete Resnick, Takahiro Nemoto, Taras | ||||
| Heichenko, Arnt Gulbrandsen, Thomas Corte, Gavin Brown, and Andrew | ||||
| Newton for their careful review and valuable comments. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Dmitry Belyavskiy | Dmitry Belyavskiy | |||
| Karpatska 241/3 | Karpatska 241/3 | |||
| 62500 Brno | 62500 Brno | |||
| Czech Republic | Czech Republic | |||
| Phone: +420 603 261 036 | Phone: +420 603 261 036 | |||
| Email: beldmit@gmail.com | Email: beldmit@gmail.com | |||
| James Gould | James Gould | |||
| VeriSign, Inc. | VeriSign, Inc. | |||
| 12061 Bluemont Way | 12061 Bluemont Way | |||
| Reston, VA 20190 | Reston, VA 20190 | |||
| United States of America | United States of America | |||
| Email: jgould@verisign.com | Email: jgould@verisign.com | |||
| URI: http://www.verisigninc.com | URI: https://www.verisign.com | |||
| Scott Hollenbeck | Scott Hollenbeck | |||
| Verisign Labs | Verisign Labs | |||
| 12061 Bluemont Way | 12061 Bluemont Way | |||
| Reston, VA 20190 | Reston, VA 20190 | |||
| United States of America | United States of America | |||
| Email: shollenbeck@verisign.com | Email: shollenbeck@verisign.com | |||
| URI: https://www.verisignlabs.com/ | URI: https://www.verisignlabs.com/ | |||
| End of changes. 74 change blocks. | ||||
| 500 lines changed or deleted | 195 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||