diff options
Diffstat (limited to 'doc/rfc/rfc8943.txt')
-rw-r--r-- | doc/rfc/rfc8943.txt | 273 |
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 |