summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8943.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8943.txt')
-rw-r--r--doc/rfc/rfc8943.txt273
1 files changed, 273 insertions, 0 deletions
diff --git a/doc/rfc/rfc8943.txt b/doc/rfc/rfc8943.txt
new file mode 100644
index 0000000..761a716
--- /dev/null
+++ b/doc/rfc/rfc8943.txt
@@ -0,0 +1,273 @@
+
+
+
+
+Internet Engineering Task Force (IETF) M. Jones
+Request for Comments: 8943 Microsoft
+Category: Standards Track A. Nadalin
+ISSN: 2070-1721 Independent
+ J. Richter
+ pdv Financial Software GmbH
+ November 2020
+
+
+ Concise Binary Object Representation (CBOR) Tags for Date
+
+Abstract
+
+ The Concise Binary Object Representation (CBOR), as specified in RFC
+ 7049, is a data format whose design goals include the possibility of
+ extremely small code size, fairly small message size, and
+ extensibility without the need for version negotiation.
+
+ In CBOR, one point of extensibility is the definition of CBOR tags.
+ RFC 7049 defines two tags for time: CBOR tag 0 (date/time string as
+ per RFC 3339) and tag 1 (POSIX "seconds since the epoch"). Since
+ then, additional requirements have become known. This specification
+ defines a CBOR tag for a date text string (as per RFC 3339) for
+ applications needing a textual date representation within the
+ Gregorian calendar without a time. It also defines a CBOR tag for
+ days since the date 1970-01-01 in the Gregorian calendar for
+ applications needing a numeric date representation without a time.
+ This specification is the reference document for IANA registration of
+ the CBOR tags defined.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ 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/rfc8943.
+
+Copyright Notice
+
+ Copyright (c) 2020 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
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 1.1. Calendar Dates
+ 1.1.1. Example Date Representations
+ 1.2. Comparing Dates
+ 1.3. Comparing Dates and Date/Time Values
+ 2. IANA Considerations
+ 2.1. Concise Binary Object Representation (CBOR) Tags
+ Registrations
+ 3. Security Considerations
+ 4. References
+ 4.1. Normative References
+ 4.2. Informative References
+ Acknowledgements
+ Authors' Addresses
+
+1. Introduction
+
+ The Concise Binary Object Representation (CBOR) [RFC7049] provides
+ for the interchange of structured data without a requirement for a
+ pre-agreed schema. RFC 7049 defines a basic set of data types, as
+ well as a tagging mechanism that enables extending the set of data
+ types supported via an IANA registry.
+
+ This specification defines a CBOR tag for a text string representing
+ a date without a time. The tagged text string is represented as
+ specified by the RFC 3339 [RFC3339] "full-date" production. Per RFC
+ 3339, this represents a date within the Gregorian calendar.
+
+ This specification also defines a CBOR tag for an integer
+ representing a date without a time. The tagged integer is an
+ unsigned or negative value indicating the number of days since the
+ Gregorian calendar date 1970-01-01. As an implementation note, this
+ value has a constant offset from the Modified Julian Date value
+ (which is defined by the Smithsonian Astrophysical Observatory as the
+ number of days since November 17, 1858); this value is the Modified
+ Julian Date minus 40587.
+
+ Note that since both tags are for dates without times, times of day,
+ time zones, and leap seconds are not applicable to these values.
+ These tags are both for representations of Gregorian calendar dates.
+
+1.1. Calendar Dates
+
+ Calendar dates are used for numerous human use cases, such as marking
+ the dates of significant events. For instance, John Lennon was born
+ on October 9, 1940 and died on December 8, 1980. One such use case
+ is driver's licenses, which typically include a date of birth. The
+ dates used in this specification use the Gregorian calendar, as do
+ those in RFC 3339 [RFC3339]. The time zones and actual times of
+ these events are intentionally not represented in the calendar date.
+
+ The epoch chosen for the second tag, which represents days since the
+ Gregorian calendar date 1970-01-01, is related to the IEEE Std
+ 1003.1, 2013 Edition [POSIX.1] time epoch 1970-01-01T00:00:00Z UTC
+ only insofar as both contain the date 1970-01-01. This should not be
+ construed as indicating that dates using this tag represent either a
+ specific time of day and/or time zone.
+
+ The day of the week (Sunday, Monday, Tuesday, etc.) is not explicitly
+ represented in either of these date formats. However, deterministic
+ algorithms that are beyond the scope of this specification can be
+ used to derive the day of the week in the Gregorian calendar from
+ dates represented in both of these formats.
+
+1.1.1. Example Date Representations
+
+ This table contains example representations for dates using both
+ tags.
+
+ +==================+==============+=========+
+ | Date | Tag 1004 | Tag 100 |
+ +==================+==============+=========+
+ | October 9, 1940 | "1940-10-09" | -10676 |
+ +------------------+--------------+---------+
+ | December 8, 1980 | "1980-12-08" | 3994 |
+ +------------------+--------------+---------+
+
+ Table 1
+
+1.2. Comparing Dates
+
+ Comparison of dates in "full-date" format can be accomplished by
+ normal string comparison, since, by design, the digits representing
+ the date are in fixed format and ordered from most significant to
+ least significant. Comparison of numeric dates representing days
+ since 1970-01-01 can be performed by normal integer comparison.
+ Comparison of dates in other formats or using other calendars require
+ conversions that are beyond the scope of this specification.
+
+ Note that different dates may correspond to the same moment in time,
+ depending upon the time zone in which the date was determined. For
+ instance, at many times of the day, a conference call occurring on a
+ particular date in Japan will simultaneously occur on the previous
+ date in Hawaii; at many times of the day, Japan's Friday corresponds
+ with Hawaii's Thursday.
+
+1.3. Comparing Dates and Date/Time Values
+
+ Comparing dates with date/time values, which represent a particular
+ moment in time, is beyond the scope of this specification. That
+ said, if a date is augmented with a time zone and time of day, a
+ specific date/time value can be determined, and comparing that date/
+ time value to others becomes possible. For instance, if one were to
+ augment John Lennon's birth date of October 9, 1940 with the time of
+ day and time zone of his birth, then it would be possible to derive a
+ date/time at which he was born that could be compared with other
+ date/time values.
+
+2. IANA Considerations
+
+2.1. Concise Binary Object Representation (CBOR) Tags Registrations
+
+ This section registers the following values in the IANA "Concise
+ Binary Object Representation (CBOR) Tags" registry [IANA.cbor-tags].
+
+ Tag: 1004
+ Data Item: UTF-8 text string
+ Semantics: [RFC3339] full-date string
+ Reference: RFC 8943
+
+ Tag: 100 (ASCII 'd')
+ Data Item: Unsigned or negative integer
+ Semantics: Number of days since the epoch date 1970-01-01
+ Reference: RFC 8943
+
+3. Security Considerations
+
+ The security considerations of RFC 7049 apply; the tags introduced
+ here are not expected to raise security considerations beyond those.
+
+ A date, of course, has significant security considerations. These
+ include the exploitation of ambiguities where the date is security
+ relevant or where the date is used in access control decisions.
+
+ When using a calendar date for decision making (for example, access
+ control), it needs to be noted that since calendar dates do not
+ represent a specific point in time, the results of the evaluation can
+ differ depending upon where the decision is made. For instance, a
+ person may have reached their 21st birthday in Japan while
+ simultaneously being a day short of their 21st birthday in Hawaii.
+ Similarly, it would be inappropriate to use only a date to trigger
+ certificate expiration, since a date corresponds to a range of times
+ worldwide rather than a specific point in time that is independent of
+ geographic location.
+
+4. References
+
+4.1. Normative References
+
+ [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
+ Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
+ <https://www.rfc-editor.org/info/rfc3339>.
+
+ [RFC7049] Bormann, C. and P. Hoffman, "Concise Binary Object
+ Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049,
+ October 2013, <https://www.rfc-editor.org/info/rfc7049>.
+
+4.2. Informative References
+
+ [IANA.cbor-tags]
+ IANA, "Concise Binary Object Representation (CBOR) Tags",
+ <https://www.iana.org/assignments/cbor-tags>.
+
+ [POSIX.1] IEEE, "The Open Group Base Specifications Issue 7", 2013
+ Edition, IEEE Std 1003.1, 2013,
+ <https://pubs.opengroup.org/
+ onlinepubs/9699919799.2013edition>.
+
+ [TIME-TAGS]
+ Bormann, C., Gamari, B., and H. Birkholz, "Concise Binary
+ Object Representation (CBOR) Tags for Time, Duration, and
+ Period", Work in Progress, Internet-Draft, draft-bormann-
+ cbor-time-tag-03, 9 March 2020,
+ <https://tools.ietf.org/html/draft-bormann-cbor-time-tag-
+ 03>.
+
+Acknowledgements
+
+ Thanks to Carsten Bormann for supporting creation of this
+ specification. Parts of the explanatory text in this specification
+ come from [TIME-TAGS].
+
+ Thanks to these people for reviews of the specification: Henk
+ Birkholz, Carsten Bormann, Samita Chakrabarti, Roman Danyliw, Linda
+ Dunbar, Benjamin Kaduk, Erik Kline, Warren Kumari, Barry Leiba,
+ Thiago Macieira, Francesca Palombini, Michael Richardson, Kyle Rose,
+ Jim Schaad, Juergen Schoenwaelder, Éric Vyncke, Robert Wilton, and
+ Dale Worley.
+
+Authors' Addresses
+
+ Michael B. Jones
+ Microsoft
+
+ Email: mbj@microsoft.com
+ URI: https://self-issued.info/
+
+
+ Anthony Nadalin
+ Independent
+
+ Email: nadalin@prodigy.net
+
+
+ Jörg Richter
+ pdv Financial Software GmbH
+
+ Email: joerg.richter@pdv-fs.de