draft-ietf-precis-framework-13.txt   draft-ietf-precis-framework-14.txt 
PRECIS P. Saint-Andre PRECIS P. Saint-Andre
Internet-Draft Cisco Systems, Inc. Internet-Draft &yet
Obsoletes: 3454 (if approved) M. Blanchet Obsoletes: 3454 (if approved) M. Blanchet
Intended status: Standards Track Viagenie Intended status: Standards Track Viagenie
Expires: June 8, 2014 December 5, 2013 Expires: August 13, 2014 February 9, 2014
PRECIS Framework: Preparation and Comparison of Internationalized PRECIS Framework: Preparation and Comparison of Internationalized
Strings in Application Protocols Strings in Application Protocols
draft-ietf-precis-framework-13 draft-ietf-precis-framework-14
Abstract Abstract
Application protocols using Unicode characters in protocol strings Application protocols using Unicode characters in protocol strings
need to properly prepare such strings in order to perform valid need to properly prepare such strings in order to perform valid
comparison operations (e.g., for purposes of authentication or comparison operations (e.g., for purposes of authentication or
authorization). This document defines a framework enabling authorization). This document defines a framework enabling
application protocols to perform the preparation and comparison of application protocols to perform the preparation and comparison of
internationalized strings ("PRECIS") in a way that depends on the internationalized strings ("PRECIS") in a way that depends on the
properties of Unicode characters and thus is agile with respect to properties of Unicode characters and thus is agile with respect to
versions of Unicode. As a result, this framework provides a more versions of Unicode. As a result, this framework provides a more
sustainable approach to the handling of internationalized strings sustainable approach to the handling of internationalized strings
than the previous framework, known as Stringprep (RFC 3454). This than the previous framework, known as Stringprep (RFC 3454). This
document obsoletes RFC 3454. document obsoletes RFC 3454.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 8, 2014. This Internet-Draft will expire on August 13, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2014 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 Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. String Classes . . . . . . . . . . . . . . . . . . . . . . . . 6 3. String Classes . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. IdentifierClass . . . . . . . . . . . . . . . . . . . . . 7 3.2. IdentifierClass . . . . . . . . . . . . . . . . . . . . . 7
3.3. FreeformClass . . . . . . . . . . . . . . . . . . . . . . 9 3.3. FreeformClass . . . . . . . . . . . . . . . . . . . . . . 8
4. Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4. Profiles . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1. Principles . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1. Principles . . . . . . . . . . . . . . . . . . . . . . . 10
4.2. Building Application-Layer Constructs . . . . . . . . . . 12 4.2. Building Application-Layer Constructs . . . . . . . . . . 12
4.3. A Note about Spaces . . . . . . . . . . . . . . . . . . . 13 4.3. A Note about Spaces . . . . . . . . . . . . . . . . . . . 13
5. Order of Operations . . . . . . . . . . . . . . . . . . . . . 14 5. Order of Operations . . . . . . . . . . . . . . . . . . . . . 13
6. Code Point Properties . . . . . . . . . . . . . . . . . . . . 14 6. Code Point Properties . . . . . . . . . . . . . . . . . . . . 14
7. Category Definitions Used to Calculate Derived Property . . . 16 7. Category Definitions Used to Calculate Derived Property . . . 16
7.1. LetterDigits (A) . . . . . . . . . . . . . . . . . . . . . 16 7.1. LetterDigits (A) . . . . . . . . . . . . . . . . . . . . 16
7.2. Unstable (B) . . . . . . . . . . . . . . . . . . . . . . . 17 7.2. Unstable (B) . . . . . . . . . . . . . . . . . . . . . . 17
7.3. IgnorableProperties (C) . . . . . . . . . . . . . . . . . 17 7.3. IgnorableProperties (C) . . . . . . . . . . . . . . . . . 17
7.4. IgnorableBlocks (D) . . . . . . . . . . . . . . . . . . . 17 7.4. IgnorableBlocks (D) . . . . . . . . . . . . . . . . . . . 17
7.5. LDH (E) . . . . . . . . . . . . . . . . . . . . . . . . . 17 7.5. LDH (E) . . . . . . . . . . . . . . . . . . . . . . . . . 17
7.6. Exceptions (F) . . . . . . . . . . . . . . . . . . . . . . 17 7.6. Exceptions (F) . . . . . . . . . . . . . . . . . . . . . 17
7.7. BackwardCompatible (G) . . . . . . . . . . . . . . . . . . 19 7.7. BackwardCompatible (G) . . . . . . . . . . . . . . . . . 19
7.8. JoinControl (H) . . . . . . . . . . . . . . . . . . . . . 19 7.8. JoinControl (H) . . . . . . . . . . . . . . . . . . . . . 19
7.9. OldHangulJamo (I) . . . . . . . . . . . . . . . . . . . . 19 7.9. OldHangulJamo (I) . . . . . . . . . . . . . . . . . . . . 19
7.10. Unassigned (J) . . . . . . . . . . . . . . . . . . . . . . 20 7.10. Unassigned (J) . . . . . . . . . . . . . . . . . . . . . 20
7.11. ASCII7 (K) . . . . . . . . . . . . . . . . . . . . . . . . 20 7.11. ASCII7 (K) . . . . . . . . . . . . . . . . . . . . . . . 20
7.12. Controls (L) . . . . . . . . . . . . . . . . . . . . . . . 20 7.12. Controls (L) . . . . . . . . . . . . . . . . . . . . . . 20
7.13. PrecisIgnorableProperties (M) . . . . . . . . . . . . . . 20 7.13. PrecisIgnorableProperties (M) . . . . . . . . . . . . . . 20
7.14. Spaces (N) . . . . . . . . . . . . . . . . . . . . . . . . 21 7.14. Spaces (N) . . . . . . . . . . . . . . . . . . . . . . . 21
7.15. Symbols (O) . . . . . . . . . . . . . . . . . . . . . . . 21 7.15. Symbols (O) . . . . . . . . . . . . . . . . . . . . . . . 21
7.16. Punctuation (P) . . . . . . . . . . . . . . . . . . . . . 21 7.16. Punctuation (P) . . . . . . . . . . . . . . . . . . . . . 21
7.17. HasCompat (Q) . . . . . . . . . . . . . . . . . . . . . . 21 7.17. HasCompat (Q) . . . . . . . . . . . . . . . . . . . . . . 21
7.18. OtherLetterDigits (R) . . . . . . . . . . . . . . . . . . 21 7.18. OtherLetterDigits (R) . . . . . . . . . . . . . . . . . . 21
8. Calculation of the Derived Property . . . . . . . . . . . . . 21 8. Calculation of the Derived Property . . . . . . . . . . . . . 22
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
9.1. PRECIS Derived Property Value Registry . . . . . . . . . . 23 9.1. PRECIS Derived Property Value Registry . . . . . . . . . 23
9.2. PRECIS Base Classes Registry . . . . . . . . . . . . . . . 23 9.2. PRECIS Base Classes Registry . . . . . . . . . . . . . . 23
9.3. PRECIS Profiles Registry . . . . . . . . . . . . . . . . . 24 9.3. PRECIS Profiles Registry . . . . . . . . . . . . . . . . 24
10. Security Considerations . . . . . . . . . . . . . . . . . . . 25 10. Security Considerations . . . . . . . . . . . . . . . . . . . 26
10.1. General Issues . . . . . . . . . . . . . . . . . . . . . . 25 10.1. General Issues . . . . . . . . . . . . . . . . . . . . . 26
10.2. Use of the IdentifierClass . . . . . . . . . . . . . . . . 25 10.2. Use of the IdentifierClass . . . . . . . . . . . . . . . 26
10.3. Use of the FreeformClass . . . . . . . . . . . . . . . . . 26 10.3. Use of the FreeformClass . . . . . . . . . . . . . . . . 27
10.4. Local Character Set Issues . . . . . . . . . . . . . . . . 26 10.4. Local Character Set Issues . . . . . . . . . . . . . . . 27
10.5. Visually Similar Characters . . . . . . . . . . . . . . . 26 10.5. Visually Similar Characters . . . . . . . . . . . . . . 27
10.6. Security of Passwords . . . . . . . . . . . . . . . . . . 28 10.6. Security of Passwords . . . . . . . . . . . . . . . . . 29
11. Interoperability Considerations . . . . . . . . . . . . . . . 29 11. Interoperability Considerations . . . . . . . . . . . . . . . 30
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.1. Normative References . . . . . . . . . . . . . . . . . . . 29 12.1. Normative References . . . . . . . . . . . . . . . . . . 30
12.2. Informative References . . . . . . . . . . . . . . . . . . 30 12.2. Informative References . . . . . . . . . . . . . . . . . 31
Appendix A. Codepoint Table . . . . . . . . . . . . . . . . . . . 32 12.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 63 Appendix A. Codepoint Table . . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 63 Appendix B. Acknowledgements . . . . . . . . . . . . . . . . . . 64
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 64
1. Introduction 1. Introduction
As described in the problem statement for the preparation and As described in the problem statement for the preparation and
comparison of internationalized strings ("PRECIS") [RFC6885], many comparison of internationalized strings ("PRECIS") [RFC6885], many
IETF protocols have used the Stringprep framework [RFC3454] as the IETF protocols have used the Stringprep framework [RFC3454] as the
basis for preparing and comparing protocol strings that contain basis for preparing and comparing protocol strings that contain
Unicode characters [UNICODE] outside the ASCII range [RFC20]. The Unicode characters [UNICODE] outside the ASCII range [RFC20]. The
Stringprep framework was developed during work on the original Stringprep framework was developed during work on the original
technology for internationalized domain names (IDNs), here called technology for internationalized domain names (IDNs), here called
skipping to change at page 11, line 26 skipping to change at page 11, line 13
is in general RECOMMENDED because allowing fullwidth and halfwidth is in general RECOMMENDED because allowing fullwidth and halfwidth
characters to remain unmapped to their compatibility variants would characters to remain unmapped to their compatibility variants would
violate the principle of least user surprise. For more information violate the principle of least user surprise. For more information
about the concept of width in East Asian scripts within Unicode, see about the concept of width in East Asian scripts within Unicode, see
Unicode Standard Annex #11 [UAX11]. Unicode Standard Annex #11 [UAX11].
4.1.2. Additional Mappings 4.1.2. Additional Mappings
The additional mappings rule of a profile specifies whether The additional mappings rule of a profile specifies whether
additional mappings are to be applied, such as mapping of delimiter additional mappings are to be applied, such as mapping of delimiter
characters, mapping of special characters (e.g., non-ASCII space characters and mapping of special characters (e.g., non-ASCII space
characters to ASCII space or certain characters to nothing), and case characters to ASCII space or certain characters to nothing).
mapping based on locale or on locale and context (see
[I-D.ietf-precis-mappings]).
4.1.3. Case Mapping 4.1.3. Case Mapping
The case mapping rule of a profile specifies whether case mapping is The case mapping rule of a profile specifies whether case mapping is
performed (instead of case preservation) on uppercase and titlecase performed (instead of case preservation) on uppercase and titlecase
characters, and how the mapping is done (e.g., mapping uppercase and characters, and how the mapping is done (e.g., mapping uppercase and
titlecase characters to their lowercase equivalents). titlecase characters to their lowercase equivalents).
If case preservation is not desired, it is RECOMMENDED to use Unicode If case preservation is not desired, it is RECOMMENDED to use Unicode
Default Case Folding as defined in Chapter 3 of the Unicode Standard Default Case Folding as defined in Chapter 3 of the Unicode Standard
[UNICODE]. [UNICODE].
Another option is to use the "local case mapping" method specified in
[I-D.ietf-precis-mappings]. Note: because that method applies normal
case mapping to Unicode characters that do not have special rules for
locale-dependent or context-dependent mapping, if case mapping is
desired then a profile needs to specify either the "local case
mapping" method from [I-D.ietf-precis-mappings] or another method
such as Unicode Default Case Folding.
In order to maximize entropy and minimize the potential for false In order to maximize entropy and minimize the potential for false
positives, it is NOT RECOMMENDED for application protocols to map positives, it is NOT RECOMMENDED for application protocols to map
uppercase and titlecase code points to their lowercase equivalents uppercase and titlecase code points to their lowercase equivalents
when strings conforming to the FreeformClass, or a profile thereof, when strings conforming to the FreeformClass, or a profile thereof,
are used in passwords; instead, it is RECOMMENDED to preserve the are used in passwords; instead, it is RECOMMENDED to preserve the
case of all code points contained in such strings and then perform case of all code points contained in such strings and then perform
case-sensitive comparison. See also the related discussion in case-sensitive comparison. See also the related discussion in
[I-D.ietf-precis-saslprepbis]. [I-D.ietf-precis-saslprepbis].
4.1.4. Normalization 4.1.4. Normalization
skipping to change at page 14, line 13 skipping to change at page 14, line 6
can also define application-layer constructs containing spaces. can also define application-layer constructs containing spaces.
5. Order of Operations 5. Order of Operations
To ensure proper comparison, the following order of operations is To ensure proper comparison, the following order of operations is
REQUIRED: REQUIRED:
1. Width mapping 1. Width mapping
2. Optionally, additional mappings such as those as specified in 2. Optionally, additional mappings such as those as specified in
[I-D.ietf-precis-mappings]: [I-D.ietf-precis-mappings]:
1. Delimiter mapping 1. Delimiter mapping
2. Special mapping 2. Special mapping
3. Local case mapping
3. Non-local case mapping 3. Case mapping as described under Section 4.1.3 of this document
(typically either the "local case mapping" method from
[I-D.ietf-precis-mappings] or Unicode Default Case Folding)
4. Normalization 4. Normalization
5. Behavioral rules for determining whether a code point is valid, 5. Behavioral rules for determining whether a code point is valid,
allowed under a contextual rule, disallowed, or unassigned allowed under a contextual rule, disallowed, or unassigned
As already described, the width mapping, additional mapping, non- As already described, the width mapping, additional mapping, case
local case mapping, and normalization operations are specified for mapping, and normalization operations are specified for each profile,
each profile, whereas the behavioral rules are specified for each whereas the behavioral rules are specified for each string class.
string class. Some of the logic behind this order is provided under Some of the logic behind this order is provided under Section 4.1.1
Section 4.1.1 and in [I-D.ietf-precis-mappings]. and in [I-D.ietf-precis-mappings].
6. Code Point Properties 6. Code Point Properties
In order to implement the string classes described above, this In order to implement the string classes described above, this
document does the following: document does the following:
1. Reviews and classifies the collections of code points in the 1. Reviews and classifies the collections of code points in the
Unicode character set by examining various code point properties. Unicode character set by examining various code point properties.
2. Defines an algorithm for determining a derived property value, 2. Defines an algorithm for determining a derived property value,
skipping to change at page 24, line 18 skipping to change at page 24, line 37
PRECIS string classes. In accordance with [RFC5226], the PRECIS string classes. In accordance with [RFC5226], the
registration policy is "Expert Review". This policy was chosen in registration policy is "Expert Review". This policy was chosen in
order to ease the burden of registration while ensuring that order to ease the burden of registration while ensuring that
"customers" of PRECIS receive appropriate guidance regarding the "customers" of PRECIS receive appropriate guidance regarding the
sometimes complex and subtle internationalization issues related to sometimes complex and subtle internationalization issues related to
profiles of PRECIS string classes. profiles of PRECIS string classes.
The registration template is as follows: The registration template is as follows:
Name: [the name of the profile] Name: [the name of the profile]
Applicability: [the specific protocol elements to which this profile Applicability: [the specific protocol elements to which this profile
applies, e.g., "Localparts in XMPP addresses."] applies, e.g., "Localparts in XMPP addresses."]
Base Class: [which PRECIS string class is being profiled] Base Class: [which PRECIS string class is being profiled]
Replaces: [the Stringprep profile that this PRECIS profile replaces, Replaces: [the Stringprep profile that this PRECIS profile replaces,
if any] if any]
Width Mapping: [the behavioral rule for handling of width, e.g., Width Mapping: [the behavioral rule for handling of width, e.g.,
"Map fullwidth and halfwidth characters to their compatibility "Map fullwidth and halfwidth characters to their compatibility
variants."] variants."]
Additional Mappings: [any additional mappings are required or Additional Mappings: [any additional mappings are required or
recommended, e.g., "Map non-ASCII space characters to ASCII recommended, e.g., "Map non-ASCII space characters to ASCII
space."] space."]
Case Mapping: [the behavioral rule for handling of case, e.g., "Map
uppercase and titlecase characters to lowercase."] Case Mapping: [the behavioral rule for handling of case, e.g.,
"Unicode Default Case Folding"]
Normalization: [which Unicode normalization form is applied, e.g., Normalization: [which Unicode normalization form is applied, e.g.,
"NFC"] "NFC"]
Directionality: [the behavioral rule for handling of right-to-left Directionality: [the behavioral rule for handling of right-to-left
code points, e.g., "The 'Bidi Rule' defined in RFC 5893 applies."] code points, e.g., "The 'Bidi Rule' defined in RFC 5893 applies."]
Exclusions: [a brief description of the specific code points or Exclusions: [a brief description of the specific code points or
characters categories are excluded, e.g., "Eight legacy characters characters categories are excluded, e.g., "Eight legacy characters
in the ASCII range" or "Any character that has a compatibility in the ASCII range" or "Any character that has a compatibility
equivalent, i.e., the HasCompat category"] equivalent, i.e., the HasCompat category"]
Enforcement: [which entities enforce the rules, and when that Enforcement: [which entities enforce the rules, and when that
enforcement occurs during protocol operations] enforcement occurs during protocol operations]
Specification: [a pointer to relevant documentation, such as an RFC Specification: [a pointer to relevant documentation, such as an RFC
or Internet-Draft] or Internet-Draft]
In order to request a review, the registrant shall send a completed In order to request a review, the registrant shall send a completed
template to the precis@ietf.org list or its designated successor. template to the precis@ietf.org list or its designated successor.
Factors to focus on while defining profiles and reviewing profile Factors to focus on while defining profiles and reviewing profile
registrations include the following: registrations include the following:
o Is the problem being addressed by this profile well-defined? o Is the problem being addressed by this profile well-defined?
skipping to change at page 29, line 50 skipping to change at page 30, line 44
U+19DA NEW TAI LUE THAM as DISALLOWED. Implementers need to be aware U+19DA NEW TAI LUE THAM as DISALLOWED. Implementers need to be aware
that this treatment is different from IDNA2008 (originally defined in that this treatment is different from IDNA2008 (originally defined in
terms of Unicode 5.2), which treats U+19DA as PVALID. terms of Unicode 5.2), which treats U+19DA as PVALID.
12. References 12. References
12.1. Normative References 12.1. Normative References
[I-D.ietf-precis-mappings] [I-D.ietf-precis-mappings]
Yoneya, Y. and T. NEMOTO, "Mapping characters for PRECIS Yoneya, Y. and T. NEMOTO, "Mapping characters for PRECIS
classes", draft-ietf-precis-mappings-05 (work in classes", draft-ietf-precis-mappings-06 (work in
progress), October 2013. progress), January 2014.
[RFC20] Cerf, V., "ASCII format for network interchange", RFC 20, [RFC20] Cerf, V., "ASCII format for network interchange", RFC 20,
October 1969. October 1969.
[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, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network [RFC5198] Klensin, J. and M. Padlipsky, "Unicode Format for Network
Interchange", RFC 5198, March 2008. Interchange", RFC 5198, March 2008.
skipping to change at page 30, line 32 skipping to change at page 31, line 25
Nicknames", draft-ietf-precis-nickname-08 (work in Nicknames", draft-ietf-precis-nickname-08 (work in
progress), December 2013. progress), December 2013.
[I-D.ietf-precis-saslprepbis] [I-D.ietf-precis-saslprepbis]
Saint-Andre, P. and A. Melnikov, "Username and Password Saint-Andre, P. and A. Melnikov, "Username and Password
Preparation Algorithms", draft-ietf-precis-saslprepbis-06 Preparation Algorithms", draft-ietf-precis-saslprepbis-06
(work in progress), December 2013. (work in progress), December 2013.
[I-D.ietf-xmpp-6122bis] [I-D.ietf-xmpp-6122bis]
Saint-Andre, P., "Extensible Messaging and Presence Saint-Andre, P., "Extensible Messaging and Presence
Protocol (XMPP): Address Format", Protocol (XMPP): Address Format", draft-ietf-xmpp-
draft-ietf-xmpp-6122bis-09 (work in progress), 6122bis-10 (work in progress), January 2014.
November 2013.
[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
"Remote Authentication Dial In User Service (RADIUS)", "Remote Authentication Dial In User Service (RADIUS)", RFC
RFC 2865, June 2000. 2865, June 2000.
[RFC3454] Hoffman, P. and M. Blanchet, "Preparation of [RFC3454] Hoffman, P. and M. Blanchet, "Preparation of
Internationalized Strings ("stringprep")", RFC 3454, Internationalized Strings ("stringprep")", RFC 3454,
December 2002. December 2002.
[RFC3490] Faltstrom, P., Hoffman, P., and A. Costello, [RFC3490] Faltstrom, P., Hoffman, P., and A. Costello,
"Internationalizing Domain Names in Applications (IDNA)", "Internationalizing Domain Names in Applications (IDNA)",
RFC 3490, March 2003. RFC 3490, March 2003.
[RFC3491] Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep [RFC3491] Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep
Profile for Internationalized Domain Names (IDN)", Profile for Internationalized Domain Names (IDN)", RFC
RFC 3491, March 2003. 3491, March 2003.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003. 10646", STD 63, RFC 3629, November 2003.
[RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and [RFC4422] Melnikov, A. and K. Zeilenga, "Simple Authentication and
Security Layer (SASL)", RFC 4422, June 2006. Security Layer (SASL)", RFC 4422, June 2006.
[RFC4510] Zeilenga, K., "Lightweight Directory Access Protocol [RFC4510] Zeilenga, K., "Lightweight Directory Access Protocol
(LDAP): Technical Specification Road Map", RFC 4510, (LDAP): Technical Specification Road Map", RFC 4510, June
June 2006. 2006.
[RFC4690] Klensin, J., Faltstrom, P., Karp, C., and IAB, "Review and [RFC4690] Klensin, J., Faltstrom, P., Karp, C., and IAB, "Review and
Recommendations for Internationalized Domain Names Recommendations for Internationalized Domain Names
(IDNs)", RFC 4690, September 2006. (IDNs)", RFC 4690, September 2006.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008. May 2008.
[RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
skipping to change at page 32, line 34 skipping to change at page 33, line 25
<http://unicode.org/reports/tr15/>. <http://unicode.org/reports/tr15/>.
[UTR36] The Unicode Consortium, "Unicode Technical Report #36: [UTR36] The Unicode Consortium, "Unicode Technical Report #36:
Unicode Security Considerations", July 2012, Unicode Security Considerations", July 2012,
<http://unicode.org/reports/tr36/>. <http://unicode.org/reports/tr36/>.
[UTS39] The Unicode Consortium, "Unicode Technical Standard #39: [UTS39] The Unicode Consortium, "Unicode Technical Standard #39:
Unicode Security Mechanisms", July 2012, Unicode Security Mechanisms", July 2012,
<http://unicode.org/reports/tr39/>. <http://unicode.org/reports/tr39/>.
URIs 12.3. URIs
[1] <http://unicode.org/Public/UNIDATA/PropertyAliases.txt> [1] http://unicode.org/Public/UNIDATA/PropertyAliases.txt
[2] <http://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt> [2] http://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
Appendix A. Codepoint Table Appendix A. Codepoint Table
If one applies the property calculation rules from Section 8 to the If one applies the property calculation rules from Section 8 to the
code points 0x0000 to 0x10FFFF in Unicode 6.3, the result is as shown code points 0x0000 to 0x10FFFF in Unicode 6.3, the result is as shown
in the following table, in Unicode Character Database (UCD) format. in the following table, in Unicode Character Database (UCD) format.
The columns of the table are as follows: The columns of the table are as follows:
1. The code point or codepoint range. 1. The code point or codepoint range.
2. The assignment for the code point or range, where the value is 2. The assignment for the code point or range, where the value is
one of PVALID, DISALLOWED, UNASSIGNED, CONTEXTO, CONTEXTJ, or one of PVALID, DISALLOWED, UNASSIGNED, CONTEXTO, CONTEXTJ, or
FREE_PVAL (where the latter includes ID_DIS). FREE_PVAL (where the latter includes ID_DIS).
3. The name or names for the code point or range. 3. The name or names for the code point or range.
This table is non-normative, is included only for illustrative This table is non-normative, is included only for illustrative
purposes, and applies only to Unicode 6.3, not to past or future purposes, and applies only to Unicode 6.3, not to past or future
versions of Unicode. Please note that the strings displayed in the versions of Unicode. Please note that the strings displayed in the
third column are not necessarily the formal name of the code point third column are not necessarily the formal name of the code point
skipping to change at page 63, line 23 skipping to change at page 64, line 19
Martin Duerst, Patrik Faltstrom, Ted Hardie, Joe Hildebrand, Bjoern Martin Duerst, Patrik Faltstrom, Ted Hardie, Joe Hildebrand, Bjoern
Hoehrmann, Paul Hoffman, Jeffrey Hutzelman, Simon Josefsson, John Hoehrmann, Paul Hoffman, Jeffrey Hutzelman, Simon Josefsson, John
Klensin, Alexey Melnikov, Takahiro Nemoto, Yoav Nir, Mike Parker, Klensin, Alexey Melnikov, Takahiro Nemoto, Yoav Nir, Mike Parker,
Pete Resnick, Andrew Sullivan, Dave Thaler, Yoshiro Yoneya, and Pete Resnick, Andrew Sullivan, Dave Thaler, Yoshiro Yoneya, and
Florian Zeitz. Florian Zeitz.
Some algorithms and textual descriptions have been borrowed from Some algorithms and textual descriptions have been borrowed from
[RFC5892]. Some text regarding security has been borrowed from [RFC5892]. Some text regarding security has been borrowed from
[RFC5890] and [I-D.ietf-xmpp-6122bis]. [RFC5890] and [I-D.ietf-xmpp-6122bis].
Peter Saint-Andre wishes to acknowledge Cisco Systems, Inc., for
supporting his work on earlier versions of this document while he was
employed there.
Authors' Addresses Authors' Addresses
Peter Saint-Andre Peter Saint-Andre
Cisco Systems, Inc. &yet
1899 Wynkoop Street, Suite 600
Denver, CO 80202
USA
Phone: +1-303-308-3282 Email: ietf@stpeter.im
Email: psaintan@cisco.com
Marc Blanchet Marc Blanchet
Viagenie Viagenie
246 Aberdeen 246 Aberdeen
Quebec, QC G1R 2E1 Quebec, QC G1R 2E1
Canada Canada
Email: Marc.Blanchet@viagenie.ca Email: Marc.Blanchet@viagenie.ca
URI: http://www.viagenie.ca/ URI: http://www.viagenie.ca/
 End of changes. 37 change blocks. 
89 lines changed or deleted 113 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/