[Docs] [txt|pdf|xml|html] [Tracker] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03 04 RFC 6868
Network Working Group C. Daboo
Internet-Draft Apple
Updates: 5545,6350 (if approved) August 29, 2012
Intended status: Standards Track
Expires: March 2, 2013
Parameter Value Encoding in iCalendar and vCard
draft-daboo-ical-vcard-parameter-encoding-01
Abstract
This specification updates the iCalendar and vCard data formats to
allow parameter values to include certain characters forbidden by the
existing specifications.
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 2, 2013.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Daboo Expires March 2, 2013 [Page 1]
Internet-Draft Parameter Encoding August 2012
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions Used in This Document . . . . . . . . . . . . . . . 3
3. Parameter Value Encoding Scheme . . . . . . . . . . . . . . . . 3
3.1. iCalendar Example . . . . . . . . . . . . . . . . . . . . . 4
3.2. vCard Examples . . . . . . . . . . . . . . . . . . . . . . 4
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
6. Normative References . . . . . . . . . . . . . . . . . . . . . 5
Appendix A. Change History (To be removed by RFC Editor
before publication) . . . . . . . . . . . . . . . . . 5
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 5
Daboo Expires March 2, 2013 [Page 2]
Internet-Draft Parameter Encoding August 2012
1. Introduction
The iCalendar [RFC5545] specification defines a standard way to
describe calendar data. The vCard [RFC6350] specification defines a
standard way to describe contact data. Both of these use a similar
text-based data format. Each iCalendar and vCard data object can
include "properties" which have "parameters" and a "value". The
value of a "parameter" is typically a token or URI value, but a
"generic" text value is also allowed. However, the syntax rules for
both iCalendar and vCard prevent the use of a double-quote character
or control characters in such values, though double-quote and some
subset of control characters are allowed in the actual property
values.
As more and more extensions are being developed for these data
formats, there is a need to allow at least double-quotes, line feeds
and tabs to be included in parameter values. The \-escaping
mechanism used for property text values is not defined for use with
parameter values and cannot be easily used in a backwards compatible
manner. This specification defines a new character escaping
mechanism, compatible with existing parsers and chosen to minimise
any impact on existing data.
2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
[RFC2119].
3. Parameter Value Encoding Scheme
This specification defines the ^ character (U+005E - Circumflex
Accent) as an escape character in parameter values whose value type
is defined using the "param-value" syntax element (Section 3.1 of
iCalendar [RFC5545] and Section 3.3 of vCard [RFC6350]). The
^-escaping mechanism can be used when the value is either unquoted or
quoted (i.e., whether or not the value is surrounded by double-
quotes). When used, the combination of ^ plus one other character is
interpreted as a single character as per the table below:
Daboo Expires March 2, 2013 [Page 3]
Internet-Draft Parameter Encoding August 2012
+---------------------+-------------------------------+
| Escape Sequence | Character |
+---------------------+-------------------------------+
| ^' (U+005E, U+0027) | U+0022 (Quotation Mark) |
| ^n (U+005E, U+006E) | U+000A (Line Feed) |
| ^t (U+005E, U+0074) | U+0009 (Character Tabulation) |
| ^^ (U+005E, U+005E) | U+005E (Circumflex Accent) |
+---------------------+-------------------------------+
When generating iCalendar or vCard parameter values, the characters
in the second column above MUST be escaped using the sequence from
the first column. When parsing iCalendar or vCard parameter values,
the two character sequence from the first column MUST be replaced by
the single character from the second column. If a ^ (U+005E)
character is followed by any other character than the ones above,
parsers SHOULD leave the ^ character in place.
In addition to the escaping procedure outlined above, text parameter
values MUST also have line break character sequences canonicalized
into a single line feed (U+000A) character when the parameter value
is generated. Specifically, any single carriage return character
(U+000D) or the two character combination of carriage return followed
by line feed (U+000D, U+000A) MUST be mapped to ^n in the generated
parameter value. When parsing a parameter value with ^n, clients can
replace that with the appropriate line break character sequence for
the system they are running on.
3.1. iCalendar Example
An "ATTENDEE" property with a "CN" parameter whose value includes two
double-quote characters. The parameter value is not quoted as there
are no characters in the value that would trigger quoting as required
by iCalendar.
ATTENDEE;CN=George Herman ^'Babe^' Ruth:mailto:babe@example.com
The unescaped parameter value is
George Herman "Babe" Ruth
3.2. vCard Examples
A "GEO" property with a "X-ADDRESS" parameter whose value includes
several line feed characters. The parameter value is also quoted
since it contains a comma which triggers quoting as required by
vCard.
GEO;X-ADDRESS="Pittsburgh Pirates^n115 Federal St^nPitt
Daboo Expires March 2, 2013 [Page 4]
Internet-Draft Parameter Encoding August 2012
sburgh, PA 15212":geo:40.446816,-80.00566
The unescaped parameter value is (where each line is terminated by a
line break character sequence)
Pittsburgh Pirates
115 Federal St
Pittsburgh, PA 15212
4. Security Considerations
There are no additional security issues beyond those of iCalendar
[RFC5545] and vCard [RFC6350].
5. IANA Considerations
There are none.
6. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
Core Object Specification (iCalendar)", RFC 5545,
September 2009.
[RFC6350] Perreault, S., "vCard Format Specification", RFC 6350,
August 2011.
Appendix A. Change History (To be removed by RFC Editor before
publication)
Changes in -01:
1. Tweaked vCard example line-folding.
Daboo Expires March 2, 2013 [Page 5]
Internet-Draft Parameter Encoding August 2012
Author's Address
Cyrus Daboo
Apple Inc.
1 Infinite Loop
Cupertino, CA 95014
USA
Email: cyrus@daboo.name
URI: http://www.apple.com/
Daboo Expires March 2, 2013 [Page 6]
Html markup produced by rfcmarkup 1.129b, available from
https://tools.ietf.org/tools/rfcmarkup/