<?xml version="1.0" encoding="UTF-8"?>
<metanorma xmlns="https://www.metanorma.org/ns/standoc" type="semantic" version="2.8.5" schema-version="v2.1.5" flavor="cc">
<bibdata type="standard">
<title language="en" type="main">vObject — Integrity protection for vObject, vCard and iCalendar</title>
<uri>https://www.ribose.com</uri><docidentifier primary="true" type="CalConnect">CC/CD 51002:2026</docidentifier><docnumber>51002</docnumber><date type="published"><on>2018-11-30</on></date><contributor><role type="author"/><organization>
<name>CalConnect</name>
</organization></contributor><contributor><role type="author"/><person>
<name><completename>Ronald Henry Tse</completename></name>
<email>ronald.tse@ribose.com</email></person></contributor><contributor><role type="author"><description>committee</description></role><organization>
<name>CalConnect</name>
<subdivision type="Technical committee">
<name>VCARD</name>
</subdivision></organization></contributor><contributor><role type="publisher"/><organization>
<name>CalConnect</name>
</organization></contributor><edition>1</edition><version><revision-date>2018-11-30</revision-date></version><language>en</language><script>Latn</script><status><stage>committee-draft</stage></status><copyright><from>2026</from><owner><organization>
<name>CalConnect</name>
</organization></owner></copyright><ext><doctype>standard</doctype><flavor>cc</flavor></ext></bibdata><metanorma-extension><semantic-metadata><stage-published>false</stage-published></semantic-metadata>
<presentation-metadata><toc-heading-levels>2</toc-heading-levels><html-toc-heading-levels>2</html-toc-heading-levels><doc-toc-heading-levels>2</doc-toc-heading-levels><pdf-toc-heading-levels>2</pdf-toc-heading-levels></presentation-metadata></metanorma-extension>
<boilerplate><copyright-statement>

<clause id="_bef77017-b53c-def2-a276-46401c3477ea" obligation="normative"><p id="_b7f3ba2d-6a65-4730-f156-37f812a1c1c3">© 2026 The Calendaring and Scheduling Consortium, Inc.</p>
</clause>
</copyright-statement>

<license-statement>

<clause id="_c4364fd8-2f9b-8fdb-cf27-c7a37bb0b74a" obligation="normative">
<title id="_5ad8fb30-fcae-1072-87a2-407e6b4939ec">Warning for Drafts</title>
<p id="_0426ba5a-69d0-b41e-5aa5-7bdbfb2f6938">This document is not a CalConnect Standard. It is distributed for review and         comment, and is subject to change without notice and may not be referred to as         a Standard. Recipients of this draft are invited to submit, with their         comments, notification of any relevant patent rights of which they are aware         and to provide supporting documentation.</p>
</clause>
</license-statement>

<legal-statement>

<clause id="_30bb02f9-a03f-937c-b3bb-0058ec7c185d" obligation="normative"><p id="_4997ac1f-fe23-c399-660a-4ca594a6abda">All rights reserved. Unless otherwise specified, no part of this         publication may be reproduced or utilized otherwise in any form or by any         means, electronic or mechanical, including photocopying, or posting on the         internet or an intranet, without prior written permission. Permission can         be requested from the address below.</p>
</clause>
</legal-statement>

<feedback-statement>

<clause id="_525641bf-9235-cdcb-5b80-9232a01ea9cc" obligation="normative"><p id="_9c7e0878-01cd-c6a2-8060-5caf3135b547" anchor="boilerplate-name">The Calendaring and Scheduling Consortium, Inc.</p>

<p id="_851786db-d5f1-a086-bdb1-3bd48dc4f17c" anchor="boilerplate-address">4390 Chaffin Lane<br/> McKinleyville<br/> California 95519<br/> United States of America<br/> <br/> <link target="mailto:copyright@calconnect.org"/><br/> <link target="https://www.calconnect.org">www.calconnect.org</link></p>
</clause>
</feedback-statement>
</boilerplate><preface><foreword id="_cba4890a-995b-a81e-a6c1-9599c0dfd197" obligation="informative">
<title id="_41c9fad3-d4c1-eecc-4fad-f91704acc026">Foreword</title>
<p id="_91db29d3-966d-623f-b2ae-24a44aefce0c">This document specifies an integrity checking mechanism and related properties for:</p>

<ul id="_6dde9727-fbc3-dcba-9fe7-f7ae6e2fb14f"><li><p id="_0df3a80b-fa20-97a6-df18-292932787d64">vObject (I-D.calconnect-vobject-vformat)</p>
</li>
<li><p id="_92b18e9e-e4d0-26f8-8469-727f68839cd7">vCard version 4 (vCard v4) (RFC 6350); and</p>
</li>
<li><p id="_25d98dc3-df99-45a8-030e-1ee2633495eb">iCalendar (Internet Calendaring and Scheduling Core Object Specification) (RFC 5545)</p>
</li>
</ul>

<p id="_5a9620e4-122b-848c-5bb7-83f7dd445caa">This work is produced by the CalConnect TC-VCARD and TC-CALENDAR committees.</p>
</foreword></preface><sections>
<clause id="_167d69df-d8e2-08df-0a9b-c03fe69b2540" obligation="normative">
<title id="_bb5e90a2-6631-2ccf-628c-374e6ca27595">TODOs</title>
<ul id="_ec7c905c-3aff-7383-3098-8de7ad2a327e"><li><p id="_b2178c69-0e7f-a31f-f472-13fe01884a50">Add CalDAV mechanisms and recommendations</p>
</li>
<li><p id="_9866b672-eaca-4a07-2143-2355a403851e">Fill in missing example hashes</p>
</li>
<li><p id="_4e7d40d9-64be-30d3-e22a-ceb289625203">Fully replace normalization process with the vObject one, remove normalization process here</p>
</li>
</ul>
</clause>

<clause id="_f150b73f-827b-8a1b-23c4-0a0d0982b2d6" anchor="introduction" obligation="normative">
<title id="_61998878-2bff-eff7-7263-05a3fe373b29">Introduction</title>
<p id="_f599e920-9452-0b48-79d3-2171cbfc4813">The ubiquitous vCard and iCalendar standards, also known together as the “vObject” family of standards  <eref type="inline" bibitemid="I-D.calconnect-vobject-vformat" citeas="Internet-Draft draft-calconnect-vobject-vformat-00"/>, powers digital contact exchanges, calendaring and scheduling on billions of devices today.</p>

<p id="_9950bb33-fe38-0487-29c3-dbe827d096d7">Integrity <eref type="inline" bibitemid="RFC3552" citeas="IETF RFC 3552"><display-text>2.1.2</display-text></eref> is a key property of “information security” defined as the “preservation of confidentiality, integrity and availability of information”  <eref type="inline" bibitemid="ISO-IEC-27000" citeas="ISO/IEC 27000:2018"><display-text>2.33</display-text></eref>. When provided with a vObject, however, there is no inherent method to detect its own data integrity.</p>

<p id="_b7eb162a-69fa-b5e8-bcc0-b3db2fc4ec96">In reality, people are known to exchange vCard and iCalendar data through unreliable means, which could affect data integrity during its data lifecycle:</p>

<ul id="_97d5bcdb-7f1c-64d5-f363-6434dd397d90"><li><p id="_31fd6b31-78b8-8ab3-5481-4ea53fa59750">transport of vObject data, such as over Internet mail <eref type="inline" bibitemid="RFC5322" citeas="IETF RFC 5322"/> and QR Codes  <eref type="inline" bibitemid="ISO-IEC-18004" citeas="ISO/IEC 18004:2015"/>;</p>
</li>
<li><p id="_b839fd0d-9d45-77a0-e9f8-eb00c8302e2b">storage of vObject content, such as on disk, can be subject to silent corruption.</p>
</li>
</ul>

<p id="_57839e9b-3d53-eb8d-b1d7-d81665caac3c">Previous standards were established in a time where integrity concerns were less widespread, and relied solely on data transport, application and storage integrity without considering on whether the content transmitted, processed or retrieved was as intended without modification or corruption.</p>

<p id="_9b26d824-e589-02e6-1eed-f92ad6580b09">This document specifically deals with information integrity in face of the following risks:</p>

<ul id="_c05c8728-1a70-6d02-c4f2-abd881a9ad99"><li><p id="_46ca02e0-d8d8-643a-c968-0ac13d5ac4dd">vObjects on storage may face silent corruption;</p>
</li>
<li><p id="_9fcfd0d1-9006-8f13-eb76-8c94b1882e3e">vObjects transmitted over networks or other channels may face network corruption that may go undetected by the underlying transport mechanism.</p>
</li>
</ul>

<p id="_cd766867-2d09-fbe0-9e0f-1e7419036956">The standards subject to such risks include:</p>

<ul id="_04958385-98f6-e82b-1a47-3e3505e71894"><li><p id="_ad6aab63-a881-214f-83b2-67b03e68062d">vObject <eref type="inline" bibitemid="I-D.calconnect-vobject-vformat" citeas="Internet-Draft draft-calconnect-vobject-vformat-00"/>;</p>
</li>
<li><p id="_b37a615e-0f61-14f5-1a65-023222a7a2b2">vCard versions 2.1 <xref target="vCard21"/>, 3 <eref type="inline" bibitemid="RFC2425" citeas="IETF RFC 2425"/> <eref type="inline" bibitemid="RFC2426" citeas="IETF RFC 2426"/> and 4 <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/>;</p>
</li>
<li><p id="_b7051522-4d22-b760-34e7-4ffbbb95e976">iCalendar <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>;</p>
</li>
<li><p id="_98ad6042-6c67-331d-61f4-b7f81f2a6473">Calendar Availability Extensions <eref type="inline" bibitemid="RFC7953" citeas="IETF RFC 7953"/>;</p>
</li>
<li><p id="_850fbf83-696c-c804-65a5-8e60569793e2">alternative formats for iCalendar and vCard, including xCal  <eref type="inline" bibitemid="RFC6321" citeas="IETF RFC 6321"/>, jCal <eref type="inline" bibitemid="RFC7265" citeas="IETF RFC 7265"/>, xCard  <eref type="inline" bibitemid="RFC6351" citeas="IETF RFC 6351"/>, and jCard <eref type="inline" bibitemid="RFC7095" citeas="IETF RFC 7095"/>.</p>
</li>
</ul>

<p id="_64c001a4-037c-0c8f-93a8-07fe8d9fd4f6">This document provides:</p>

<ul id="_d359ac31-fed1-6c1a-773e-6a1e37324440"><li><p id="_8d89b5d3-4261-727b-64cc-f77483ddf852">a stable mechanism to calculate vObject equivalence using cryptographic hash functions, valid across alternative representations, such as xCard/jCard and xCal/jCal;</p>
</li>
<li><p id="_290af5aa-88fb-63e4-66e4-0652d1a535f5">introduces a new property CHECKSUM to vObjects;</p>
</li>
<li><p id="_9e8212e6-dada-5c47-e6f6-807ff15cc296">usage of the CHECKSUM property on CardDAV <eref type="inline" bibitemid="RFC6352" citeas="IETF RFC 6352"/> and CalDAV <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/> systems;</p>
</li>
<li><p id="_2366b46c-2f01-1d51-a063-9cbc6dba4005">alternative representations of the CHECKSUM property for xCard <eref type="inline" bibitemid="RFC6351" citeas="IETF RFC 6351"/>, jCard <eref type="inline" bibitemid="RFC7095" citeas="IETF RFC 7095"/>, xCal <eref type="inline" bibitemid="RFC6321" citeas="IETF RFC 6321"/> and jCal <eref type="inline" bibitemid="RFC7265" citeas="IETF RFC 7265"/> representations of this property; and</p>
</li>
<li><p id="_4a9560b1-77a8-20a3-d707-366b6484b870">guidance to implementers on dealing with integrity concerns and the proper usage of CHECKSUM.</p>
</li>
</ul>

<p id="_d92ba1e2-c81a-4ac3-6cac-bde2d2b2832f">Organizations that implement information security management systems, such as  <eref type="inline" bibitemid="ISO-IEC-27001" citeas="ISO/IEC 27001:2013"/>, <strong>MAY</strong> find this document applicable to their own processes.</p>

<p id="_03b5b486-74ee-2aa6-7a4b-827b6d03c79c">The decision to update the existing vCard version 4 <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/> and iCalendar <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/> standards were chosen to maintain maximum backwards compatibility.</p>

<p id="_182af416-74ca-aaeb-2ee6-c7c6323f8961">This work is produced by the CalConnect TC-VCARD <xref target="CALCONNECT-VCARD"/> and TC-CALENDAR  <xref target="CALCONNECT-CALENDAR"/> committees.</p>
</clause>



<terms id="_abdb3807-0dfa-c45e-681c-d80af0d81f34" anchor="conventions" obligation="normative">
<title id="_dfb2eab2-f980-6365-3c47-81d0eb272962">Terms and definitions</title><p id="_dcc01114-4d03-3550-1347-4ba901bda94c">For the purposes of this document, the following terms and definitions apply.</p>
<p id="_25451577-6221-bb77-eacd-9cfca527cee3">The key words “<strong>MUST</strong>”, “<strong>MUST NOT</strong>”, “<strong>REQUIRED</strong>”, “<strong>SHALL</strong>”, “<strong>SHALL NOT</strong>”, “<strong>SHOULD</strong>”, “<strong>SHOULD NOT</strong>”, “<strong>RECOMMENDED</strong>”, “<strong>NOT RECOMMENDED</strong>”, “<strong>MAY</strong>”, and “<strong>OPTIONAL</strong>” in this document are to be interpreted as described in BCP 14 <eref type="inline" bibitemid="RFC2119" citeas="IETF RFC 2119"/> <eref type="inline" bibitemid="RFC8174" citeas="IETF RFC 8174"/> when, and only when, they appear in all capitals, as shown here.</p>

<p id="_91ddf1ed-9510-c131-b1cc-8facbbdafe04">The key words “<strong>Private Use</strong>”, “<strong>Experimental Use</strong>”, “<strong>Hierarchical Allocation</strong>”, “<strong>First Come First Served</strong>”, “<strong>Expert Review</strong>”, “<strong>Specification Required</strong>”, “<strong>RFC Required</strong>”, “<strong>IETF Review</strong>”, “<strong>Standards Action</strong>” and “<strong>IESG Approval</strong>” in this document are to be interpreted as described in  <eref type="inline" bibitemid="RFC8126" citeas="IETF RFC 8126"><display-text>4</display-text></eref>.</p>

<p id="_11b1c756-4483-ed72-0663-cc30d1ac7d8e">The definitions from <eref type="inline" bibitemid="I-D.calconnect-vobject-vformat" citeas="Internet-Draft draft-calconnect-vobject-vformat-00"/> are inherited in this document unless explicitly overridden.</p>

<term id="_59a7688e-8c1c-6256-cc82-28d3bbd97ec0" anchor="term-Definitions"><preferred><expression>
<name>Definitions</name>
</expression>
</preferred>
<definition id="_736ec151-418b-ec93-5195-b991676ae172"><verbal-definition id="_d3357840-ec27-19e6-228d-cbe7277a782a"><dl id="_9c8dcc48-8c8f-527e-8f4e-7a6f095c61db"><dt>Implementation Supported Checksum</dt>
<dd id="_578f181a-1415-7c2e-e79c-43abaa96cdd1"><p id="_7726de10-29c6-13c0-453c-1000da1fd6a3">An implementation is considered to support checksum calculation if it is able to calculate the checksum without external aid, i.e., it supports the parameters specified to calculate the checksum value.</p>
</dd>
<dt>Source Preferred Checksum Value (SPCV)</dt>
<dd id="_313fc83f-a126-3812-ed6a-31f82ba792f3"><p id="_eeea318f-8540-686a-90e1-07a6bab80114">A CHECKSUM property that includes a PREF property parameter.</p>
</dd>
<dt>Receiver Preferred Checksum Value (RPCV)</dt>
<dd id="_b8970156-3e2b-c553-2b99-58de4d4898e8"><p id="_a2130316-246f-0a97-badc-2b1cf0a4115b">The CHECKSUM property that uses the implementation’s preferred checksum parameters.</p>
</dd>
</dl></verbal-definition></definition>
 </term>
</terms>

<definitions id="_5bd6019f-6a8c-a59a-f8b0-3f6e121865fa" anchor="symbols" obligation="normative">
<title id="_610f3ffa-e840-53a4-06bc-20eb3d461dff">Symbols And Abbreviations</title>
<definitions id="_5d1e9935-32b0-9c14-4ad7-80a2720e7402" obligation="normative">
<title id="_b0c3dbb3-b9a7-8c31-7749-bc14a9835a35">Functions</title>
<p id="_72736b4d-a417-0539-c847-e2fc2cb731c9">These functions are <strong>REQUIRED</strong> and <strong>MUST</strong> be implemented for compliance to this document.</p>

<definitions id="_f35b6660-4ee1-0693-adc3-c65a55f60d17" obligation="normative">
<title id="_57cb61ed-cde5-ea53-a546-0e0299ccafdf">SORT</title>
<p id="_3e3f417a-91d8-d8a4-959d-6082903d696e">Sorts an list according to alphabetical order (A-Z).</p>
</definitions>
<definitions id="_49986cda-43d8-7dbd-d32e-b381e41f6b20" obligation="normative">
<title id="_aaa428dd-c2fd-3e1f-2b7f-804f487a10d5">LIST-TO-TEXT</title>
<p id="_36a3b040-1314-0949-024c-179ba9952604">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) containing a string representation of a list of string values, each followed by a selected delimiter character.</p>

<sourcecode id="_00d6068c-97a3-24e2-30ab-7e8dc775a3d0"><body>LIST-TO-TEXT(list, delimiter) =
  value(list, 1) + delimiter +
  value(list, 2) + delimiter +
  ...
  value(list, last-element-position(list))</body></sourcecode>


<p id="_8696f0a8-0728-5ebe-5f7c-88ab52a0be4a">where: *  <tt>+</tt> indicates concatenation; *  <tt>value(l, i)</tt> is the i-th value in the list <tt>l</tt> in string representation; *  <tt>last-element-position(a)</tt> returns the last element position of list    <tt>l</tt>.</p>
</definitions>
<definitions id="_efa23e43-77c8-84bc-0ce2-667d05708c99" obligation="normative">
<title id="_72e4b99e-1815-f5cb-d10b-41053d6e849c">PREPHASH-PROPERTY-PARAMETER-KEY</title>
<p id="_63d8130f-5ba1-02e3-f311-17f07e85f057">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized property parameter key.</p>

<sourcecode id="_e16e32a5-2a1c-e47a-84c7-a94a722782e2"><body>PREPHASH-PROPERTY-PARAMETER-KEY(parameter) = normalize(key(parameter))</body></sourcecode>


<p id="_9ab7fb3d-5f43-6b34-20b3-dfd3f672a045">where: *  <tt>+</tt> indicates concatenation; *  <tt>key(parameter)</tt> is the property parameter key; *  <tt>normalize(s)</tt> is a function that normalizes the key s.</p>
</definitions>
<definitions id="_a07ed1fd-a97f-e2a6-1a7c-6d917bf25c7a" obligation="normative">
<title id="_27c5afb4-d72d-34b8-8c59-649492716362">PREPHASH-PROPERTY-PARAMETER-VALUES</title>
<p id="_c8f5a947-2acd-e058-8375-48b4038c9955">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized property parameter values.</p>

<sourcecode id="_a1b0fd47-79a1-5d4f-bfdb-36c0e989fe69"><body>PREPHASH-PROPERTY-PARAMETER-VALUES(parameter) =
  LIST-TO-TEXT(
    SORT(
      values(parameter, 1),
      values(parameter, 2),
      ...
    ),
    ";"
  )</body></sourcecode>


<p id="_ba594996-1c22-0ce2-f6e6-f8abef958559">where: *  <tt>+</tt> indicates concatenation; *  <tt>values(parameter, i)</tt> is the i-th property parameter value in    <tt>parameter</tt>.</p>
</definitions>
<definitions id="_39f2c550-90c1-3d3a-7e68-c97df2e1a291" obligation="normative">
<title id="_c41cff96-eb56-bc00-5598-a0a23a05a0cb">PREPHASH-PROPERTY-PARAMETER</title>
<p id="_1348f6e3-689e-931c-132b-31e5a3b6f1b5">Converts a property parameter into a string, with its key and values.</p>

<p id="_ff28d950-0c01-7911-42d3-195b5f6a5bef">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) containing a sequence of zero or more list values in string format, each followed by a ‘;’ character.</p>

<sourcecode id="_4077fdf0-12f8-ac7e-161c-e92864b77b1e"><body>PREPHASH-PROPERTY-PARAMETER(parameter) =
  "{" +
    PREPHASH-PROPERTY-PARAMETER-KEY(property) + ":" +
    PREPHASH-PROPERTY-PARAMETER-VALUES(property) +
  "}"</body></sourcecode>


<p id="_17d5f41b-dbde-3f51-e8f7-6caa958adb0b">where: * + indicates concatenation.</p>
</definitions>
<definitions id="_ee556a4b-4d01-ee14-0c0c-bb46242df623" obligation="normative">
<title id="_db33e552-a870-fdeb-9b01-5d38aa3323e2">PREPHASH-PROPERTY-PARAMETERS</title>
<p id="_c88545b7-9364-5cab-7aeb-1b0e4f23aab5">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of a set of property parameters.</p>

<p id="_c82bf415-eba3-e54e-2567-50b0ae632f68">We exclude the <tt>VALUE</tt> property parameter in this calculation (such as <tt>VALUE=TEXT</tt>) as this information is represented in PREPHASH-PROPERTY-VALUE-HASHA.</p>

<sourcecode id="_dd6e37dc-233d-cf50-02d5-4090a9e54275"><body>PREPHASH-PROPERTY-PARAMETERS(property) =
  "#" +
  LIST-TO-TEXT(
    SORT([
      PREPHASH-PROPERTY-PARAMETER(parameter(property, 1)),
      PREPHASH-PROPERTY-PARAMETER(parameter(property, 2)),
      ...
    ]),
    ";"
  )</body></sourcecode>


<p id="_01218914-87cd-e960-377d-e94f79093b68">where: * + indicates concatenation; * parameters(property, i) is the i-th parameter of  <tt>property</tt>.</p>
</definitions>
<definitions id="_550661fa-d802-0cae-9bc5-f56f3b993c7d" obligation="normative">
<title id="_0661c5cf-a5cd-9133-2473-f5e0f4a65d89">PREPHASH-PROPERTY-KEY</title>
<p id="_edb438b3-61e4-e0db-67eb-580a2654f6fb">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized property key.</p>

<sourcecode id="_a442c064-a8c3-bbc9-a3f3-b9ac23044c6e"><body>PREPHASH-PROPERTY-KEY(property) = normalize(key(property))</body></sourcecode>


<p id="_0306a474-3753-8715-ac16-82cd6c25c559">where: * + indicates concatenation; * key(property) is the property key; * normalize(s) is a function that normalizes the key s.</p>
</definitions>
<definitions id="_e2d5d60e-e223-0410-8d63-29170c5b5daa" obligation="normative">
<title id="_06830c78-5907-ab09-15e5-ad3b352dfd40">PREPHASH-PROPERTY-VALUE-HASHA</title>
<p id="_b6e88a17-747b-dc69-8d05-2e1dda9ea8ac">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized property value type. Since the property value type is represented here, we exclude the  <tt>VALUE</tt> property parameter in PREPHASH-PROPERTY-PARAMETERS (such as  <tt>VALUE=TEXT</tt>)</p>

<sourcecode id="_57878e73-ae68-1eef-0844-7b41a3d0903a"><body>PREPHASH-PROPERTY-VALUE-HASHA(property) = UPCASE(type(property))</body></sourcecode>


<p id="_39189dab-a7fe-410c-1d89-4bd1d6d80cc4">where: * + indicates concatenation; * type(property) is the property value type, if not explicitly provided,   it should be filled in according to  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/>; * normalize(s) is a function that normalizes the property value type s.</p>
</definitions>
<definitions id="_5d18b850-b1ed-b5c8-c103-6ccc2ebbdcb0" obligation="normative">
<title id="_d8f8d98e-b394-7426-d104-bc8f15239ac6">PREPHASH-PROPERTY-VALUES</title>
<p id="_3a200d79-a2c9-ff7d-5067-a2e39602cfa1">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized property values.</p>

<p id="_37bf1e82-eb14-ef17-016f-5a9c61cddd17">Certain content types allow storing multiple values (as a list) in the same property line. For example, in the ADR and N properties, values are separated by the “;” delimiter, while in NICKNAME and CATEGORIES they are separated by the “,” delimiter  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>3.3</display-text></eref>.</p>

<sourcecode id="_c4c8bcc2-a938-16d3-787e-0f9a04e84b8c"><body>PREPHASH-PROPERTY-VALUES(property) =
  LIST-TO-TEXT(
    SORT(
      values(property, 1),
      values(property, 2),
      ...
    ),
    ";"
  )</body></sourcecode>


<p id="_224c486b-7af6-413b-9012-3467951341e4">where: * + indicates concatenation; * values(property, i) is the i-th property value in  <tt>property</tt>.</p>
</definitions>
<definitions id="_1d8e1f01-9e54-8ddd-e38a-63c8ea4c7da2" obligation="normative">
<title id="_09c7f17e-497a-34d7-c407-4e3bc5ab6081">PREPHASH-PROPERTY</title>
<p id="_53fa83b5-a48b-1d2c-8e49-cd03df290885">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of a single property.</p>

<sourcecode id="_c0883be7-243d-01ef-e97f-6873a37708c5"><body>PREPHASH-PROPERTY(property) =
  PREPHASH-PROPERTY-KEY(property) + ":" +
  PREPHASH-PROPERTY-VALUE-HASHA(property) + "/" +
  PREPHASH-PROPERTY-VALUES(property) + "?" +
  PREPHASH-PROPERTY-PARAMETERS(property)</body></sourcecode>


<p id="_72b25dcc-d86f-eadd-f83f-fb923c84845c">where: * + indicates concatenation</p>
</definitions>
<definitions id="_33fcb43c-3ca4-0cdf-8bc4-1297d22f5637" obligation="normative">
<title id="_6cbfd372-8d4f-7f87-285f-2ccdbf3e9789">HASH-PROPERTY</title>
<p id="_b30661df-02f4-3ba0-1754-205c2d73c16f">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of a single property.</p>

<sourcecode id="_154c1ede-888a-7764-1ad5-ca25f3b92019"><body>HASH-PROPERTY-TO-TEXT(property) =
  PREPHASH-PROPERTY-KEY(property) + ":" +
  HASH(PREPHASH-PROPERTY(property)</body></sourcecode>


<p id="_f00cae4b-1b2a-1281-4028-380bac78ecb8">where: * + indicates concatenation</p>
</definitions>
<definitions id="_8f9965f1-50ae-7ac2-261f-70463059a79e" obligation="normative">
<title id="_6f87c377-5488-246b-1b19-1ac35bf4057d">HASH-AND-PREPHASH-PROPERTIES</title>
<p id="_d7ffb853-ac2f-d101-12ea-a55f9bb06d42">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of a set of properties.</p>

<sourcecode id="_92d09d10-abcd-b938-62e1-7892bf9afb32"><body>HASH-AND-PREPHASH-PROPERTIES(properties) =
  LIST-TO-TEXT(
    SORT([
      HASH-PROPERTY(property(properties, 1)),
      HASH-PROPERTY(property(properties, 2)),
      ...
    ]),
    CRLF
  )</body></sourcecode>


<p id="_b0b516bd-1134-bcb1-288d-9fbf58624bea">where: * + indicates concatenation; * property(properties, i) is the i-th property of  <tt>properties</tt>; * HASH(s) is selected cryptographic hash function applied to string  <tt>s</tt>.</p>
</definitions>
<definitions id="_5ec45219-2a7b-aedf-3db2-c1a7ecd39e66" obligation="normative">
<title id="_d0dd30e5-67a7-57ba-586e-e6dbb24ce037">PREPHASH-COMPONENT-NAME</title>
<p id="_9f667954-66b3-9b36-cfd0-c5e48c558f88">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of the normalized vObject name.</p>

<sourcecode id="_56847a2e-e350-ece6-aab5-e0e090a995fa"><body>PREPHASH-COMPONENT-NAME(component) = normalize(name(component))</body></sourcecode>


<p id="_18bc7fa7-295b-deb0-11d2-01b4818c664e">where: * name© is the component name of component  <tt>c</tt>.</p>
</definitions>
<definitions id="_671371b5-f815-2e06-9e9b-81818bd43355" obligation="normative">
<title id="_5dc6c451-001c-0f89-329f-7499b6d7471f">PREPHASH-COMPONENT</title>
<p id="_af78f15c-569e-8b7c-4140-fd2abaf3ed5d">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) representation of a vObject. The similarity of this representation with the vObject structure is intentional for readability purposes.</p>

<sourcecode id="_319bed0d-5d05-ecbc-8e55-eae8e42e9519"><body>PREPHASH-COMPONENT(component) =
  "BEGIN:" + PREPHASH-COMPONENT-NAME(component) + ":CHECKSUM" + CRLF +
    HASH-AND-PREPHASH-PROPERTIES(properties(component)) + CRLF +
  "END:" + PREPHASH-COMPONENT-NAME(component) + ":CHECKSUM"</body></sourcecode>


<p id="_ee5061f0-fa64-46f1-27b4-49eb86c46e92">where: * + indicates concatenation; * properties© returns the properties of the component  <tt>c</tt> in an list;</p>
</definitions>
<definitions id="_7d580dbe-140c-d2db-4650-7b9d741afcb6" obligation="normative">
<title id="_5cf31f48-6df6-cf32-e192-7913c0a8ab8d">HASH-COMPONENT</title>
<p id="_b801a454-f565-8b45-a9ea-6d762918b9c8">This function returns a Unicode string (<eref type="inline" bibitemid="RFC8259" citeas="IETF RFC 8259"><display-text>7</display-text></eref>) as the output of a selected cryptographic hash function applied on a vObject.</p>

<sourcecode id="_3ec51125-41df-159b-fc4d-00c6768a2cd4"><body>HASH-COMPONENT(component) = HASH(PREPHASH-COMPONENT(component))</body></sourcecode>

</definitions>
<definitions id="_a5da7bf4-edf2-81c7-7372-6a5641412669" obligation="normative">
<title id="_53696e96-6523-5185-10e7-bc5a6538fafd">HASH</title>
<p id="_c5fc8138-712f-2140-5eb7-eafa206372a3">This function returns the calculated hash of an input string and outputs the hash in string representation.</p>

<sourcecode id="_756d4edd-0e4e-50b0-4c22-b201727dcc84"><body>HASH(string) = generate-hash-function(
                 selected-hash-function,
                 selected-hash-parameters
               )(string)</body></sourcecode>


<p id="_860d6dba-448d-1ea0-8ffd-cd5d95fab446">where: *  <tt>generate-hash-function(a, p)</tt> creates a new cryptographic hash function   that uses the hash algorithm  <tt>a</tt> with algorithm parameters <tt>p</tt> which   takes a string input and generates the hash using a string output; *  <tt>selected-hash-function</tt> is the selected cryptographic hash algorithm   selected by the user (and/or CUA); *  <tt>selected-hash-parameters</tt> are the selected parameters for the   selected cryptographic hash function by the user (and/or CUA), and   could be different per algorithm.</p>
</definitions></definitions></definitions>
<clause id="_7fd7cb02-af95-a862-59f6-45ad26d13bf3" anchor="properties" obligation="normative">
<title id="_51214e28-8cfe-ae50-f1ed-6f50f9401169">Properties</title>
<p id="_19256f79-e701-93c3-7245-acfdd9eb1f43">Property cardinalities are indicated in the same method as provided by <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/> based on ABNF <eref type="inline" bibitemid="RFC5234" citeas="IETF RFC 5234"><display-text>3.6</display-text></eref>.</p>

<clause id="_2c3d119a-6b0b-d93f-7b9f-d492d0a0b4e0" anchor="property_checksum" obligation="normative">
<title id="_bd66d6f7-fd53-089d-afa9-fae95f796c0a">CHECKSUM</title>
<p id="_5644ea69-4945-44e0-5300-25b531a814ab">These registration details for the CHECKSUM property adhere to rules specified in  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.2.1</display-text></eref>.</p>

<clause id="_25b94f8b-ca2f-8989-41e9-f18456042b9a" obligation="normative">
<title id="_2a29aea3-9a0b-b70c-7ef6-000cb172505d">Namespace</title>
<p id="_ab79c50e-e696-1f33-844f-dd9d611b967a">Nil.</p>
</clause>

<clause id="_185759c3-dcb2-a28b-97a5-6633708e4bb9" obligation="normative">
<title id="_76ee9195-baab-48bc-0d9c-9657f19e2dd9">Property name</title>
<p id="_957cb039-22d1-4219-e7ed-e7ed3035b583">CHECKSUM</p>
</clause>

<clause id="_cb2a2fc3-3aa0-eda9-e845-70bffaeda818" obligation="normative">
<title id="_c592bcc7-6839-e0cc-ed4b-8d47ae585d7e">Purpose</title>
<p id="_54ea4f81-5dc9-859f-bf3e-525d9a5abf41">Allows content integrity detection and verification against data corruption of a vObject.</p>
</clause>

<clause id="_5571e47f-1d01-9355-9d3d-7631dd431601" obligation="normative">
<title id="_2b7d826a-99ce-9c47-d864-d94b76ee434e">Value type</title>
<p id="_f3b8a0e6-5762-627b-5ddd-83d1e662698c">A single text value.</p>
</clause>

<clause id="_185dbf04-774c-aa71-bf58-612b500cd148" obligation="normative">
<title id="_d44a488e-3a7d-40a6-3058-b5bbd1d8aac9">Cardinality</title>
<p id="_11573714-92e7-8db5-2337-48c6b73f635b"><tt>*</tt></p>
</clause>

<clause id="_c38836ae-e30e-2f46-cc07-8d853e43f258" obligation="normative">
<title id="_51db10c3-11bd-557d-7d43-d4be0391a05a">Property parameters</title>
<p id="_195a3f0f-d933-5e4a-1199-3b2bf55e89db">HASHA, HASHP</p>
</clause>

<clause id="_20fc88b1-1ee6-9e9e-1000-a809642a2dc4" obligation="normative">
<title id="_0c7f17d9-a0bd-abfe-0c7e-fab8ecec5e39">Value</title>
<p id="_3cd2993b-4eea-955a-4dfe-6b86e23ac965">TEXT</p>
</clause>

<clause id="_36032635-462e-d1a9-59d3-4e7cba6dae96" obligation="normative">
<title id="_b91aa0c9-d2bb-af6a-b029-da3c24ea8351">Description</title>
<p id="_b3809b56-b32b-ba8d-0fcf-4e8a59647770">CHECKSUM is an <strong>OPTIONAL</strong> property of a vObject. There can be multiple CHECKSUM properties within the same vObject. vObject client implementations are  <strong>RECOMMENDED</strong> to implement CHECKSUM for a basic level of integrity guarantee.</p>

<p id="_cd819aec-3ac7-03d5-ccd5-0bed4e90b50c">The CHECKSUM value used to compare the checksum of data should be selected in this way:</p>

<ul id="_c84f5110-bf9b-e1e7-f880-cf79b114e9f5"><li><p id="_4fd4de66-55cb-1d13-3a5c-96d7bab95b9a">the highest PREF value among all CHECKSUM properties; then</p>
</li>
<li><p id="_e6fc0d5f-05df-b0cf-3673-2901d3563995">the most applicable HASHA algorithm taking into account collision resistance and application support.</p>
</li>
</ul>
</clause>

<clause id="_3ec27dc0-109b-a08b-b149-302c224dee59" obligation="normative">
<title id="_8135e9af-1ad5-4f94-84a6-491c5e5974e8">Format definition</title>
<p id="_dee0f7e6-29a5-0efd-6618-508c51771630">ABNF:</p>

<sourcecode id="_bb6bb2f2-d05d-de72-a81e-84e45558a10b"><body>CHECKSUM-param =  "VALUE=text"
CHECKSUM-param =  pid-param / pref-param / altid-param /
                  checksum-param-hasha / checksum-param-hashp /
                  iana-token

CHECKSUM-value = TEXT
  ; Value type and VALUE parameter MUST match.</body></sourcecode>

</clause>

<clause id="_d9117e1d-b872-7d42-efd9-e29822fbb725" anchor="property_checksum_examples" obligation="normative">
<title id="_a22a7de3-cabb-8a6a-0e14-81beb6fc9868">Examples</title>
<sourcecode id="_1af45ddf-4b51-8f7b-7e3a-63712f123f40"><body>CHECKSUM:
  ad58ca4f14b317dea48987f4991bdcd56fdf0f6a95049623f0fe5c4453d157e0

CHECKSUM;PREF=99:
  3ac0e03cccda6663ed32052749cc5c607d88e381f9cfcb795317bc39a57909e3

CHECKSUM;HASHA=sha224:
  22e92efac9d7b0e63695a9d960376ace1e69eb317e3d42c5c94f1401</body></sourcecode>

</clause>
</clause>
</clause>

<clause id="_7e6beab5-65ec-5199-ff48-c7795306fa6d" anchor="property_parameters" obligation="normative">
<title id="_38aae3f3-673e-8636-d693-52ea6895e384">Property Parameters</title>
<p id="_658d3508-f624-2679-6c29-c77d1d50aa8f">The CHECKSUM allowed property parameters of <tt>PID</tt>, <tt>PREF</tt>, <tt>ALTID</tt> have the same meaning as on other properties  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/>.</p>

<clause id="_1fd5be71-fdf5-95cd-c3e8-cf562cd50bbe" obligation="normative">
<title id="_0c0be683-cc3d-e78a-2274-afb654fbc1f6">PREF Property Parameter</title>
<p id="_d47788bf-352a-3952-62e7-31d9eb33bac6">The <tt>PREF</tt> property parameter indicates the preference of the vCard author on which CHECKSUM value to put most weight on.</p>

<p id="_4e6bdb5c-326b-8bf5-9471-fb64b6b0e7ca">Usage of this parameter is further explained in <xref target="checksum_validation"/>.</p>
</clause>

<clause id="_49f470b8-e05f-32ad-5988-19adc4f86bb5" anchor="parameter_hasha" obligation="normative">
<title id="_dffe9965-9fbd-007a-58b1-cb42c411e074">HASHA Property Parameter</title>
<p id="_d40e3b9b-4a37-48fa-d9d2-7854b4456ea9">Registration details for the HASHA property parameter adhere to rules specified in  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.2.1</display-text></eref></p>

<clause id="_722b9b57-e022-18e4-b64c-eaa8d461f099" obligation="normative">
<title id="_4d5f380f-58c2-86ef-d9d9-b25ea8463cde">Namespace</title>
<p id="_0bf5e9ce-246c-1c9b-b285-624a1839c460">Nil.</p>
</clause>

<clause id="_d12bf36c-8746-1ce5-68ea-90f0b01b5ad4" obligation="normative">
<title id="_56ed368f-ce5e-d2fc-78c5-b7cf5c05fb13">Parameter name</title>
<p id="_fe32c926-bb71-4418-4ffd-e060daf481fd">HASHA</p>
</clause>

<clause id="_c03b79e8-1bd1-6901-8396-ec52b0f5febb" obligation="normative">
<title id="_5ffb6426-990c-1adb-4bbe-2e64070a044a">Purpose</title>
<p id="_0d0b4e3c-848b-b53f-a9a5-fdd4aa8467db">Specify the hash function used for the property value</p>
</clause>

<clause id="_e1755d5f-d6a5-2c98-2d19-1f832769e212" obligation="normative">
<title id="_5375b0a9-bc5b-2121-4c58-b4055455932b">Description</title>
<p id="_4edddc2c-fa3b-6e1b-22a1-49bc6cf4613c">Possible values are defined in <xref target="vc_hash_function_registry"/>.</p>

<p id="_c0a93041-2d74-c73f-2352-4dc2cf07fa63">The HASHA Property Parameter <strong>MUST</strong> not be applied on properties other than CHECKSUM unless specified.</p>

<p id="_07452fe9-c602-4571-5290-18fab20ee256">New HASHA hash functions <strong>MUST</strong> be specified in a Standards Track RFC.</p>
</clause>

<clause id="_fd77a9e7-68de-107d-6f48-75a03b0f3969" obligation="normative">
<title id="_1f834bd6-db5e-7a1d-dea6-396fa27ea71d">Format definition</title>
<p id="_6edff8d9-e647-60cd-63fa-f781e0fdb4f5">ABNF:</p>

<sourcecode id="_83ea1fc6-e69b-d169-2390-8d226f58f9f4"><body>hasha-param = "HASHA=" hasha-value *("," hasha-value)

hasha-value = "sha3-256" / iana-token / x-name
; This is further defined in &lt;&lt;checksum_functions&gt;&gt;</body></sourcecode>

</clause>

<clause id="_80b7b9d9-8ccc-f942-98a8-080333e2e2fa" obligation="normative">
<title id="_ba11d186-7e75-f075-f516-89dfd84c3f63">Examples:</title>
<sourcecode id="_ec758cb4-639a-0e16-5d3e-042957ab573c"><body>CHECKSUM;HASHA=sha384:
  4055b176af753e251bc269007569c8f9633e6227a5f9727381cfba0bbb44a0c9
  25b8d31d72083d9cb4dc1da278f3a4e4</body></sourcecode>


<sourcecode id="_ba28429d-b2be-1a14-144a-2e3b51386d75"><body>CHECKSUM;HASHA=streebog256:
  TODO</body></sourcecode>

</clause>
</clause>

<clause id="_c8631c63-d3f0-3504-f68a-4f81a5a789e3" anchor="parameter_hashp" obligation="normative">
<title id="_2d95e1fe-9ea5-cdb4-db6c-5ddd6fadf011">HASHP Property Parameter</title>
<p id="_a7a931cb-2018-4c12-b09d-41f1b4098b26">Certain hash functions such as extendable output functions (XOFs) can be customized:</p>

<ul id="_3608b8b9-1ce2-4aba-0e43-00292667835c"><li><p id="_54fbf9e4-d93c-47df-249c-d10ec454ff4a">SHAKE-128, SHAKE-256, cSHAKE-128, cSHAKE256, ParallelHash128, ParallelHash256 support customizable hash value length.</p>
</li>
<li><p id="_b7b5be4c-20c8-404e-13aa-eb3eb4a7d298">cSHAKE-128, cSHAKE-256, support function name customization.</p>
</li>
<li><p id="_ce741478-f2c1-4680-0081-333c120a896a">cSHAKE-128, cSHAKE-256, ParallelHash128, ParallelHash256 support customizable bit strings.</p>
</li>
<li><p id="_fcc62b6f-ea3a-5b5f-4253-e4f1364de7e1">ParallelHash128, ParallelHash256 support customizable block sizes for parallel hashing.</p>
</li>
</ul>

<p id="_c303f7a3-56b2-1821-e025-63e9c5e2b462">Since each hash function may take different specifiers, each hash function identifier  <strong>MAY</strong> specify its own set of HASHP specifiers in a particular order. The parameter value(s) entered  <strong>MUST</strong> conform to the hash function’s specification in a Standards Track RFC. An implementation  <strong>MUST</strong> follow the value type interpretation specified for the hash function.</p>

<p id="_db436f91-cfbe-1a0b-3f5e-3df034a8a1d3">For example, in <xref target="supported_table"/>, the cSHAKE-128 algorithm (with the identifier  <tt>cshake128</tt>) takes <tt>(L, N, S)</tt> as input, where L is an integer to specify the output bit length, N is a text string representing the function name, S is a text string for customization purposes. When given a HASHP parameter value “512,address book,Orange”, for the HASHA identifier  <tt>cshake128</tt>, the implementation <strong>MUST</strong> recognize that L is the integer 512, N is the string “address book”, and S is the string “Orange”.</p>

<p id="_fd159ebb-7689-7bab-4135-3826f7e15db6">Registration details for the HASHP property parameter adhere to rules specified in  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.2.1</display-text></eref></p>

<clause id="_1aaef470-396d-b2fb-c3c8-7dcadb11a124" obligation="normative">
<title id="_762d97fb-469a-f58f-603e-ca8c7bd6f443">Namespace</title>
<p id="_2fd87ebe-f922-4a53-d35e-60cba70bf993">Nil.</p>
</clause>

<clause id="_497c64c1-db7f-92d7-4083-25c4a51525c3" obligation="normative">
<title id="_107d52cc-6ca7-3371-880a-8d2756b9ceca">Parameter name</title>
<p id="_24451e41-1a85-656b-6067-8a19ada9700d">HASHP</p>
</clause>

<clause id="_4ee4d032-5191-73d5-c072-aa652e5115a2" obligation="normative">
<title id="_d140bb92-8e77-1bab-7576-bfeee8d84d6f">Purpose</title>
<p id="_59c1fd2b-b1ff-70e0-0e6e-8a30e8fef11b">Describe hash function specifiers used for the property value.</p>
</clause>

<clause id="_b94e7882-8f15-039d-619e-94db1eef8ae4" obligation="normative">
<title id="_1cb4aab2-7659-c717-13e0-120ee8fa8372">Description</title>
<p id="_ce24784c-654f-08c1-e35f-d158d0dbb2cf">Provide specifiers for the HASHA hash function used to calculate the property value.</p>

<p id="_84617bec-1a51-2a47-c7d6-1f6db7eb4e21">Possible values are defined in <xref target="vc_hash_function_specifier_registry"/>.</p>

<p id="_354959f0-7e5e-c58b-eb93-6d0fc756ab29">The HASHP Property Parameter <strong>MUST</strong> not be applied on properties other than CHECKSUM unless specified.</p>
</clause>

<clause id="_626ff9c1-e260-743d-bbeb-8de4acc8c894" obligation="normative">
<title id="_0fd3d780-501e-db9c-8b18-922315546e53">Format definition</title>
<p id="_e70a255f-9894-d863-ef7b-a3edaa08dc7e">ABNF:</p>

<sourcecode id="_8aeb33d9-73c0-3049-47df-b750bbf6f050"><body>hashp-param = "HASHP=" hashp-value *("," hashp-value)

hashp-value = param-value
; This list of values must be specified in the exact order and value
  type defined in &lt;&lt;supported_table&gt;&gt;</body></sourcecode>


<p id="_c6524f05-468a-f1ee-fa38-f558ff74baa5">Example(s):</p>

<sourcecode id="_8f4783b8-6b11-5e48-42e9-e22b9505e485"><body>CHECKSUM;HASHA=shake128;HASHP=512,"Directory Service Identifier":
  TODO</body></sourcecode>


<sourcecode id="_59e7ba16-a3f5-8953-47fa-9dffaf430f65"><body>CHECKSUM;HASHA=parallelhash128;HASHP=64,512:
  TODO</body></sourcecode>

</clause>
</clause>
</clause>

<clause id="_b31a8136-d9fb-4dcf-0f72-ecd62d924470" anchor="checksum_validation" obligation="normative">
<title id="_083ecfae-6c6c-fca6-dba2-020d0fa295c6">Integrity Validation</title>
<clause id="_42a48bec-84d5-0c5c-d190-0ddf25f532ed" obligation="normative">
<title id="_ee19f014-4443-fe78-6bb4-a21770fb461f">Integrity In The vObject Life Cycle</title>
<p id="_708fae16-a1d2-46db-ae52-bfa1bf76bb8a">Data integrity is important during storage and transmission of a vObject.</p>

<p id="_6700bb4f-4989-eaf2-c945-a9132b9130b5">If an implementation stores vObjects directly on disk or in memory, it is  <strong>RECOMMENDED</strong> that:</p>

<ul id="_5a731c3c-8a58-839a-b7d5-0a830061e07e"><li><p id="_9f621203-667e-6e2b-3178-fd3088301f1b">Immediately prior to saving on target medium, a CHECKSUM is calculated and stored; and</p>
</li>
<li><p id="_0ee23c52-d0a3-9fb5-63fe-47b8443c5991">Immediately after retrieval from target medium, the included CHECKSUM is verified to ensure that it has not been corrupted.</p>
</li>
</ul>

<p id="_5de92f8b-ac03-a085-285a-5a255313837c">An implementation that supports CHECKSUM <strong>MUST</strong> adhere to the following rules:</p>

<ul id="_78191cd2-0219-6a45-c2ee-5f4f1049518f"><li><p id="_6cefa3e9-4939-f3d6-93d1-8c26fcb58887">If it supports importing of vObjects (including network import), it <strong>MUST</strong> verify the provided CHECKSUM property value immediately prior to import to ensure the vObject has not been damaged.</p>
</li>
<li><p id="_7401b875-42f0-4d72-38a1-e39f61889084">If it supports exporting of vObject (including network export), it <strong>MUST</strong> insert at least one CHECKSUM property with corresponding checksum values to the vObject immediately prior to exporting, to ensure the recipient of the vObject can check against data integrity.</p>
</li>
</ul>
</clause>

<clause id="_0052efd6-ffa6-1ccf-cf7c-471422952704" obligation="normative">
<title id="_fdff9477-142f-ce46-a2b1-72f7abebbc17">vObject Validity States</title>
<p id="_1e5cc676-c0a7-d7db-2999-b9b542a9431d">There are 3 validity states of a vObject:</p>

<dl id="_679f2103-2fe2-0c18-c57a-daa34045fe91"><dt>Valid</dt>
<dd id="_9124b311-daab-ae62-5d5c-2891a2972c91"><p id="_eedf9c9a-9c50-8960-fff2-dcb87babf3bd">This vObject is not corrupt.</p>
</dd>
<dt>Invalid</dt>
<dd id="_f4022a62-28ba-508b-6a66-a9fb27283728"><p id="_b402c19f-83f9-0250-4f1f-301d3e519da0">This vObject is corrupt.</p>
</dd>
<dt>Unable to determine</dt>
<dd id="_67cf81d9-e338-d158-a72b-0677f50c0111"><p id="_d1ff5645-c38f-5c7e-2d5f-bcb4c522b409">This vObject does not provide enough information to make a validity judgement.</p>
</dd>
</dl>
</clause>

<clause id="_183b0b26-934e-20b4-4763-09df6ba9c974" obligation="normative">
<title id="_b93dc662-041c-428e-793b-3b30ed327537">Integrity Validity When Presented With A Single CHECKSUM Property</title>
<p id="_ddd4aaf7-211b-9914-f5f4-f8f6ec347719">Given one CHECKSUM property, an implementation that supports the CHECKSUM property  <strong>SHOULD</strong> reach the following conclusions about the vObject:</p>

<ul id="_f2328963-3268-b2df-8845-01abf81ea0b9"><li><p id="_68c837a0-20e3-0270-490f-298e297d866a">Valid. The vObject is intact. Calculation by the implementation of the vObject’s CHECKSUM property value was identical to the provided checksum value.</p>
</li>
<li><p id="_c8b70742-bdcf-aed1-0d15-a4c7a112595d">Invalid. The vObject is corrupted. Calculation by the implementation of the vObject’s CHECKSUM resulted in a different value as the provided checksum value.</p>
</li>
<li><p id="_d32bb222-70ea-cd05-771e-2f846ffda147">Unverified. The implementation is unable to determine data integrity of the vObject.</p>
<ul id="_89562352-1157-74c7-be5c-9072fd43ec11"><li><p id="_58c66a23-97bd-f2cf-7684-3b581cfff644">The vObject did not have a CHECKSUM property and therefore its data integrity cannot be verified.</p>
</li>
<li><p id="_361f8397-4a73-6cac-458d-25028dab8ba9">The vObject had a CHECKSUM property with a blank value and therefore its data integrity cannot be verified. This also signifies that the originator implementation was not able to calculate a CHECKSUM value.</p>
</li>
<li><p id="_27657825-a959-492c-20b8-c7307eb52ea9">The vObject had a CHECKSUM property with a value but the current implementation does not support the chosen hash function, therefore its data integrity cannot be verified.</p>
</li>
</ul>
</li>
</ul>
</clause>

<clause id="_c17d7ba5-f635-498d-3189-dae0fa64d199" obligation="normative">
<title id="_f8bea804-da78-8f8f-b46a-37d57ced80af">Integrity Validity When Presented With Multiple CHECKSUM Properties</title>
<p id="_1372ecfb-4d68-6f51-4ecb-5828a83f101c">If a vObject has more than one non-empty CHECKSUM property, an implementation should validate according to the rules below.</p>

<ol id="_4461acd5-b5cd-9ec1-3ac7-b73f30480d23" type="arabic"><li><p id="_83cb45d8-6008-0c0b-7a5e-ca949a2210e4">In the order of preference stated (PREF parameter value), validate all supported SPCV until one is verified.</p>
<ul id="_7db3dad5-dbad-fd58-ea26-89af37cea4ec"><li><p id="_7425c912-3ced-1540-7de3-a460d3b90f8f">If a vObject can be validated to any SPCV, it is deemed valid.</p>
</li>
<li><p id="_07d5ec58-e4d4-d8bc-7603-ab5872d3492b">If all SPCVs are invalid, the vObject fails validation.</p>
</li>
</ul>
</li>
<li><p id="_f727b803-99b9-9740-8279-53a5f0c16742">If a vObject does not have any SPCV, or the implementation does not support any SPCV, but contains a supported CHECKSUM property</p>
<ul id="_ca12ad42-b6e5-62ae-8665-896863a7f60a"><li><p id="_2ef0bac5-88cb-151e-2512-443cbe27a474">If the CHECKSUM property value is valid, the vObject is deemed valid.</p>
</li>
<li><p id="_9b013e0d-a109-b810-a556-07cea6967745">Otherwise, the vObject fails validation.</p>
</li>
</ul>
</li>
</ol>
</clause>
</clause>

<clause id="_5a98b608-1aae-5253-4ac7-80050e3c3251" obligation="normative">
<title id="_6d08c8fd-a2cc-e05e-eae6-be9d6ea646d1">Method of CHECKSUM Value Calculation</title>
<p id="_b49539e7-dabb-8db4-6a18-c3ef19c69b5f">The following method to calculate CHECKSUM is devised for these desired properties:</p>

<ul id="_fb174d38-b0e3-05fb-2142-82fc3abfea86"><li><p id="_e8f124f4-e773-cfa5-3a9c-41ad6dce1678">Stable across alternative representation formats of the vCard and iCalendar, such as xCard/jCard.</p>
</li>
<li><p id="_07b13bd0-ea8d-ad41-56e5-9b8a1da07da8">Allows comparison of equivalence of content rather than formatting. E.g., addition of new-lines within a vCard and order of listed properties do not affect the resulting checksum value.</p>
</li>
</ul>

<p id="_6074c729-45dc-50dc-6397-24d317529fc3">For implementations that handle CHECKSUM, its calculation <strong>MUST</strong> be performed after all property updates including REV, which is often updated during save.</p>

<p id="_02b8ef95-4d3b-79ab-cfb2-585ff35116ca">Steps to calculate CHECKSUM:</p>

<ol id="_d2a6b6f0-88d0-2de9-6b2e-d3565a9a6bfb" type="arabic"><li><p id="_3cf9b2ea-f26c-1ab8-42e1-9878e2975085">Calculate the hash value of the vObject</p>
<ol id="_a8d01293-86ac-1616-d957-8b2ec1c99434" type="alphabet"><li><p id="_13ed31f2-699e-dc24-a5da-b07b0d16f3f0">Determine the need to add a new CHECKSUM property.</p>
<ul id="_db4f925f-5933-2199-3f19-788b675ebd58"><li><p id="_d7e1b673-137c-9383-8def-f9adc8cfc6f0">If there is no existing CHECKSUM property, add it as the last property of the vObject, with the selected cryptographic hash algorithm type and the selected hash parameters. Its value should be set to “” (empty string).</p>
</li>
<li><p id="_6252923d-cff6-ef50-fd39-27df08774ce6">If there is an existing CHECKSUM property:</p>
<ul id="_8472df69-8e38-f4f1-f300-9379963450a5"><li><p id="_95066da1-c0ee-3730-8aac-cddff6921da8">If its parameters are identical to the user’s current settings (or the CUA’s defaults), there is no need to add an extra CHECKSUM property. Set its value to “” (empty string).</p>
</li>
<li><p id="_84dc3864-d2af-0a56-2c4b-063e29d1f077">Otherwise, add the extra CHECKSUM property as described above.</p>
</li>
</ul>
</li>
</ul>
</li>
<li><p id="_58265655-f3db-b9cf-6b82-6a8d4fc189dc">Normalize the vObject in data model form (in accordance with <eref type="inline" bibitemid="I-D.calconnect-vobject-vformat" citeas="Internet-Draft draft-calconnect-vobject-vformat-00"/>)</p>
</li>
<li><p id="_f1256a19-a0c2-9cf8-8fcc-b377ce6cad11">For each normalized property (including the newly added CHECKSUM property):</p>
<ol id="_21df14d5-a6ce-8234-01ed-e56515efd00a" type="roman"><li><p id="_9862d707-178d-b24e-a11a-61b54551bd47">For each normalized property parameter:</p>
<ol id="_eea23561-5e4d-16b9-9039-45135013e0dc" type="alphabet_upper"><li><p id="_ec2f7b0c-ec9b-e16c-fb16-4f060e717710">For each normalized property parameter value:</p>
<ol id="_53694830-54f3-c227-f127-3d6ed37ccd21" type="roman_upper"><li><p id="_4e1d4549-6aea-ef3e-1bd6-be0171e6f755">Obtain pre-hash string representation of the property parameter value</p>
</li>
<li><p id="_1f5ae388-7bb0-4333-4193-bb09873a8d6e">Calculate hash value of the string representation of the property parameter value</p>
</li>
</ol>
</li>
<li><p id="_6b61623c-df8f-ad9f-e12a-6397444e56e7">Obtain pre-hash string representation of the property parameter using hashes of its property parameter values</p>
</li>
<li><p id="_b1896ee4-9126-051e-a297-0e0db6d1c564">Calculate hash value of the string representation of the property parameter</p>
</li>
</ol>
</li>
<li><p id="_0e8e4090-d8b8-ece6-f7e2-23d2349613e0">For each normalized property value:</p>
<ol id="_e189e6f0-031c-000d-8bb5-1bd913c2aad4" type="alphabet_upper"><li><p id="_9dfe7fcf-9a69-9dac-0684-744582701c05">Obtain pre-hash string representation of the property value</p>
</li>
<li><p id="_5cd67fa9-9c62-1e41-3af1-042dc6df6160">Calculate hash value of the string representation  of the property value</p>
</li>
</ol>
</li>
<li><p id="_217bdb88-3155-c2d2-fa84-f27bb4f6d512">Obtain pre-hash string representation of the property using hashes of its property values and property parameters</p>
</li>
<li><p id="_64addb39-9593-2571-7aee-1fd0b7df3b5d">Calculate hash value of the string representation of the property</p>
</li>
</ol>
</li>
<li><p id="_c5819b6c-1f38-a79f-a583-b8a81e07aec9">Obtain pre-hash string representation of the vObject itself using hashes of its properties</p>
</li>
<li><p id="_ea36fe62-062e-853c-3f5c-a168a0b1696d">Calculate hash value of the string representation of the vObject.</p>
</li>
</ol>
</li>
<li><p id="_c90b4fe0-b051-3619-73c5-cd2807ed02f7">This procedure is repeated to calculate the value for every CHECKSUM property (which may specify different cryptographic hash algorithms and parameters), with all CHECKSUM values set to “” (empty string) for calculation consistency.</p>
<ul id="_3938f2a5-6862-3a32-f3d5-e88c6e115d5c"><li><p id="_5ba14e67-04ae-3f9b-a6c8-c2e6f67ae879">If the implementation is unable to calculate the CHECKSUM due to unsupported or unrecognized parameters of a CHECKSUM property, assign the “” (empty string) as its value.</p>
</li>
</ul>
</li>
<li><p id="_4f2f2036-06f5-84b4-2826-c629df8267f6">Enter the calculated CHECKSUM value for each CHECKSUM property.</p>
</li>
<li><p id="_f7174916-ad67-b964-796d-178adafe54ca">The checksum calculation procedure is complete.</p>
</li>
</ol>
</clause>

<clause id="_624017fd-1a16-2f5d-8b57-c4e44bc434a1" anchor="checksum_functions" obligation="normative">
<title id="_f36da761-0a7e-6033-24b2-e822cc26a296">Cryptographic Hash Functions</title>
<p id="_f36fb2a5-0457-e55f-2666-e84f02a45731">The CHECKSUM value is calculated by a chosen cryptographic hash function specified in the HASHA property parameter. Certain hash functions accept customization specifiers, which can be specified in the HASHP property parameter.</p>

<clause id="_285b8d73-b867-ba99-0aa9-6ae56ca4831b" obligation="normative">
<title id="_c8b63353-4881-07d0-081d-63a0b6ebec90">Supported Hash Functions</title>
<p id="_a83cb9d2-0ea9-6ce6-726b-86a9e8b0fdaf">CHECKSUM supports the following hash algorithms.</p>

<clause id="_8d872be1-53bb-e656-e2c5-f0d586921405" anchor="supported_table" obligation="normative">
<title id="_009675e6-07da-4af8-871a-c4401e820248">Hash Function Specifiers</title>
<p id="_110664d1-8af4-7c2b-e008-a34919d958f4">CHECKSUM supported hash algorithms are listed in the following table.</p>

<ul id="_69b6b839-2fdf-8f5e-da11-c2e83da95cba"><li><p id="_6982569c-4e1f-1be5-0696-4dd48fb02fb3">The CHECKSUM value contains the output of the hash function, which is usually stored in hexadecimal format as the  <tt>text</tt> value type.</p>
</li>
<li><p id="_19824dff-3d75-c6f4-f797-8dd7714a4b11">The identifier from this table should be put as value of the property parameter HASHA.</p>
</li>
<li><p id="_e8b2beab-9832-e1fa-0079-2809471b5a5f">Algorithms with a “Variable” message digest size mean its length can be specified by a HASHP specifier.</p>
</li>
</ul>

<p id="_36a73d9d-9026-45ba-7371-9f464060d30b">Algorithms with no specifiers:</p>

<table id="_126b0d7b-b4a1-47f2-870b-f80e5f5d7046"><thead><tr id="_f2cfa6c6-8fab-6c32-37f6-b5bc8d91d2fc"><th id="_c7205588-9731-8f19-ed7e-86c483fcab92" valign="top" align="left">Algorithm</th>
<th id="_778b5dfe-6a82-7be0-bab2-f065ade4d4d1" valign="top" align="left">Identifier</th>
<th id="_e397a5f4-ebed-4e92-b99f-2264037a3dff" valign="top" align="left">Message Digest Size (bits)</th>
<th id="_9bcab57c-c898-3877-7128-92e7461a6eda" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_b96377d5-3c59-803b-35de-f29809ccfe61"><td id="_81f1d295-99a4-ea42-a902-f53f2b4441eb" valign="top" align="left">SHA-2 SHA-224</td>
<td id="_1a472b1b-0342-5afc-a323-be67f2d7d7e4" valign="top" align="left">sha224</td>
<td id="_b8781724-c56e-185e-da83-9ac8f7d23e14" valign="top" align="left">224</td>
<td id="_882937b8-c3f8-dfab-22a2-7641833be332" valign="top" align="left"><eref type="inline" bibitemid="RFC6234" citeas="IETF RFC 6234"/>; <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 8 (SHA-224)</td>
</tr><tr id="_8b2880bc-2fbc-0e91-e8f9-21bc6f69d1ef"><td id="_0846e006-7bd0-4236-9767-36593b7e32c5" valign="top" align="left">SHA-2 SHA-256</td>
<td id="_7cfa4112-8042-1ea9-056c-8340b1b076d1" valign="top" align="left">sha256</td>
<td id="_440e2173-07e4-ccfe-81a4-9d599b49c14e" valign="top" align="left">256</td>
<td id="_8c821425-7523-b721-caf0-c3f02ed1f762" valign="top" align="left"><eref type="inline" bibitemid="RFC6234" citeas="IETF RFC 6234"/>; <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 4 (SHA-256)</td>
</tr><tr id="_bc4d7d80-51f3-e1fa-39b7-ada285993b85"><td id="_4759a149-1e3a-3aa2-4b62-b8256c159fe3" valign="top" align="left">SHA-2 SHA-384</td>
<td id="_5d23036c-9ebb-9bb3-c379-b50fda610734" valign="top" align="left">sha384</td>
<td id="_2c84811b-87e7-89a7-9c67-c0fbcf7b3604" valign="top" align="left">384</td>
<td id="_441443d4-55ed-9bb2-16d7-2f0f7494e01b" valign="top" align="left"><eref type="inline" bibitemid="RFC6234" citeas="IETF RFC 6234"/>; <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 6 (SHA-384)</td>
</tr><tr id="_e78109b8-230a-aef6-6cbd-0f925c497685"><td id="_902affe6-623c-5336-05f4-2b73f45e23e1" valign="top" align="left">SHA-2 SHA-512</td>
<td id="_0d3ef701-629b-8ffc-8afd-a8f364dcdf85" valign="top" align="left">sha512</td>
<td id="_e96f9e06-148c-0214-a122-a402b437e80f" valign="top" align="left">512</td>
<td id="_f490cdd6-4051-b008-8615-5f641e7e95ab" valign="top" align="left"><eref type="inline" bibitemid="RFC6234" citeas="IETF RFC 6234"/>; <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 5 (SHA-512)</td>
</tr><tr id="_c9a13a09-32c6-f011-05b1-6fddff0bd7a1"><td id="_d3b1741f-2088-a8b8-5ac5-c8157e338994" valign="top" align="left">SHA-2 SHA-512/224</td>
<td id="_b4eeff81-1d75-bca7-239d-10b0ef54738d" valign="top" align="left">sha512-224</td>
<td id="_29341aaf-6b2c-7ae1-530e-e900703abda6" valign="top" align="left">224</td>
<td id="_d7928350-c023-d47e-91d3-9a14ff687670" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 9 (SHA-512/224)</td>
</tr><tr id="_fc0941dd-78b7-7666-8498-91959e852e5e"><td id="_b2b6a193-fa0b-262f-8dd1-bc967558b308" valign="top" align="left">SHA-2 SHA-512/256</td>
<td id="_494417cd-c906-d093-87ff-ebf749538ece" valign="top" align="left">sha512-256</td>
<td id="_ef758ce6-1f21-5212-976b-95e5858b89e3" valign="top" align="left">256</td>
<td id="_8ce4f08c-818b-711d-c043-d66a30230b11" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 10 (SHA-512/256)</td>
</tr><tr id="_bb5fb9de-f4e4-9676-1fb4-f68a6df5ca2e"><td id="_a79dd400-6dec-1bc6-4e71-a809b0a50a66" valign="top" align="left">WHIRLPOOL</td>
<td id="_61bb5a6c-f02a-f085-9d11-de8c1dfdee55" valign="top" align="left">whirlpool</td>
<td id="_96da9b74-89a6-48a4-2d0c-e24d06b24798" valign="top" align="left">512</td>
<td id="_72cefa9d-30cf-ee11-df36-69cafc5c9e50" valign="top" align="left"><xref target="WHIRLPOOL"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 7 (WHIRLPOOL)</td>
</tr><tr id="_a612aacb-baaa-04f5-d50f-e3bfe6d66d33"><td id="_a28f394f-f985-4bd0-56a6-a65e2a8f84cb" valign="top" align="left">STREEBOG-256</td>
<td id="_0ec3a1dc-c9c6-3b84-b33e-07496fe7aa05" valign="top" align="left">streebog256</td>
<td id="_05d03122-c988-98f4-ec46-f07d198b12aa" valign="top" align="left">256</td>
<td id="_c70c80e0-e485-41e1-772c-831b55d66e99" valign="top" align="left"><xref target="STREEBOG"/> GOST R 34.11-2012; <eref type="inline" bibitemid="RFC6986" citeas="IETF RFC 6986"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 12 (STREEBOG-256)</td>
</tr><tr id="_75bc57ae-8165-1ce5-62d8-451f3ed11314"><td id="_50e8c884-89da-a865-83b5-8f198f228369" valign="top" align="left">STREEBOG-512</td>
<td id="_99ca7a23-8b25-3228-b37e-9f722bf9e9cf" valign="top" align="left">streebog512</td>
<td id="_c776564b-5cc7-73da-b8ea-69c3c5aa2830" valign="top" align="left">512</td>
<td id="_23f3994e-bbe9-1787-e941-9fbabad19d3c" valign="top" align="left"><xref target="STREEBOG"/> GOST R 34.11-2012; <eref type="inline" bibitemid="RFC6986" citeas="IETF RFC 6986"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 11 (STREEBOG-512)</td>
</tr><tr id="_9ab4f07b-e70e-32eb-d042-d721bd88424f"><td id="_96f52989-931d-8539-620f-1c2ced31dd23" valign="top" align="left">SHA3-224</td>
<td id="_d4e2b00a-8d2a-83ca-dd4a-3a8a43c76d4a" valign="top" align="left">sha3-224</td>
<td id="_fe869119-8683-8dbe-e750-cca33925c6c5" valign="top" align="left">224</td>
<td id="_dbe4e3f1-e8f1-e7cc-b013-7ac48bb13800" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 13 (SHA3-224)</td>
</tr><tr id="_9f6d31e8-a613-7c23-6197-f8e3ecd09f51"><td id="_b663dfea-840c-b6b1-853f-ea215fff6e32" valign="top" align="left">SHA3-256</td>
<td id="_f913f186-753b-00de-6b11-cfb01d5b9ae7" valign="top" align="left">sha3-256</td>
<td id="_f1dfe081-fb15-e428-4059-e4b9ee065b00" valign="top" align="left">256</td>
<td id="_61b6a324-c51b-84a8-ba34-ca1e34423861" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 14 (SHA3-256)</td>
</tr><tr id="_1377e942-9bd8-a6fc-cd6d-693827d266b3"><td id="_4c6abc8c-8aaa-0f64-c2f8-0c7d04ef8ccf" valign="top" align="left">SHA3-384</td>
<td id="_3882b8ec-f6d1-9b0d-a446-ce1daf068325" valign="top" align="left">sha3-384</td>
<td id="_ddbe62ed-cb30-e03a-a056-6849b2a5c0a4" valign="top" align="left">384</td>
<td id="_28a8f7e7-1426-4409-868b-cb733d717ea6" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 15 (SHA3-384)</td>
</tr><tr id="_c6e44b90-eb6b-402f-e105-01fe5ff36e4e"><td id="_1d8eb226-14e2-b412-81de-f2d39456e95e" valign="top" align="left">SHA3-512</td>
<td id="_2ecc6aa4-76c3-f211-5057-54792124da28" valign="top" align="left">sha3-512</td>
<td id="_6715cbce-34d2-cc69-f8ff-a61e288bebce" valign="top" align="left">512</td>
<td id="_c35283cb-d395-d408-e1f1-86cd25e50663" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 16 (SHA3-512)</td>
</tr><tr id="_e919bb03-1b5b-5585-f1a3-55ff9b566db3"><td id="_53e9945d-aa58-90c2-bce9-f0e561ee9dda" valign="top" align="left">SM3</td>
<td id="_20c5a200-0457-80fd-df99-23d2456d7784" valign="top" align="left">sm3</td>
<td id="_11b39429-788a-d7e2-cbaa-2df54daab41c" valign="top" align="left">512</td>
<td id="_3d1926d5-2100-35c4-2159-a2d008bddd1b" valign="top" align="left">&lt;&lt;?I-D.shen-sm3-hash&gt;&gt;; <xref target="SM3"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 17 (SM3)</td>
</tr><tr id="_025ba3a8-2bf6-fa50-750f-c3ff35c4fba7"><td id="_371d0def-3929-77fd-2d9d-8ebc3f790ce0" valign="top" align="left">IANA registered hash algorithm</td>
<td id="_a2f37540-392e-405c-4789-a5e89df8f716" valign="top" align="left">iana-token</td>
<td id="_25eb7424-3cf4-84d3-0365-f5338a2562a0" valign="top" align="left">iana-token</td>
<td id="_9c4dc604-2297-591b-56ef-1fd5779799bc" valign="top" align="left">IANA</td>
</tr><tr id="_d423f7b3-ac44-c1db-04eb-72d887e8470c"><td id="_2b5c95bd-6b51-4325-70df-f40f5bab2c71" valign="top" align="left">Vendor-specific hash algorithm</td>
<td id="_3c450d5b-4ad9-cae1-e9f6-cf019f7a3c0d" valign="top" align="left">x-token</td>
<td id="_e6a18cbe-1304-2579-d6ad-90df4916d85c" valign="top" align="left">Vendor specific</td>
<td id="_548a774b-41ee-473f-4e0b-cdd6387c6f69" valign="top" align="left">Vendor specific</td>
</tr></tbody>
</table>

<p id="_925506dc-6966-856d-45a1-998ac28bb5cc">Algorithms with specifiers:</p>

<table id="_544c9927-e858-a0f4-040b-954bf84dca3c"><thead><tr id="_7222349b-605f-0d97-f6b9-9acb77308750"><th id="_59ebe304-0fc0-f0cd-c417-c6c51940b9a1" valign="top" align="left">Algorithm</th>
<th id="_8a8befef-18ef-1a1c-4569-8573231cc6d3" valign="top" align="left">Identifier</th>
<th id="_579a225d-6eab-423b-1cb8-55395e3144e3" valign="top" align="left">Message Digest Size (bits)</th>
<th id="_babb4629-8d56-b500-65a2-6ac9518d5f2b" valign="top" align="left">Specifier(s)</th>
<th id="_02c6b35a-7fa4-6b2a-75d4-cc5695c3b6dc" valign="top" align="left">Description</th>
</tr></thead>
<tbody><tr id="_8523e757-7b13-3bab-8960-84f81719c8a4"><td id="_3c30866b-4e08-578c-31be-907d57233b85" valign="top" align="left">SHAKE-128</td>
<td id="_a400b86f-de45-d88d-3de2-40f2f5b5d0c1" valign="top" align="left">shake128</td>
<td id="_491606fb-1317-e3da-f944-02a1ee196fdf" valign="top" align="left">Varys</td>
<td id="_74776971-b307-373f-d973-3b56862d6666" valign="top" align="left">L: integer (default: 256)</td>
<td id="_f352a9cd-7b4d-1101-fcc9-af1cba75f462" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/></td>
</tr><tr id="_c2e4ec99-a990-11c9-9368-2284bcf7868a"><td id="_89f2cc5e-51b2-a85f-234b-2a29218c7b5a" valign="top" align="left">SHAKE-256</td>
<td id="_c9c01d84-6854-c172-0bd7-68201b61866f" valign="top" align="left">shake256</td>
<td id="_26270cef-fdf3-bc3e-5aea-888ae727b29f" valign="top" align="left">Varys</td>
<td id="_2c18cbf1-98b6-a165-abee-773e2600762e" valign="top" align="left">L: integer (default: 512)</td>
<td id="_3bce77e9-425e-4721-0e3b-740417602e74" valign="top" align="left"><eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/></td>
</tr><tr id="_76cdad86-a4fb-6ec3-375a-3f3106150d55"><td id="_32cdc850-c79d-e418-6e17-80da1eb97fd5" valign="top" align="left">cSHAKE-128</td>
<td id="_de511a62-01c9-fd0c-e5a2-75ce25bc3067" valign="top" align="left">cshake128</td>
<td id="_416729a8-fa6d-49a2-0a2a-5f1bb9a5de10" valign="top" align="left">Varys</td>
<td id="_e6a73259-076f-8150-1e8c-a6a3a57edf84" valign="top" align="left">L: integer (default: 256), N: text (default: “”), S: text (default: “”)</td>
<td id="_be450333-2296-4882-aa93-7151897d07d5" valign="top" align="left"><eref type="inline" bibitemid="NIST-SP-800-185" citeas="NIST SP 800-185 fpd"/></td>
</tr><tr id="_5b35ad81-0c07-c0b4-1e99-4754a8650f86"><td id="_4e293463-1f9c-8e4d-f43d-8602dd035085" valign="top" align="left">cSHAKE-256</td>
<td id="_90410c8b-fb0a-5ea9-4954-7f057f44fa27" valign="top" align="left">cshake256</td>
<td id="_361b3c43-0d60-58bc-21db-0bd2b31ef2c9" valign="top" align="left">Varys</td>
<td id="_243b8a92-1511-3e2f-9ede-0842ba743eb5" valign="top" align="left">L: integer (default: 512), N: text (default: “”), S: text  (default: “”)</td>
<td id="_bfc199f0-0acf-7b13-3c44-5034b7c611b5" valign="top" align="left"><eref type="inline" bibitemid="NIST-SP-800-185" citeas="NIST SP 800-185 fpd"/></td>
</tr><tr id="_5d49b269-dac5-41a3-a985-8b818c8cbe23"><td id="_85bdf9da-717c-d1be-4893-240db4323285" valign="top" align="left">ParallelHash-128</td>
<td id="_859db730-78d8-57cc-ec0a-b80870f72e8b" valign="top" align="left">parallel128</td>
<td id="_8d44ea5c-899b-d62b-5f3a-05c525e0cd55" valign="top" align="left">Varys</td>
<td id="_d5e07932-852a-01bd-7f0d-80229a9fe86d" valign="top" align="left">B: integer (default: 64), L: integer (default: 256), S: text (default: “”)</td>
<td id="_5e61a7f9-82c8-046c-43df-acd389c26bbd" valign="top" align="left"><eref type="inline" bibitemid="NIST-SP-800-185" citeas="NIST SP 800-185 fpd"/></td>
</tr><tr id="_5a100bbf-4f34-2b91-6761-a66faed7d717"><td id="_dadeed7a-9d6c-0c7d-ca3c-c2631438534c" valign="top" align="left">ParallelHash-256</td>
<td id="_4db616ae-f808-57ef-3187-c159c516d089" valign="top" align="left">parallel256</td>
<td id="_d3e24f83-b5d0-0616-c9c9-abd63f909ef0" valign="top" align="left">Varys</td>
<td id="_f70ed5ea-74f5-b107-77f6-e045a4cdadad" valign="top" align="left">B: integer (default: 64), L: integer (default: 256), S: text (default: “”)</td>
<td id="_58bae4dc-d427-22fd-ccba-1d8a158a3fe2" valign="top" align="left"><eref type="inline" bibitemid="NIST-SP-800-185" citeas="NIST SP 800-185 fpd"/></td>
</tr><tr id="_5e2ad49e-21d2-771c-7104-162b3ef3a191"><td id="_e4662a91-2985-db57-e95b-a4aa351769f9" valign="top" align="left">IANA registered hash algorithm</td>
<td id="_0dbaacd7-0779-5e9b-64ae-fbc28cc37905" valign="top" align="left">iana-token</td>
<td id="_3c71937b-bece-82e4-66eb-7ca137d9423a" valign="top" align="left">iana-token</td>
<td id="_35d0254e-b942-d7fc-fd5c-e66b9b3f0f2b" valign="top" align="left">iana-token</td>
<td id="_bf53aa30-650c-64b3-beba-60d8f7b115cf" valign="top" align="left">IANA</td>
</tr><tr id="_b16f56c0-80bc-1c43-8143-4ae0eba91056"><td id="_edd9f802-25e5-e7bb-b37a-c33443d2f813" valign="top" align="left">Vendor-specific hash algorithm</td>
<td id="_0caab687-41e9-9f39-96ef-fb1442cc1230" valign="top" align="left">x-token</td>
<td id="_53e47ca4-0881-83bd-8542-bedecefe60fd" valign="top" align="left">Vendor specific</td>
<td id="_6e1d9e73-e44e-566b-8530-b0dad6fb8df5" valign="top" align="left">Vendor specific</td>
<td id="_a29669c9-5cc5-90fc-7b82-4e285bec0a8a" valign="top" align="left">Vendor specific</td>
</tr></tbody>
</table>

<clause id="_e8d6fba5-ae89-dad5-9a2b-41d5bd286434" obligation="normative">
<title id="_1d635472-298b-a24c-0305-47c005044a49">Example</title>
<sourcecode id="_93980b82-e4d6-af0c-4ff4-b6ab5db93ef5"><body>sha3-256('BEGIN:VCARD') = "f1fcbc9bddcd44b1e50db99a277bc868" +
                          "61736eb32cb30ef7e7a2c9ef95c05d50"</body></sourcecode>


<p id="_140246a8-1075-0445-acca-1c9d1e4a73ac">The default algorithm is <tt>sha3-256</tt>.  An implementation that supports this document  <strong>MUST</strong> support at least the <tt>sha3-256</tt> function.</p>
</clause>
</clause>

<clause id="_1cc6ffe2-4a05-1b8e-2a4c-796e337390a6" anchor="checksum_sha2" obligation="normative">
<title id="_5269dd1c-bf74-7aa9-e18f-103916020012">The SHA-2 Hash Functions</title>
<p id="_bb7dbc68-b285-21a6-f224-b37c05d8287a">Secure Hash Algorithm 2 (SHA-2) is a family of secure hash algorithms defined in  <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256.</p>

<ul id="_78af2192-59b1-d2a4-b5de-85a473a76665"><li><p id="_fd002872-439b-b1a8-5ff3-f23d266d0fbd">SHA-256 and SHA-512 are the two core hash functions that differ by process parameters, which produce a hash value of 256 and 512 bits respectively.</p>
</li>
<li><p id="_73f68403-2122-fd09-17e4-6983ec2ebaa5">SHA-224 is identical to SHA-256, except that different initial hash values are used, and the final hash value is truncated to 224 bits.</p>
</li>
<li><p id="_8c1d0fca-00c4-9c36-a163-c4db417236bf">SHA-384, SHA-512/224, SHA-512/256 are identical to SHA-512, except that different initial hash values are used, and the final hash value is truncated to 384, 224, 256 bits respectively. In particular, SHA-512/224 and SHA-512/256 use initial hash values generated by the “<tt>SHA-512/t IV Generation Function</tt>” given in <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>.</p>
</li>
</ul>
</clause>

<clause id="_1bbfe91a-16c5-7866-a3e0-92ed95bd85ab" anchor="checksum_whirlpool" obligation="normative">
<title id="_55b31ace-0fe4-6379-c2e7-5df43b7893ee">The WHIRLPOOL Hash Function</title>
<p id="_5a31b012-b8c7-af6b-3f20-be497a66bf10">WHIRLPOOL is a hash function that operates on messages less than <stem block="false" type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstyle displaystyle="false">
    <msup>
      <mn>2</mn>
      <mn>256</mn>
    </msup>
  </mstyle>
</math><asciimath>2^256</asciimath></stem> bits in length, and produces a hash value of 512 bits  <xref target="WHIRLPOOL"/>.</p>

<p id="_934a9f6a-288f-37a3-aff5-618b1ae5093a">It uses Merkle-Damgard strengthening and the Miyaguchi-Preneel hashing
scheme with a dedicated 512-bit block cipher called <stem block="false" type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML">
  <mstyle displaystyle="false">
    <mi>W</mi>
  </mstyle>
</math><asciimath>W</asciimath></stem> <xref target="WHIRLPOOL"/>.</p>
</clause>

<clause id="_fd89c534-fcae-cb3f-23fa-6eb43b40736e" anchor="checksum_sm3" obligation="normative">
<title id="_682202c6-be54-9c55-f55e-16e04535b712">The SM3 Hash Function</title>
<p id="_8f35597e-e01f-968d-a734-d7472bb0e727">SM3 is a hash function &lt;&lt;?I-D.shen-sm3-hash&gt;&gt; standardized by the Chinese Commercial Cryptography Administration Office  <xref target="SM3"/> for the use of electronic authentication service systems.</p>

<p id="_13c41f59-9f55-0aff-de8f-bb0fbe7c0b24">SM3 is an iterated hash function based on a Merkle-Damgard design, processes on 512-bit input message blocks with a 256-bit state, and produces a 256-bit hash value.</p>
</clause>

<clause id="_cddec71e-cd45-893b-697d-a84f5e07ea90" anchor="checksum_sha3" obligation="normative">
<title id="_5a6fe97d-8ddd-d184-ecac-f852e897fdfa">The SHA-3 Hash Functions</title>
<p id="_abb687a4-75e3-3629-7e39-c6ae325fee79">Secure Hash Algorithm-3 (SHA-3) is a family of hash functions defined in <eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/> consisting of:</p>

<ul id="_4d731109-44ae-e922-e48d-d422cf601fd2"><li><p id="_66d81006-c063-d22a-f003-ba04bdf7f661">four cryptographic hash functions, SHA3-224, SHA3-256, SHA3-384, SHA3-512; and</p>
</li>
<li><p id="_2c6643a6-bee9-cd61-69e4-426f82d00f64">two extendable-output functions (XOFs), SHAKE128 and SHAKE256.</p>
</li>
</ul>

<p id="_53e374a6-98bb-8d49-aaaf-e1592bca0c85">Each SHA-3 function is based on an instance of the KECCAK algorithm <xref target="KECCAK"/> which won the SHA-3 Cryptographic Hash Algorithm Competition <eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>.</p>

<ul id="_25e6140a-9c0f-0c6a-0837-a303e793270c"><li><p id="_5e7f0171-7b13-8784-e0d0-8d979844343d">SHA3-224, SHA3-256, SHA3-384, SHA3-512 produce a hash value output of 224, 256, 384 and 512 bits respectively.</p>
</li>
<li><p id="_bcd9705d-efe2-c9df-b796-f9bb091ce164">SHAKE128 and SHAKE256 are XOFs that produce output of arbitrary length, which can be specified using the “HASHP” property parameter.</p>
</li>
</ul>

<p id="_c2e5c28e-828a-46d2-e869-a7525e8ea27d">Notes concerning SHA-3 based XOFs <eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>:</p>

<ul id="_7885fc26-3c41-bdda-e9b8-fb44c78ac96f"><li><p id="_d191bc2e-1450-578b-dd7b-6ce76759b924">Output of a XOF can be considered as an infinite string, and the “HASHP” property parameter simply determines how many initial bits of the initial string to use.</p>
</li>
<li><p id="_8d422567-6919-4b5e-e09e-b2062c05f56d">The SHAKE-256 and -128 functions, as long as at least 2x bits of their output is used, they have generic security strengths of 256 and 128 bits. However, using an excess of 64 or 32 bytes of their output respectively, does not increase their collision-resistance.</p>
</li>
</ul>
</clause>

<clause id="_4f58ccb5-0917-fb8d-b36f-b48b58821e12" anchor="checksum_streebog" obligation="normative">
<title id="_966de5ba-c43c-83c8-3d8f-00a9331ca71e">The STREEBOG Hash Functions</title>
<p id="_c68dc78f-c3a5-03c6-c102-4771a6d2a587">Streebog (or Stribog) is a family of two separate hash functions defined in the Russian standard GOST R 34.11-2012  <xref target="STREEBOG"/> where the functions differ in their output lengths, which are 256- and 512-bits respectively.</p>

<p id="_ea8c3c8b-ab8f-fc56-5318-db81918189d0">Streebog accepts message block sizes of 512-bits, and both functions only differ in the different IVs used other than the output length <xref target="STREEBOG"/>.</p>
</clause>

<clause id="_b72d5d8e-bb73-92c4-64bc-1ed098ec9485" anchor="checksum_blake2" obligation="normative">
<title id="_a7caa595-5c77-8c45-db76-984ffb2a81c0">The BLAKE2 Hash Functions</title>
<p id="_ec99ac92-81e8-7eed-fd0b-26b2e5cc4b19">BLAKE2, described in <xref target="BLAKE2"/> and <eref type="inline" bibitemid="RFC7693" citeas="IETF RFC 7693"/>, is a hash algorithm that comes in two flavors, BLAKE2b and BLAKE2s. It is the successor of BLAKE  <xref target="BLAKE"/> which was a NIST SHA-3 competition finalist.</p>

<ul id="_8910368c-3d8e-3203-1f59-05b295b35489"><li><p id="_e2fab9af-cf48-1a8f-59b3-66ad7a08ad84">BLAKE2b is optimized for 64-bit platforms and produces hash values of any size between 1 and 64 bytes</p>
</li>
<li><p id="_d23a4a0e-ff1e-9bec-3061-1a8d10ad2ba4">BLAKE2s is optimized for 8- to 32-bit platforms and produces hash values of any size between 1 and 32 bytes</p>
</li>
</ul>

<p id="_058d5cf4-26ae-13c1-e318-9d946396e7f7">While BLAKE2 allows customizing parameters, including salt and a customization string, implementations that adhere to this specification should adopt BLAKE2 as defined in  <eref type="inline" bibitemid="RFC7693" citeas="IETF RFC 7693"/>.</p>
</clause>

<clause id="_873842dd-ba8e-4fd4-1340-853a916afc39" anchor="checksum_sha3_ext" obligation="normative">
<title id="_b9fc234b-d4ea-f287-4572-cecde0a82758">The SHA-3 Extension Hash Functions</title>
<p id="_d45c821d-9ae3-79a7-3d50-0d510242b696"><eref type="inline" bibitemid="NIST-SP-800-185" citeas="NIST SP 800-185 fpd"/> defines a number of additional hash algorithms based on algorithms defined in  <eref type="inline" bibitemid="NIST-FIPS-202" citeas="NIST FIPS 202 fpd"/>, including:</p>

<ul id="_b0994a54-47cf-db5e-a01d-72e3afacfae4"><li><p id="_7e81b8bc-beb2-07b7-0b8a-1f3c8c206110">cSHAKE-128, cSHAKE-256: customizable SHAKE functions, which take extra inputs of hash value length, a function name string, and a customization string;</p>
</li>
<li><p id="_56a20aea-1d52-179b-f322-afa60eb2f009">ParallelHash128, ParallelHash256: supports efficient hashing of very long strings by taking advantage of the parallelism available in modern processors based on SHAKE. These take the extra inputs of block size, hash value length and a customization string.</p>
</li>
</ul>

<p id="_991c9292-a727-ecdf-de82-020c1718e5fc">Both cSHAKE and ParallelHash are XOFs that can produce variable length output. The number suffix at their names mean the security strength bits of the algorithm.</p>
</clause>
</clause>

<clause id="_d5b6fe86-8b59-de08-4fd8-502ee6dbdfcf" obligation="normative">
<title id="_b40ec263-20b7-908e-d487-a85d98d78de1">Selection Considerations</title>
<clause id="_167ac2f4-247e-d298-7be6-1d4b7c7ca4ae" obligation="normative">
<title id="_76670f78-e7aa-4d75-d1c9-350716de8250">Collision Resistance of Hash Function Families</title>
<p id="_a325288d-410f-6ad4-2b17-7bace01e405b">For our purposes we specify the following strength families of hash algorithms. Hash functions placed in the higher bracket are considered “more resistant” in algorithm selection.</p>

<table id="_754cc78e-e551-e39f-579a-53f5b3cd8a62"><thead><tr id="_4f11fd0d-680a-0cac-75b9-f291bf300799"><th id="_4c5766fd-9342-4b53-a258-054583b601ab" valign="top" align="left">Strength</th>
<th id="_fda9e710-e968-c1fe-0919-3d9cec5c6fdd" valign="top" align="left">Hash Function Identifier</th>
</tr></thead>
<tbody><tr id="_f300b9f9-ebb6-f396-1f75-43c338624f0b"><td id="_b721f6ce-0017-a3c7-2170-a0b724e7ea3f" valign="top" align="left">1</td>
<td id="_42679c2b-548a-ca1d-5b02-33afee1ee050" valign="top" align="left">sha224, sha256, sha384, sha512, sha512-224, sha512-256</td>
</tr><tr id="_14d64ed3-947d-49e8-1a35-4d43f12bd574"><td id="_d4a14c63-628a-3728-6331-d82cbddeeebe" valign="top" align="left">2</td>
<td id="_cc2774f3-3237-ff12-8452-ffae73a95e7d" valign="top" align="left">whirlpool, streebog256, streebog512</td>
</tr><tr id="_eabfd26f-f1bf-6ac5-78fc-0bc7077fb9cd"><td id="_4ee01a3e-1183-1851-ec2e-e74f49d99ed0" valign="top" align="left">3</td>
<td id="_04653f90-41f1-c3d3-bf8b-8bacb2be799d" valign="top" align="left">blake2b256, blake2b384, blake2b512, blake2s224, blake2s256, sm3, shake128, shake256, sha3-224, sha3-256, sha3-384, sha3-512</td>
</tr></tbody>
</table>
</clause>

<clause id="_ea8deb19-e349-5b17-9f15-838244fbff4a" obligation="normative">
<title id="_3f79a686-55d2-8940-242d-2e813f15247a">Guidelines for Hash Function Selection</title>
<ul id="_453c3077-f260-2fde-a367-962f08b5f5c3"><li><p id="_7f4a737a-2898-e5d6-3057-298d2e7ac7b1">Collision-resistance: higher bit length digests are generally preferable to lower bit length digests due to lower susceptibility to collisions.</p>
</li>
<li><p id="_58d33445-ecff-5a35-a864-d61312ca47bb">Performance: some hash functions are more computation intensive. Higher bit length digests generally require more computation to generate.</p>
</li>
<li><p id="_27799b20-6d93-8922-d917-1c91473dc336">History: a hash algorithm that has withstood cryptanalytic attacks provide better confidence than ones that have not been in widespread use.</p>
</li>
<li><p id="_13773c1a-842e-b7cb-72bb-04f932712a6d">Availability and interoperability: certain hash algorithms, such as SHA-2 (<eref type="inline" bibitemid="RFC6234" citeas="IETF RFC 6234"/>; <eref type="inline" bibitemid="NIST-FIPS-180-4" citeas="NIST FIPS 180-4 fpd"/>; <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 4 (SHA-256)), are more prevalently available on computing platforms.</p>
</li>
</ul>

<p id="_6f4d5d38-605c-df2e-61a6-f1684e2e3a5b">Selection of the hash function should be based on a balance of collision resistance, performance, history and interoperability.</p>
</clause>

<clause id="_e6d0c60a-ad84-6dbf-c924-538b25b718a1" obligation="normative">
<title id="_a9b55399-cd85-1106-d537-9f2437d6d015">Hash Functions Considered Unsuitable</title>
<p id="_f3ce0164-5183-5c96-73d5-f16b4ab6ae15">The following hash functions are specifically excluded due to stated reasons:</p>

<ul id="_6c062086-f4df-a825-9b1f-ba866d0bbc9f"><li><p id="_6cf62761-22b9-f51b-ae86-5e5b0d67f550">RIPEMD-160 <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 1 and RIPEMD-128  <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 2, are specifically excluded as they do no longer provide a sufficient level of collision resistance, see  <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"><display-text>7.1</display-text></eref> Note 2  <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"><display-text>8</display-text></eref> Note 2. The RIPEMD optional extensions RIPEMD-256 and RIPEMD-320  <xref target="RIPEMD160"/> are also excluded as they are of the same security levels as RIPEMD-128 and RIPE-160 respectively.</p>
</li>
<li><p id="_c51c6fd6-f311-2aa8-1711-156646729a43">SHA-1 <eref type="inline" bibitemid="RFC3174" citeas="IETF RFC 3174"/> <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"/> Dedicated Hash-Function 3 is excluded as it does not provide a sufficient level of collision resistance, see  <eref type="inline" bibitemid="ISO-IEC-10118-3" citeas="ISO/IEC 10118-3:2018"><display-text>9.1</display-text></eref> Note 2.</p>
</li>
<li><p id="_2809ef82-1848-3a3e-805c-e1abda3191af">CRC-32 <eref type="inline" bibitemid="ISO-IEC-13239" citeas="ISO/IEC 13239:2002"/> and in general CRC algorithms are excluded due to weak collision resistance.</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_030e43ef-fc92-e935-36c9-ee943f022ca9" obligation="normative">
<title id="_2e5f2c1c-2c6a-2814-dddd-a0ddf3a58acb">Using CHECKSUM With Server Support</title>
<clause id="_be9d6108-2cf6-f038-5281-74cf0aeadbc2" obligation="normative">
<title id="_bbd2bbf3-0621-39e4-18f5-4750b7941814">Usage of CHECKSUM in vCards on CardDAV servers</title>
<p id="_452a4658-9c05-7b1a-db64-5f41ecd76406">CardDAV servers are <strong>RECOMMENDED</strong> to calculate and provide an extra CHECKSUM property for al vCard retrieval requests in order to provide a base level of integrity guarantee.</p>

<p id="_e2a861a2-94e5-8835-74e3-15697f7190e5">The CHECKSUM property and its parameters are fully compatible with the CardDAV mechanism described in  <eref type="inline" bibitemid="RFC6352" citeas="IETF RFC 6352"/>.</p>

<clause id="_7f8238b3-9642-4d57-01d8-b5cc03e0060d" obligation="normative">
<title id="_aacc26dc-368b-c902-b37f-57a4c21e6603">Creating And Updating Address Object Resources</title>
<p id="_ae6d4c5f-b989-1d88-bf1b-d699f443391c"><eref type="inline" bibitemid="RFC6352" citeas="IETF RFC 6352"><display-text>6.3.2</display-text></eref> specifies how to create address object resources.</p>

<p id="_71813f16-5616-38b3-c0f1-1e3fd00681de">An implementation abiding to this specification <strong>MUST</strong> augment this process according to the following.</p>

<clause id="_9c5dfb5b-b27b-f1cf-882f-6d5674bf787b" obligation="normative">
<title id="_847e4f6e-b993-1ceb-a732-8fe8eac1b9c4">Client Implementations Should Transmit With CHECKSUM</title>
<ul id="_07c73567-3c0f-ecfe-27f4-2e218ca42fd8"><li><p id="_f7465dc4-509a-9b27-2c21-78d2cf3e80ba">When a client issues a PUT to create an address object resource, a CHECKSUM property  <strong>SHOULD</strong> be included in the request.</p>
</li>
<li><p id="_a4869ea4-fc46-6518-89ce-1b75bcfdb70f">The CHECKSUM property value <strong>MAY</strong> be empty if the client wishes the server to calculate the value according to the given HASHA and/or HASHP parameters.</p>
</li>
</ul>
</clause>
</clause>

<clause id="_80fff4e5-ebed-c0f9-8144-23821eedbe30" obligation="normative">
<title id="_91acdf59-d212-3584-3bc8-dcedfa023de8">Additional Server Semantics for PUT, COPY and MOVE</title>
<p id="_a3bf8de9-0cec-19c1-194f-4f9aa6ca914e">This specification creates an additional precondition and postcondition for the PUT, COPY, and MOVE methods when:</p>

<ul id="_b206bede-4e8c-c797-fa00-70e771cc06a3"><li><p id="_69ea87aa-9d40-af95-c81f-15b523c17cd7">A PUT operation requests an address object resource to be placed into an address book collection; and</p>
</li>
<li><p id="_c025a0d5-eb33-1bf7-aa37-4cec83d5ad78">A COPY or MOVE operation requests an address object resource to be placed into (or out of) an address book collection.</p>
</li>
</ul>

<clause id="_3d9284e1-7a5a-1fb1-24d5-852a2546c870" obligation="normative">
<title id="_4abc459c-7617-c9c0-48e7-7dc039218085">Only Admit Valid vCard Data From Client</title>
</clause>

<clause id="_47cec396-7f88-6f72-aad1-cd434f9c6efb" obligation="normative">
<title id="_5dd5e023-6e43-f713-0ba2-ba3fa6d96f7e">Additional Precondition</title>
<p id="_66817250-b28b-20a5-3722-7d3b6ede61ba"><tt>(CARDDAV:valid-address-data-checksum)</tt> The address object resource submitted in the PUT request, or targeted by a COPY or MOVE request, contains a CHECKSUM property:</p>

<ul id="_29b9c171-5192-541c-b58e-f8ed64307c84"><li><p id="_7003894b-ef99-3ad7-4d26-21c53693b4b2">The address object resource’s integrity <strong>MUST</strong> be valid as determined by methods of this specification.</p>
</li>
<li><p id="_aa36557f-7519-d277-2aa9-67418444df9a">If the resource contains an empty CHECKSUM property value, the server  <strong>SHOULD</strong> fill in the property value with its own calculation.</p>
</li>
<li><p id="_c1a0aff9-b3f3-fb08-27d0-0457e8d7c76b">The CHECKSUM property value <strong>SHOULD</strong> be stored by the server to enable data integrity verification.</p>
</li>
<li><p id="_29e30c02-f3ae-7711-5a62-70e2eab33b04">If the resource CHECKSUM is deemed invalid, the server <strong>SHOULD</strong> respond with a  <tt>409</tt> (Conflict) status to indicate to the client so, hence the  <tt>&lt;CARDDAV:valid-address-data-checksum&gt;</tt> condition is not met. In this case, the client may choose to empty the CHECKSUM property value for re-submission.</p>
</li>
</ul>
</clause>

<clause id="_1b823929-2a99-ab7d-a657-15994d373819" obligation="normative">
<title id="_3824d4ca-39fd-fc46-1eb2-1df9108ee04d">Resolve Discrepancy Between Server And Client vCard Data</title>
<p id="_688b7591-7869-4c22-7e68-8771263ce271">Certain servers perform silent changes or cleanups of client provided vCard data when stored as address object resources, such as the order of property parameters or scrubbed values.</p>

<p id="_32c29f3a-141b-d099-1fa0-ccd1380546c6">The resulting vCard data stored on the server (and when returned back to the client) may end up different than that of the client without its knowledge. It is therefore necessary for the client to be reported on such modifications.</p>
</clause>

<clause id="_994da5bc-b246-86bc-8d7c-9e07acf6a0f0" obligation="normative">
<title id="_0410bc8e-469b-348a-47e7-85c8f77b7816">Additional Postcondition</title>
<p id="_383c9699-e127-8c62-7e84-01bb2b72cf0a"><tt>(CARDDAV:resource-not-modified)</tt>: The address object resource should not be modified by the server such that its original CHECKSUM value becomes invalid.</p>

<ul id="_7c4e6094-8efe-6071-6df3-d1e481f15d78"><li><p id="_d570d8b7-9962-b07f-1cdb-76ef9c31c57f">After action execution, the server should re-calculate the CHECKSUM property value based on the retrieved address object resource.</p>
</li>
<li><p id="_c95347e9-a1f3-6815-93e2-e6668210f68b">If the CHECKSUM property value is now different, the server <strong>SHOULD</strong> respond to client with the latest address object resource and the new CHECKSUM so that the client knows the resource has been changed by the server.</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_fe33436c-e6fa-607c-8c8c-8b413a61de68" obligation="normative">
<title id="_758294fd-5d35-52fd-634e-41d19c855c9d">Usage of CHECKSUM with CalDAV</title>
<p id="_0d669ba5-8ca2-8979-a7f7-8350fd7e5948">The CalDAV <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/> calendar access protocol allows clients and servers to exchange iCalendar data. iCalendar data is typically stored in calendar object resources on a CalDAV server.</p>

<p id="_a1d0c2c1-5d65-7812-8fa0-00b00a43fa27">A CalDAV server is <strong>RECOMMENDED</strong> to return iCalendar data with integrity protection.</p>

<clause id="_3b07a3a1-8214-84b8-21e0-615991a45ae4" obligation="normative">
<title id="_56bff487-ebd8-6f5f-f5d4-b2234c592025">Creating Calendar Resources</title>
<p id="_bef3326b-d35d-3cd3-5a69-71f9832908f2">A CalDAV client typically updates the calendar object resource data via an HTTP PUT request, which requires sending the entire iCalendar object in the HTTP request body.</p>
</clause>
</clause>

<clause id="_8a156f44-6062-0a52-deb1-9e126efb2762" obligation="normative">
<title id="_741e86ff-43f2-11cd-b964-0231e75788c4">Usage of CHECKSUM with iTIP</title>
<p id="_e231046b-d033-63e7-b60a-bc5b523a93a1">iTIP <eref type="inline" bibitemid="RFC5546" citeas="IETF RFC 5546"/> defines how iCalendar data can be sent between calendar user agents to schedule calendar components between calendar users.</p>

<p id="_b494d415-e41e-5d13-0373-a39ccce4fdd9">This specification is compatible with iTIP transfer of iCalendar data.</p>
</clause>
</clause>

<clause id="_ce6122b3-9652-8481-9fde-474e1c63a3ed" anchor="alternative" obligation="normative">
<title id="_4cf9ef90-ccd9-4a80-87f2-071d341dca9a">Alternative vObject Representations</title>
<clause id="_0ce1e940-049e-0c4a-1bbe-49798c9c6234" obligation="normative">
<title id="_761b433e-8a2a-cd0d-f36e-7d86a94180a8">xCard</title>
<p id="_b74434de-5631-9ad3-c947-63bc1cc62c2d">The XML representation <eref type="inline" bibitemid="RFC6351" citeas="IETF RFC 6351"/> of the CHECKSUM property follows the example shown below. For this property, the value type  <strong>MUST</strong> be set to “text” and parameter “type”  <strong>MUST</strong> also be set to “text”.</p>

<sourcecode id="_8a3e414c-a4f3-df19-1e68-d01b59275352"><body>&lt;checksum&gt;
  &lt;parameters&gt;
    &lt;hasha&gt;
      &lt;text&gt;sha224&lt;/text&gt;
    &lt;/hasha&gt;
    &lt;pref&gt;
      &lt;integer&gt;99&lt;/integer&gt;
    &lt;/pref&gt;
  &lt;/parameters&gt;
  &lt;text&gt;22e92efac9d7b0e63695a9d960376ace1e69eb317e3d42c5c94f1401&lt;/text&gt;
&lt;/checksum&gt;</body></sourcecode>

</clause>

<clause id="_4ced10f5-07bf-c9e2-2522-b30089597afa" obligation="normative">
<title id="_f2b5ee7c-7d6f-b86e-814c-d73990dc7722">jCard</title>
<p id="_0e6511f2-5277-dc2c-735c-8fcece337086">The JSON representation of the CHECKSUM property follows <eref type="inline" bibitemid="RFC7095" citeas="IETF RFC 7095"/> as the example shown below.</p>

<sourcecode id="_38f8fb2a-fcbd-94a2-b5a0-9d104e9593ba"><body>["checksum",
  { "hasha": "sha224", "pref": "99" },
  "text",
  "22e92efac9d7b0e63695a9d960376ace1e69eb317e3d42c5c94f1401"
]</body></sourcecode>

</clause>
</clause>

<clause id="_facf2a44-1e01-eca8-ec73-30aa28e1024b" obligation="normative">
<title id="_ae1904c2-c309-1e2e-ed21-31c709353b52">Implementation Notes</title>
<clause id="_be064401-a5cc-492a-8133-1a437d51ec3d" obligation="normative">
<title id="_d4610091-7764-49d8-9617-09de19113643">vCard REV Update Guidelines For The CHECKSUM Property</title>
<p id="_3ddb648d-73ad-44a9-0a62-c03d5b2fe55e">Updating of the CHECKSUM property value should not affect the REV value of a vCard. However, if a CHECKSUM property is newly inserted, or its parameters changed (such as HASHA or HASHP), then the REV value should be updated according to  <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/>.</p>
</clause>

<clause id="_867ad9cd-af6c-bb84-0bd2-7de5bcb42a3c" obligation="normative">
<title id="_cf147bc5-1f68-4d57-ccfe-0fbfd65347c5">Calculating CHECKSUM From An xCard</title>
<p id="_87b234fe-e41f-d5bb-b5e7-a4f1514b8294">Implementers <strong>MUST</strong> ignore individual parameter value types in xCard (<eref type="inline" bibitemid="RFC6351" citeas="IETF RFC 6351"><display-text>6</display-text></eref>, Appendix A 4.1) during CHECKSUM value calculation to be compatible with vCard and jCard, as individual parameter value types are implicit (not explicitly represented) in both vCard and jCard properties.</p>
</clause>

<clause id="_e9ace7bd-742f-b192-b8ad-749fdffdabe3" obligation="normative">
<title id="_2628129b-2b2a-a666-64af-6de22d61454b">Backwards Compatibility Concerns</title>
<p id="_839623c8-8c77-8565-1bdb-4475b45f327b">If an implementation does not support the CHECKSUM property, it <strong>MUST</strong> ignore the CHECKSUM property entirely without providing it any value. If an incorrect value is provided, the receiving end of this vObject may falsely assume that the vObject is broken.</p>
</clause>

<clause id="_9b8494de-b206-c4ee-a8e8-e8c7fb057664" obligation="normative">
<title id="_863c33bf-6af1-e61d-835c-36bf99e9c9d1">Unsupported Property Parameters</title>
<ul id="_8587e6a9-db88-3723-2b87-97eec87b41da"><li><p id="_6c3b9283-9818-b12a-080e-1a4812290d2e">If an implementation supports the CHECKSUM property but not certain parameters (e.g., a specified hash function), it  <strong>MUST</strong> leave that property value empty as the insertion of the CHECKSUM property indicates the wish of the user to utilize it.</p>
</li>
<li><p id="_941c5b92-7303-a8b4-a5b5-07ed527ac3fd">If an implementation supports the CHECKSUM property, it <strong>MUST</strong> calculate the checksum values for every CHECKSUM property in the vObject.</p>
</li>
</ul>
</clause>

<clause id="_5db505b9-e5c4-2cc6-f413-9797fff3185f" obligation="normative">
<title id="_ce0833e9-2544-d47f-c767-7df510601618">Recommendations for Client User Applications</title>
<clause id="_14ee6015-14a4-fecc-f8d0-813285e34b29" obligation="normative">
<title id="_f11c5364-5d17-f9e2-e337-266e563cfccf">User Experience</title>
<ul id="_3afe58f2-aa28-7a72-a3ac-9d35fe73f6d3"><li><p id="_75bf00a1-e9cf-60a3-4147-940f1a8660b2">The CUA <strong>SHOULD</strong> honestly reflect checksum validation results to the user to allow further action from the user, e.g., to seek retransmission of the vObject.</p>
</li>
</ul>
</clause>

<clause id="_4be245ec-0f98-1a96-e224-1dd1d9eb25d2" obligation="normative">
<title id="_2299b976-5c42-78ab-31c3-c459fd18b635">Ongoing Improvements</title>
<ul id="_c08c5c22-ad80-3a42-f554-c75bd352177e"><li><p id="_54f4dcbc-503e-4585-11e7-70eddf27d17b">Cryptographic hash algorithms can break overtime. There will be a time when best practice designates a better one, CUA  <strong>SHOULD</strong> take this in mind and promote best practice to update its security profile.</p>
</li>
</ul>
</clause>
</clause>
</clause>

<clause id="_d66488de-5492-1f6f-7390-edb5843e6bcd" anchor="security" obligation="normative">
<title id="_f0561e70-f46d-0fb3-5729-bb0b86495de6">Security Considerations</title>
<ul id="_fa64bf73-75ff-a2e5-3408-bee86387044a"><li><p id="_a49be522-b20a-81ab-5790-e3b6901d1c33">The function of the CHECKSUM property depends on the collision-free property of cryptographic hash functions. However, as time passes, today’s recommended cryptographic hash functions may no longer be considered reliable in the future. Implementers  <strong>MUST</strong> take this into account and update its security profile according to the latest best practice on cryptographic hash functions.</p>
</li>
<li><p id="_eba4318f-0bb0-31d6-e124-9bcb0079b798">The CHECKSUM property is not designed to protect against intentional and unauthorized modification. A malicious party with access to the vObject (such as a “man-in-the-middle attack”  <eref type="inline" bibitemid="RFC3552" citeas="IETF RFC 3552"><display-text>3.3.5</display-text></eref> <eref type="inline" bibitemid="RFC4949" citeas="IETF RFC 4949"><display-text>4</display-text></eref>) could both modify the data and the CHECKSUM property at the same time and prevent detection.</p>
</li>
<li><p id="_25a73a3c-8498-1fc6-7389-ceaf95608588">The CHECKSUM property is not designed to address data authenticity (<eref type="inline" bibitemid="ISO-IEC-27000" citeas="ISO/IEC 27000:2018"><display-text>2.8</display-text></eref> <eref type="inline" bibitemid="RFC3552" citeas="IETF RFC 3552"><display-text>2.1.3</display-text></eref>) concerns. A malicious party may send a vObject posing as another entity. This document does not protect against that situation.</p>
</li>
<li><p id="_ce3e9a35-2f5b-182f-b001-185fa165fdce">While many vObject properties can be used to transport URIs, the CHECKSUM property specifically does not allow setting a URI as its value due to extra security risks raised during the reference step to a URI (<eref type="inline" bibitemid="RFC3986" citeas="IETF RFC 3986"><display-text>7</display-text></eref>). In any case, it is easy for an attacker to directly modify the CHECKSUM instead of modifying the results at a third-party URI, and therefore would not improve integrity protection of the vObject.</p>
</li>
<li><p id="_ca430632-8c6c-78ea-04f7-12c186b058a8">Security considerations around vObject formats in the following documents  <strong>MUST</strong> be adhered to:</p>
<ul id="_1a54425a-301e-7edc-22f1-f87d362f9f0e"><li><p id="_0d2c3b1e-c571-cce1-3913-c3a52c08d482">vCard: <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/></p>
</li>
<li><p id="_4fcbc963-2ff9-524f-8283-d9ea48cfbac4">iCalendar: <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"/>, <eref type="inline" bibitemid="RFC5789" citeas="IETF RFC 5789"/>, <eref type="inline" bibitemid="RFC4791" citeas="IETF RFC 4791"/></p>
</li>
</ul>
</li>
</ul>
</clause>

<clause id="_c1af0475-fc50-d1de-e599-995400b29d04" anchor="iana" obligation="normative">
<title id="_1cf4983a-be8f-2137-3972-1cef611d49c9">IANA Considerations</title>
<clause id="_407bd6d3-37bb-9467-06c9-a69b2796fcff" obligation="normative">
<title id="_afc884ee-6163-c4d7-337f-3b721ba93283">Common vObject Registries</title>
<p id="_6eb334f6-8737-7054-c977-52db7f3dfcda">The IANA has created and will maintain the following registries under the heading “vObject Common Elements”.</p>

<p id="_50081575-6302-8d37-d689-f1aad6b63c22">The registry policy is <strong>Specification Required</strong>; any newly proposed specification  <strong>MUST</strong> be reviewed by the designated expert.</p>
</clause>

<clause id="_6b8c34ec-7a3b-aff2-a6c4-5c1425a0be2a" obligation="normative">
<title id="_e5b16a94-a743-e3e6-c4cb-7df1e48eed31">Registration Procedure For New Hash Functions And Hash Function Specifiers</title>
<p id="_91f188f2-3965-934a-3510-1d429ba220cd">This section defines the process for registering new or modified hash functions and hash function specifiers with IANA.</p>

<p id="_a4ebc7f5-b294-2924-a9c0-759c5c7c2faf">The IETF mailing lists for vObject (vobject@ietf.org), CardDAV (vcarddav@ietf.org) and CalDAV (vcaldav@ietf.org) <strong>SHOULD</strong> be used for public discussion of additional hash functions and hash function specifiers for the CHECKSUM property prior to registration.</p>

<p id="_80fb65e6-df5d-1091-72ae-bd37fbe25416">The registration procedure specified in <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"/> should be followed to register additional hash functions and hash function specifiers for vObjects.</p>
</clause>

<clause id="_b68f4fbb-fecf-afd1-b15e-90e7d23f0c61" anchor="vc_hash_function_registry" obligation="normative">
<title id="_17c2ad95-8523-c791-b57f-519947bad2dd">vObject Hash Functions Registry</title>
<p id="_5a4cc09b-6846-bf10-6f5a-e8f293e925fe">The registry policy is <strong>Specification Required</strong>; any newly proposed registration  <strong>MUST</strong> be reviewed by the designated expert.</p>

<p id="_9c4dfc89-9d1e-d016-6f9e-8f3a7505c9cd">The registry <strong>SHOULD</strong> contain the following note:</p>

<sourcecode id="_cd0cafc5-f6ff-2954-3475-e0059b8af97a"><body>Note: Experts are to verify that the proposed registration
*SHOULD* provide benefits for the wider vObject community,
and provides a publicly-available standard that can be implemented in
an interoperable way. Hash functions are preferrably approved by the CFRG
with references to IETF-published documents. The "Reference" value should
point to a document that details the implementation of this hash function
in the vObject context.</body></sourcecode>


<clause id="_1286d716-3a37-3c4b-20d3-d88a0d86f23c" obligation="normative">
<title id="_4186c682-b774-22b8-e6ba-5adb24a3b4f9">Registration Template for vObject Hash Functions</title>
<p id="_fb833255-4078-e378-0145-3b7ed6c5ce50">A Hash Function is defined by completing the following template.</p>

<dl id="_d1f45093-7331-dd8f-d967-c8df60388c42"><dt>Identifier</dt>
<dd id="_fa2b42e8-0bfc-ba81-2699-535beff41965"><p id="_2cb11ec0-df67-fb40-a824-e01777438c82">The identifier of the hash function.</p>
</dd>
<dt>Description</dt>
<dd id="_ce52c962-3a93-2f45-651c-90fa6b26ded7"><p id="_1aab9f5b-ea6e-50a7-35e4-f4a00e122d2a">A short but clear description of the hash function, with any special notes about it.</p>
</dd>
<dt>Example(s)</dt>
<dd id="_cf2defde-e571-f729-325e-db9d376253d5"><p id="_1fe1379d-528b-46d5-8e0a-436ab3e10b74">One or more examples of input and output of the hash function.</p>
</dd>
</dl>
</clause>

<clause id="_0fb59ef5-b56f-74e3-4fb5-d472b942f1bb" obligation="normative">
<title id="_38de2ed9-a59f-867f-a160-0aa6463a540d">Initial Registrations</title>
<p id="_9f13fdd6-4bca-d07c-e333-bb8436e15349">The following table has been used to initialize the Hash Functions registry.</p>

<table id="_4ca6830c-2e29-800e-ee01-a33b71e194ca"><thead><tr id="_cbf1ce7b-c032-3876-7f32-fbd4a33d8cb7"><th id="_568d9db4-19a2-a4dc-a8bc-86169f16a313" valign="top" align="left">Identifier</th>
<th id="_041075dc-7840-d14b-a8a1-bf568961212e" valign="top" align="left">Description</th>
<th id="_d2212ea5-31d2-99fa-6cd3-8f6441130507" valign="top" align="left">Example(s)</th>
</tr></thead>
<tbody><tr id="_c023bd41-c69a-5a3f-1b6c-6e217f87557a"><td id="_ad6741d1-6785-b746-94b2-6a4bd3152cf4" valign="top" align="left">sha224</td>
<td id="_ca8f83fa-46d9-209a-2f1c-d24f100bf835" valign="top" align="left">SHA-2 SHA-224 <xref target="checksum_sha2"/></td>
<td id="_12a71402-cf39-6ffa-64e8-dd15122ff113" valign="top" align="left"><xref target="hash_registry_sha224"/></td>
</tr><tr id="_111dc10a-c5f8-dd86-67c1-3b8bc373238f"><td id="_eddc9b8b-c448-2a10-95cc-54231059744f" valign="top" align="left">sha256</td>
<td id="_81dfeeaa-2b48-c3c2-45d7-892ba6ae60c3" valign="top" align="left">SHA-2 SHA-256 <xref target="checksum_sha2"/></td>
<td id="_b4d30ffd-faa8-1f6e-6a7e-311f1b618048" valign="top" align="left"><xref target="hash_registry_sha256"/></td>
</tr><tr id="_3c81731e-b086-7295-4c17-769de197f17d"><td id="_18666f43-e0dd-1204-566d-2ebafb1ffa05" valign="top" align="left">sha384</td>
<td id="_24d32682-b09e-c330-144b-7bb226278af9" valign="top" align="left">SHA-2 SHA-384 <xref target="checksum_sha2"/></td>
<td id="_96982a86-8122-3f9e-d755-2011311ca429" valign="top" align="left"><xref target="hash_registry_sha384"/></td>
</tr><tr id="_7423c057-7948-c3d1-d067-1da2ae8803fd"><td id="_99f839a6-7754-364b-a096-10eb6bf21476" valign="top" align="left">sha512</td>
<td id="_e5973c3a-04f7-91a0-72d8-1f5bb2eb8ccc" valign="top" align="left">SHA-2 SHA-512 <xref target="checksum_sha2"/></td>
<td id="_ec3b8be8-d194-5651-0b83-5c1511e9ab57" valign="top" align="left"><xref target="hash_registry_sha512"/></td>
</tr><tr id="_af0e2210-28e6-e674-56eb-40b57dbda465"><td id="_49a46c50-3f4a-38aa-16e7-c4aab6bd5805" valign="top" align="left">sha512-224</td>
<td id="_a70d56cc-1be1-930a-83a8-5aaa08cb9c42" valign="top" align="left">SHA-2 SHA-512/224 <xref target="checksum_sha2"/></td>
<td id="_5fb0daf3-5d18-f482-ca00-72fcdb0d1a36" valign="top" align="left"><xref target="hash_registry_sha512224"/></td>
</tr><tr id="_551ff248-f16f-d30d-e23b-52997c2ec1ff"><td id="_2f0b857f-5ad7-786a-5581-ca8651fed765" valign="top" align="left">sha512-256</td>
<td id="_9c338d49-e331-46e1-d97b-067f4cd634a2" valign="top" align="left">SHA-2 SHA-512/256 <xref target="checksum_sha2"/></td>
<td id="_8b63c74c-16cd-5238-258b-3a37caa6ec88" valign="top" align="left"><xref target="hash_registry_sha512256"/></td>
</tr><tr id="_bf369195-b65b-ed2e-529b-67be76978c4b"><td id="_4e00ebbf-6879-6847-ce8e-3f50ecc483cb" valign="top" align="left">whirlpool</td>
<td id="_4da4c273-315e-301d-6f26-4c5e96ad3314" valign="top" align="left">WHIRLPOOL <xref target="checksum_whirlpool"/></td>
<td id="_52e661e4-a360-be12-5fb0-c0913f028ce6" valign="top" align="left"><xref target="hash_registry_whirlpool"/></td>
</tr><tr id="_c98d768b-0f16-865a-f156-9864a2296849"><td id="_83d46e24-5c68-0fb4-7127-b2f36bfe7b5b" valign="top" align="left">streebog256</td>
<td id="_7994f8d2-250f-bc6a-72a3-6f25e3ca20d2" valign="top" align="left">GOST R 34.11-2012 256 bits <xref target="checksum_streebog"/></td>
<td id="_ae101c8b-fc5b-4855-21f3-219bceac8705" valign="top" align="left"><xref target="hash_registry_streebog_256"/></td>
</tr><tr id="_70ea3076-ebda-80be-ceee-2e032edb38e6"><td id="_fce4da93-634d-0cd7-5a72-932deb0c8f05" valign="top" align="left">streebog512</td>
<td id="_8fe7ae8f-1e55-8127-d010-dd6622194724" valign="top" align="left">GOST R 34.11-2012 512 bits <xref target="checksum_streebog"/></td>
<td id="_80823280-d977-060f-512a-2946111cf303" valign="top" align="left"><xref target="hash_registry_streebog_512"/></td>
</tr><tr id="_8e1e7059-e3a6-e2d3-30fe-8a597cbe61ac"><td id="_b5b8b373-5f81-1444-0679-a8c4cba0e85e" valign="top" align="left">sha3-224</td>
<td id="_170d863d-0dc8-6ecb-0491-ace740ea0863" valign="top" align="left">SHA-3-224 <xref target="checksum_sha3"/></td>
<td id="_fbf92067-571f-269f-a5a2-e80d088464cc" valign="top" align="left"><xref target="hash_registry_sha3_224"/></td>
</tr><tr id="_34458f6c-bbde-cadf-3d2e-27c3194e0c78"><td id="_99e3fc2e-d7a1-f292-4771-db8cb73451a1" valign="top" align="left">sha3-256</td>
<td id="_e525378d-2b8a-9cb0-4d81-d59e5f5fe1bb" valign="top" align="left">SHA-3-256 <xref target="checksum_sha3"/></td>
<td id="_d2a08b71-e4e0-8dcc-84cd-b4b81ae00a3b" valign="top" align="left"><xref target="hash_registry_sha3_256"/></td>
</tr><tr id="_ed8b639b-66c4-48fc-fd6a-3fdc856cd7b7"><td id="_a3b9b19f-8dbb-f0d0-2f18-a283e59917d9" valign="top" align="left">sha3-384</td>
<td id="_c10b2fe5-6fa4-f6e9-3089-98974c0da21b" valign="top" align="left">SHA-3-384 <xref target="checksum_sha3"/></td>
<td id="_583d222e-c61b-609f-e68f-ae89d6a4341d" valign="top" align="left"><xref target="hash_registry_sha3_384"/></td>
</tr><tr id="_b3a6541e-2ba3-3592-813e-791986d5339e"><td id="_4051f05c-2929-7630-2dcd-1e81c963974b" valign="top" align="left">sha3-512</td>
<td id="_0c618b5a-81ca-2943-b5b6-88e209cec6c6" valign="top" align="left">SHA-3-512 <xref target="checksum_sha3"/></td>
<td id="_54b58f30-85aa-8ff4-e587-bd4d51f88bb0" valign="top" align="left"><xref target="hash_registry_sha3_512"/></td>
</tr><tr id="_d2536f5c-caa6-a61e-6674-9ed77735e429"><td id="_c5f99e2c-4124-4ab8-09d3-409f117fbab6" valign="top" align="left">blake2b-256</td>
<td id="_2e71c64b-3951-34a5-7944-4bf00b38c689" valign="top" align="left">BLAKE2b-256 <xref target="checksum_blake2"/></td>
<td id="_660985ba-049e-2151-d7b0-270c2520f933" valign="top" align="left"><xref target="hash_registry_blake2b256"/></td>
</tr><tr id="_e39aa6d0-7af5-c4a2-92d8-c9b1d1bd0e85"><td id="_8cf9c13b-c9be-c691-84ae-f678aca372c3" valign="top" align="left">blake2b-384</td>
<td id="_df3c3819-31f4-bcfe-b8a2-e5b4d8befeaa" valign="top" align="left">BLAKE2b-384 <xref target="checksum_blake2"/></td>
<td id="_ee411e23-a612-44f3-ff29-2b60d2034c89" valign="top" align="left"><xref target="hash_registry_blake2b384"/></td>
</tr><tr id="_48178e91-ae68-547d-0287-302fc1e74bca"><td id="_becab6ed-bcec-3cc6-4c34-e0ebd4e4c703" valign="top" align="left">blake2b-512</td>
<td id="_6039b61e-bfef-fa0d-15d0-f164df0674f6" valign="top" align="left">BLAKE2b-512 <xref target="checksum_blake2"/></td>
<td id="_0e18ab08-59b2-5d65-e4f7-e1ddeaa04cc4" valign="top" align="left"><xref target="hash_registry_blake2b512"/></td>
</tr><tr id="_24cec72d-ea25-a6d8-9227-b4b49d5fad92"><td id="_94441a54-4dad-fa9b-b3de-aae49668d3e2" valign="top" align="left">blake2s-224</td>
<td id="_80640add-1ccb-5e52-9342-445401ce8ad3" valign="top" align="left">BLAKE2s-224 <xref target="checksum_blake2"/></td>
<td id="_34d247c1-ae80-391a-16e8-4decc9bdb107" valign="top" align="left"><xref target="hash_registry_blake2s224"/></td>
</tr><tr id="_367d65f3-790d-0105-75f6-8cb7d7b00ff1"><td id="_247a4410-9f67-e067-3abd-3aa8b7b62b8d" valign="top" align="left">blake2s-256</td>
<td id="_cbb53e98-f915-f6a2-f8ae-a9fcaf148af8" valign="top" align="left">BLAKE2s-256 <xref target="checksum_blake2"/></td>
<td id="_d8336292-9ec8-8cc7-525d-9c0c68abd127" valign="top" align="left"><xref target="hash_registry_blake2s256"/></td>
</tr><tr id="_ece3ec88-8fae-a957-069e-f9117cd0af09"><td id="_f35af325-bfdf-5f6e-1175-5e49c5642066" valign="top" align="left">sm3</td>
<td id="_46832828-4385-90f3-df88-45ad840aa1d1" valign="top" align="left">OSCCA SM3 <xref target="checksum_sm3"/></td>
<td id="_3e790d3d-58e6-329d-f818-64927ad17e34" valign="top" align="left"><xref target="hash_registry_sm3"/></td>
</tr><tr id="_aa1c0730-2f6d-f234-078a-77c105b3517f"><td id="_152b74e8-2252-06f2-17d6-f0f7765a0140" valign="top" align="left">shake128</td>
<td id="_909da846-f4b3-d84c-9962-71eab634f652" valign="top" align="left">SHAKE-128 <xref target="checksum_sha3"/></td>
<td id="_02d8c835-c2aa-fd78-31df-da9c0164258f" valign="top" align="left"><xref target="hash_registry_shake128"/></td>
</tr><tr id="_05f03bcc-1efc-20c9-1e0c-0aebc38d200c"><td id="_42128891-d5de-a6f1-5ea2-7d7f10b77b47" valign="top" align="left">shake256</td>
<td id="_fe5648ef-f769-ab1b-2127-89870fecb8c3" valign="top" align="left">SHAKE-256 <xref target="checksum_sha3"/></td>
<td id="_2dada79b-e9e6-1fe1-87f3-606f5f3349fb" valign="top" align="left"><xref target="hash_registry_shake256"/></td>
</tr><tr id="_2f2ab833-c870-7122-75ae-789a6fd15756"><td id="_6f8ee2c0-6446-fa57-40f8-579a7cf0d9da" valign="top" align="left">cshake128</td>
<td id="_523c2d05-ad96-c6d1-d592-fcf66f747fbc" valign="top" align="left">cSHAKE-128 <xref target="checksum_sha3_ext"/></td>
<td id="_701d5300-1e31-3ad8-052f-33c0b718832e" valign="top" align="left"><xref target="hash_registry_cshake128"/></td>
</tr><tr id="_f72c830d-c6d1-b3d9-67fe-37d47fb96de8"><td id="_8f3839ff-5779-06c3-98b0-38bffb5c5811" valign="top" align="left">cshake256</td>
<td id="_63d778b0-d28f-657c-043f-d25e9fea65f8" valign="top" align="left">cSHAKE-256 <xref target="checksum_sha3_ext"/></td>
<td id="_0100b7aa-5673-f913-997a-100d9ea72361" valign="top" align="left"><xref target="hash_registry_cshake256"/></td>
</tr><tr id="_52b9f3e2-c21a-8016-bcd6-6a233344546e"><td id="_8676374f-6565-9639-6ef4-31f003c9f92f" valign="top" align="left">parallel128</td>
<td id="_d0051a87-e5e0-8583-eac8-985263e2265b" valign="top" align="left">ParallelHash128 <xref target="checksum_sha3_ext"/></td>
<td id="_67c6b727-223a-c639-fee6-6c002bcb5c43" valign="top" align="left"><xref target="hash_registry_parallel128"/></td>
</tr><tr id="_a9d12a29-9510-0e64-6713-3f2f4e4cf482"><td id="_88c52af7-57c7-dabe-c4f2-074cb783231e" valign="top" align="left">parallel256</td>
<td id="_fcf152b7-d042-9a6b-83df-1c51cd80adb1" valign="top" align="left">ParallelHash256 <xref target="checksum_sha3_ext"/></td>
<td id="_ecac26c5-27c8-1458-8656-2bb7cf8b213e" valign="top" align="left"><xref target="hash_registry_parallel256"/></td>
</tr></tbody>
</table>
</clause>
</clause>

<clause id="_78f9ca16-0bc4-ba95-f235-5af20163810e" anchor="vc_hash_function_specifier_registry" obligation="normative">
<title id="_1ef6acd7-6c8e-ab83-9869-43f7c9e035f2">vObject Hash Function Specifier Registry</title>
<p id="_2aac19c9-17de-8162-e27f-208d2e25dd15">The registry policy is <strong>Specification Required</strong>; any newly proposed registration  <strong>MUST</strong> be reviewed by the designated expert.</p>

<p id="_ca1ff676-2bde-2b6b-9ab7-e0477ffa7caf">The registry <strong>SHOULD</strong> contain the following note:</p>

<sourcecode id="_5298cea9-9f02-239a-fad8-96519f2bad40"><body>Note: Experts are to verify that the proposed registration
*SHOULD* provide benefits for the wider vObject community,
and provides a publicly-available standard that can be implemented in
an interoperable way. Hash function specifiers are preferrably approved by the CFRG
with references to IETF-published documents. The "Reference" value should
point to a document that details the implementation of this hash function
in the vObject context.</body></sourcecode>


<p id="_df0d75fd-4e65-cb5d-6d42-c4f193faea63">The “Specifier(s)” column in the registry <strong>SHOULD</strong> adhere to the following format:</p>

<p id="_819da11b-6799-d926-feb5-f3b2680def5e">ABNF:</p>

<sourcecode id="_6ecea8db-5502-30a1-45d1-ecc220db7ef7"><body>specifier = specifier-tuple *("," specifier-tuple)

specifier-tuple = specifier-key ": " specifier-value-type +
                  "(default: " specifier-description ")"
specifier-key = text
specifier-value-type = value-type
specifier-description = text</body></sourcecode>


<clause id="_e372ed25-6973-f071-d841-cb4a107455d3" obligation="normative">
<title id="_188c1a7b-6b69-a286-e611-1fac999eb3b5">Registration Template for vObject Hash Function Specifiers</title>
<p id="_56de8498-f6c7-63ad-38a3-a92f1c864735">A Hash Function Specifier is defined by completing the following template.</p>

<dl id="_8025274f-c229-c58c-72a8-811026eb9198"><dt>Identifier</dt>
<dd id="_24ad67b7-07a0-1674-e17f-762de86bf0a9"><p id="_52d068ac-8557-3af2-e980-671c98203bd5">Identifier of the hash function that this specifier applies to.</p>
</dd>
<dt>Description</dt>
<dd id="_2312e611-43be-5713-a6b4-4fd1270864d9"><p id="_0a4def0c-ac1f-91c3-289b-d102036509f6">A short but clear description of the hash function specifier.</p>
</dd>
<dt>Order</dt>
<dd id="_a3dccba6-7f11-8da3-7a64-629beb2263e0"><p id="_6a594192-141b-783c-ff80-4ff433f57024">In which position in the specifier list should this specifier be found.</p>
</dd>
<dt>Value Type</dt>
<dd id="_f5094f8f-eaa4-c05c-8721-c8e2cadfae20"><p id="_551a6614-fb36-1c7b-6e5c-914c95079a5e">The type of specifier value (e.g., text).</p>
</dd>
<dt>Example(s)</dt>
<dd id="_36750a0a-c6c0-1ae2-c4f6-d18c2e398902"><p id="_2adf8188-46b9-0019-fac3-e220f21f3af6">One or more examples of input and output of the hash function.</p>
</dd>
</dl>
</clause>

<clause id="_4692188d-5739-c64e-53bf-2103aee84ab4" obligation="normative">
<title id="_23d11397-00c3-4f76-2b39-739453f3b814">Initial Registrations</title>
<p id="_c940454d-3666-a265-e56b-503efef9b5d5">The following table has been used to initialize the Hash Function Specifier registry.</p>

<table id="_5a608192-fc68-e921-eb5a-1abe154c3d03"><thead><tr id="_337a139a-9ba8-380b-7dbc-ba7156dcd262"><th id="_71a37dfa-49d9-e926-754b-9a3a726fc655" valign="top" align="left">ID</th>
<th id="_61bd7224-b678-0909-9677-79badc88dbff" valign="top" align="left">Order</th>
<th id="_56d32a41-8f77-ddcd-88af-a9f40fb0a799" valign="top" align="left">Description</th>
<th id="_2c812f65-00c6-9284-5a29-36a4e88ced14" valign="top" align="left">Value Type</th>
<th id="_c9e5273c-8359-d7a7-70ad-84479682c628" valign="top" align="left">Example(s)</th>
</tr></thead>
<tbody><tr id="_32344f8d-c9c6-dc36-ee88-d57cc77276ae"><td id="_8ff8c661-26ad-1feb-e558-6b78a0d0bcc3" valign="top" align="left">shake128</td>
<td id="_9e710b4d-3741-1fd0-eba2-4d8fcc8a904d" valign="top" align="left">1</td>
<td id="_1ba72e53-3911-3059-3807-b9396a4481f7" valign="top" align="left">L: output bit length</td>
<td id="_0ceb83f4-e8bb-18f9-cbb9-dfc5a03aecb0" valign="top" align="left">integer</td>
<td id="_f8019349-53af-4664-1023-1702f106bb4d" valign="top" align="left"><xref target="hash_registry_shake128"/></td>
</tr><tr id="_888a7256-0c16-9b02-08b1-e97684dd244c"><td id="_bdb41c9c-886d-5673-0d6e-9817d51c2afc" valign="top" align="left">shake256</td>
<td id="_51f11ea6-f2e6-4570-3b77-e21c82bded48" valign="top" align="left">1</td>
<td id="_e626ec32-a722-2dd3-411f-2bff45eb45c6" valign="top" align="left">L: output bit length</td>
<td id="_4235285b-562b-4e17-b096-8d12f3965763" valign="top" align="left">integer</td>
<td id="_0209e194-6b19-d123-4312-11cee24c6ab5" valign="top" align="left"><xref target="hash_registry_shake256"/></td>
</tr><tr id="_6a9363f7-a2de-7f36-dd21-a182b3d71657"><td id="_4f56e4d9-da49-e7be-580c-f5eb64190516" valign="top" align="left">cshake128</td>
<td id="_634b421d-70e2-5ffc-de5d-0f3e2c546300" valign="top" align="left">1</td>
<td id="_ae021b7c-c0a0-3803-fbd3-1ef4f75ab4c1" valign="top" align="left">L: output bit length</td>
<td id="_f8891bc1-a6a3-4a91-520e-2952db2d8aaf" valign="top" align="left">integer</td>
<td id="_41422612-d1d3-674a-0179-c6391edb70b6" valign="top" align="left"><xref target="hash_registry_cshake128"/></td>
</tr><tr id="_04e02dbc-f4eb-18f3-4fcd-87cd6b002e35"><td id="_58a1ebb9-1286-4874-6a4e-4f7b45a5f7ff" valign="top" align="left">cshake128</td>
<td id="_2df3d22b-c26a-7c46-b8aa-11c85f6aefd0" valign="top" align="left">2</td>
<td id="_a0051b95-1dfb-d045-dcbc-795daf7e6025" valign="top" align="left">N: function-name</td>
<td id="_c3ad2f9c-cb21-2d7b-73de-4a58b0b88744" valign="top" align="left">text</td>
<td id="_a0f3e34a-e368-2c6d-dbfe-b0aadb11da14" valign="top" align="left"><xref target="hash_registry_cshake128"/></td>
</tr><tr id="_95d6d075-b992-16fd-292c-304c36ee4af4"><td id="_d05a6777-39bc-52b8-9829-346b0758d6e3" valign="top" align="left">cshake128</td>
<td id="_086d1a9c-afe3-eea0-3322-40e6409557ae" valign="top" align="left">3</td>
<td id="_1d63bbe5-20c9-c2ba-4e7f-1cac03db0d46" valign="top" align="left">S: customization string</td>
<td id="_640c298f-f162-60ca-9c3e-c0d143aa57e8" valign="top" align="left">text</td>
<td id="_e9be59bb-7882-6ae2-8cc2-e8d23ac19ebf" valign="top" align="left"><xref target="hash_registry_cshake128"/></td>
</tr><tr id="_ba527f3c-3d07-8e6b-a251-b7151cfb49ec"><td id="_9f487a5a-1911-4071-d078-eac913b5ffd3" valign="top" align="left">cshake256</td>
<td id="_6e56da72-660e-c9ca-1c98-561eac0abe27" valign="top" align="left">1</td>
<td id="_0853cb01-3a3f-42d4-064b-ccbc9e7efdcc" valign="top" align="left">L: output bit length</td>
<td id="_f58c39f8-1251-178e-e134-8b4d85149c96" valign="top" align="left">integer</td>
<td id="_843dc215-fd62-0e60-70fb-f6f3ee6c928d" valign="top" align="left"><xref target="hash_registry_cshake256"/></td>
</tr><tr id="_21aa2d4d-e24b-5ca3-bb8e-6d499d3d92fd"><td id="_86c1667e-24fa-53f1-8552-0771912487b0" valign="top" align="left">cshake256</td>
<td id="_bb9fe8c1-aac3-8e01-27f0-0c378dc51a62" valign="top" align="left">2</td>
<td id="_b5fdd595-0311-80e1-8b9c-0a72620ec84b" valign="top" align="left">N: function-name</td>
<td id="_b0073970-c178-baa2-c3c0-1d57d24b6ccd" valign="top" align="left">text</td>
<td id="_d46256d8-0a75-31dd-7d49-78bb353c6baf" valign="top" align="left"><xref target="hash_registry_cshake256"/></td>
</tr><tr id="_64608561-2764-1dbb-8dfc-2279137a26b4"><td id="_1f1dbcbf-c27f-04e8-9843-6e27de1b953c" valign="top" align="left">cshake256</td>
<td id="_98d1a8f8-4836-de6f-aa8c-ba75c68d8d0f" valign="top" align="left">3</td>
<td id="_4d704c99-fe5c-e236-e3d9-9d63e25cfc0f" valign="top" align="left">S: customization string</td>
<td id="_005c980a-817c-a75a-7762-aa434498d1f3" valign="top" align="left">text</td>
<td id="_40bbbfce-ee2e-a318-bcad-14d701cdd95f" valign="top" align="left"><xref target="hash_registry_cshake256"/></td>
</tr><tr id="_641502f0-9f13-9b68-291b-5ed08a8853fa"><td id="_8b43585d-8664-39aa-d314-a9cd03625735" valign="top" align="left">parallel128</td>
<td id="_060097f5-5d20-cbbc-e343-41729193c29e" valign="top" align="left">1</td>
<td id="_66e8bd2e-c855-86be-e540-3b3ec368899f" valign="top" align="left">B: block size in bytes</td>
<td id="_5498d0d1-2a3c-9ae1-2084-ac51a9113b6d" valign="top" align="left">text</td>
<td id="_085fc365-370e-97a7-bafe-2cc7757824e6" valign="top" align="left"><xref target="hash_registry_parallel128"/></td>
</tr><tr id="_4a4771a7-d37c-e36d-5363-78b2e2d9c458"><td id="_9e2244fd-f242-d493-73e4-f726da051535" valign="top" align="left">parallel128</td>
<td id="_e9dc8f96-b9b8-2342-fb19-c05fe10c8c5c" valign="top" align="left">2</td>
<td id="_19cae646-7b7b-88f7-089c-43f039ce3b86" valign="top" align="left">L: output bit length</td>
<td id="_80e0acc6-4a32-a4ef-18c9-245859802f13" valign="top" align="left">integer</td>
<td id="_a9d69f75-fc76-95da-a754-794f6e6ba754" valign="top" align="left"><xref target="hash_registry_parallel128"/></td>
</tr><tr id="_67325ae4-8ddc-8a76-bb0b-a3a4291d4eee"><td id="_0986395d-0e5c-8516-6fa2-23b6dfa6080c" valign="top" align="left">parallel128</td>
<td id="_e1814f45-bea8-542b-a6bb-3bab443a6d25" valign="top" align="left">3</td>
<td id="_2becaf44-ebc4-3626-c6d8-b24c1386385f" valign="top" align="left">S: customization string</td>
<td id="_e59aee9b-001b-831a-f08f-b5ae5c48500f" valign="top" align="left">text</td>
<td id="_78d3c187-0583-36c2-d430-7d820410a6be" valign="top" align="left"><xref target="hash_registry_parallel128"/></td>
</tr><tr id="_f17ab0a4-c00f-d884-3e56-75f7e326abde"><td id="_42bb4881-e4e6-e67a-6bf4-5c82c5f70896" valign="top" align="left">parallel256</td>
<td id="_ac004e21-f61f-bee4-9f66-c82586c7a0bf" valign="top" align="left">1</td>
<td id="_09f01d55-d561-ca6f-02a5-38f0132c398e" valign="top" align="left">B: block size in bytes</td>
<td id="_6b1d1097-c3b2-d698-edd4-526e4ec82c56" valign="top" align="left">text</td>
<td id="_3bf87275-56ca-942c-4bf8-90514336d570" valign="top" align="left"><xref target="hash_registry_parallel256"/></td>
</tr><tr id="_7c9a78f9-cdbe-b374-fc79-91f715437263"><td id="_f2c98ef5-eb73-f62a-f0aa-8ed752b46c59" valign="top" align="left">parallel256</td>
<td id="_15b769c0-2c99-6309-8c65-b22f59fc96c9" valign="top" align="left">2</td>
<td id="_d75741aa-ae5c-14fd-10af-19a6c6fec984" valign="top" align="left">L: output bit length</td>
<td id="_144aaa1d-51a2-c90e-2741-f632d71d341e" valign="top" align="left">integer</td>
<td id="_d78048e6-b95b-2b10-be34-255a3fa669c1" valign="top" align="left"><xref target="hash_registry_parallel256"/></td>
</tr><tr id="_ff92c109-0e53-75a3-c2f9-36140eb01946"><td id="_439665ab-7397-b271-bddc-0b2dd49eb180" valign="top" align="left">parallel256</td>
<td id="_51b4554f-a5d4-6f89-15f8-a4b004425e41" valign="top" align="left">3</td>
<td id="_596b1799-4b0f-ca44-f97f-c02b5c998b90" valign="top" align="left">S: customization string</td>
<td id="_964152e2-6024-2ca8-e3da-e45bc3356c8f" valign="top" align="left">text</td>
<td id="_30ed0a10-15c2-526c-065a-5c5cc914d804" valign="top" align="left"><xref target="hash_registry_parallel256"/></td>
</tr></tbody>
</table>
</clause>
</clause>

<clause id="_2a7f3d24-846c-e650-0451-724b7d299aed" obligation="normative">
<title id="_c360d6ba-bc57-e483-1f94-3ac3f5de5793">Property Registrations</title>
<p id="_6ae47fe6-4403-09eb-38ee-195481d1b265">This document defines the following new properties to be added to the registries defined in:</p>

<ul id="_e64482da-f7ca-1014-82d7-646bc87b3415"><li><p id="_3e0947ba-59b8-8877-fd44-0281585d9fb6">vCard registry, <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.3.1</display-text></eref></p>
</li>
<li><p id="_9138821a-7865-a694-5ace-36bab808dcb7">iCalendar registry, <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><display-text>8.3.2</display-text></eref></p>
</li>
</ul>

<table id="_c8e00cbb-7b28-176c-25ff-55f9b1a39987"><thead><tr id="_243ea7d6-6b3c-eade-428c-149c45354f7f"><th id="_3bcfd247-da8c-c0fc-49a5-5a4a4d274db2" valign="top" align="left">Property</th>
<th id="_c9296bfd-8b6a-d4c0-10bf-159ab97f0c77" valign="top" align="left">Status</th>
<th id="_f1709fd0-923d-77f0-1acd-51784dac6786" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_dc148d26-f6a8-2ed1-635c-90073431145b"><td id="_f4b9dade-58e6-84cc-7a81-b4967da9ab95" valign="top" align="left">CHECKSUM</td>
<td id="_a98f8a49-5c13-5ac8-0202-c945cd9c259c" valign="top" align="left">Current</td>
<td id="_f973d0f6-f891-caab-141b-72fb94e0e24e" valign="top" align="left">This document: <xref target="property_checksum"/></td>
</tr></tbody>
</table>
</clause>

<clause id="_52600c6f-f403-4232-1fd9-8fb7196a253f" obligation="normative">
<title id="_8b798786-0629-56b4-6ced-97a9c8cc7084">Parameter Registrations</title>
<p id="_32b92e3b-a5cb-c0cc-e309-1f5a4618dee1">This document defines the following new property parameters to be added to the registries defined in:</p>

<ul id="_d2622888-4108-2d7d-024e-3235451f7d02"><li><p id="_982dd0cb-b64e-0caa-60c5-2241f6bfff2c">vCard registry, <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.3.2</display-text></eref></p>
</li>
<li><p id="_964cfb8a-3e08-0cfe-e6ae-dcf9db9b642b">iCalendar registry, <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><display-text>8.3.3</display-text></eref>:</p>
</li>
</ul>

<table id="_edc25ac5-9839-9158-049e-ce24d0bbb099"><thead><tr id="_eb3a5934-456f-c16b-a95b-cfe57d8672b8"><th id="_b3c4800c-5fb4-61ba-6018-519c3b10a5f0" valign="top" align="left">Parameter</th>
<th id="_4502e2b0-1722-af0e-3b17-4f21b12de03d" valign="top" align="left">Status</th>
<th id="_fd12e526-e337-a47f-a9ee-365294ffc0c8" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_d3b81574-0475-76da-794b-451430a7c03f"><td id="_4b580c4e-b779-0ff8-24d0-c8e9b6119a2d" valign="top" align="left">HASHA</td>
<td id="_83fe3b0b-9456-0572-2d49-63dc26bcdfa6" valign="top" align="left">Current</td>
<td id="_8d23e042-95fd-55de-66a7-73652eec6455" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_39cca2d3-3049-4211-a2d8-0f3585b12f68"><td id="_03f4b7a2-41e5-1343-f46f-4a84a2966a79" valign="top" align="left">HASHP</td>
<td id="_5be27e3b-7e8c-cd79-b988-354686f2ca18" valign="top" align="left">Current</td>
<td id="_73f7529e-72b3-f5d7-083a-ae76684ffde2" valign="top" align="left">This document: <xref target="parameter_hashp"/></td>
</tr></tbody>
</table>

<clause id="_2387408f-8cae-0a21-7d2a-e5a25248ad67" obligation="normative">
<title id="_aa6d8483-7110-c563-c508-42d2cee6214b">Parameter Value Registrations</title>
<p id="_3d70e45d-e48e-4976-539f-ee953215979f">This document defines the following new parameter values to be added to the registries defined in:</p>

<ul id="_849bf601-4664-40e1-f75c-ec3080ad8e37"><li><p id="_49925185-8571-0394-a8c4-5c94a933ed6c">vCard registry, <eref type="inline" bibitemid="RFC6350" citeas="IETF RFC 6350"><display-text>10.3.4</display-text></eref></p>
</li>
<li><p id="_8ed728f5-bc2d-3f71-ee5f-c3bb8bbc398e">iCalendar registry, <eref type="inline" bibitemid="RFC5545" citeas="IETF RFC 5545"><display-text>8.3.4</display-text></eref>:</p>
</li>
</ul>

<table id="_adfb4846-bbfe-ef64-5dfd-a1a634ad5aaa"><thead><tr id="_24dfa615-f1bd-57cb-3f65-7f336f62f9da"><th id="_c012e238-ec30-630e-3671-23789c9d281d" valign="top" align="left">Property</th>
<th id="_a8641227-387c-8988-77b9-81a4951a0319" valign="top" align="left">Parameter</th>
<th id="_b4c283d9-ceb7-57e1-921a-7d68b67e5750" valign="top" align="left">Value</th>
<th id="_e5fcd698-13da-4dea-fdf3-c4bd5cc400bc" valign="top" align="left">Reference</th>
</tr></thead>
<tbody><tr id="_1e49de65-777a-9b13-ecca-fdf1c912dc1b"><td id="_075fa05c-aec9-2ead-c1cb-ad680693aec1" valign="top" align="left">CHECKSUM</td>
<td id="_a3b40c92-054c-ed17-d79e-55cb5ef17bb1" valign="top" align="left">HASHA</td>
<td id="_219c42f2-830e-9f42-e321-956a7f49b023" valign="top" align="left">sha224</td>
<td id="_e2d92446-3e4b-87c2-6c17-52d44ded8b91" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_ad8c93e0-2a9a-069b-76ab-5b087decd8ee"><td id="_748325aa-cf92-4c8e-5776-3fd4281280ed" valign="top" align="left">CHECKSUM</td>
<td id="_60aeddd2-0054-67a5-b358-f236c912f550" valign="top" align="left">HASHA</td>
<td id="_2c17e8e9-a369-40f5-5e4f-96c74aedfdf9" valign="top" align="left">sha256</td>
<td id="_0a8e10e4-fc63-b874-9d9e-fea2629a18c5" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_d7c6b203-d434-5728-4aae-e8e1a4a01416"><td id="_2c7f4087-f232-cfb0-d569-d344c2e95832" valign="top" align="left">CHECKSUM</td>
<td id="_2ec3044f-06ed-fb0d-1238-528257aad441" valign="top" align="left">HASHA</td>
<td id="_c80369e7-795f-fbcb-8b48-92e313fec6a1" valign="top" align="left">sha384</td>
<td id="_60f69864-2ce8-da84-e62e-7d2700bf13d6" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_52bde776-9cc4-baf2-3609-d04e3b4ac3d9"><td id="_d14bc6f1-8608-71e7-8dab-88f4e8774da3" valign="top" align="left">CHECKSUM</td>
<td id="_866fd31e-39d2-c9cc-3179-8b20749d03a0" valign="top" align="left">HASHA</td>
<td id="_c4931339-2191-762b-5ff1-0000fe3be84f" valign="top" align="left">sha512</td>
<td id="_018f8a2e-3b15-bec0-0e3f-ffffa04fcc77" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_588b8833-39eb-b00f-0caa-19cac7f15e2a"><td id="_2d250049-150b-c0cd-fe06-6640d768d182" valign="top" align="left">CHECKSUM</td>
<td id="_6847d91e-2548-daab-1406-e2d9e1583b46" valign="top" align="left">HASHA</td>
<td id="_2721ad13-1a12-06bb-7609-f79a04b90b0c" valign="top" align="left">sha512-224</td>
<td id="_0efb1b37-6237-7b80-72a9-cbfba9e0eac4" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_f870a5b0-0821-6804-0239-67df6c614579"><td id="_97cb21e9-b8d3-a41e-058a-09cdae1352c0" valign="top" align="left">CHECKSUM</td>
<td id="_17492c22-d8bc-9dd9-032a-74c013334855" valign="top" align="left">HASHA</td>
<td id="_4abe1325-cfce-5019-e435-5c83285b0d3b" valign="top" align="left">sha512-256</td>
<td id="_67e20f17-8e16-3ca4-addc-fd2b02b8236e" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_a86a278a-9265-f184-5a3b-bd55d71847ce"><td id="_948a4e93-32d2-edde-f215-1f9b4528b0c1" valign="top" align="left">CHECKSUM</td>
<td id="_8598b66a-d1b2-dda5-9458-34cfab594db1" valign="top" align="left">HASHA</td>
<td id="_81fefc5d-bafc-4039-c505-12e6675b5b11" valign="top" align="left">whirlpool</td>
<td id="_49b3b97f-96d7-a970-d50e-72b9184f34d1" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_70eb2f40-695f-fc75-a412-21b28a6da0f1"><td id="_e7775b78-0aae-419f-6b26-36dd1e6233f9" valign="top" align="left">CHECKSUM</td>
<td id="_7d309a0f-e8dc-b0c0-0c35-c7c50bd46bb1" valign="top" align="left">HASHA</td>
<td id="_827fa1ac-20cd-2026-4ae9-c4014ab4de72" valign="top" align="left">streebog256</td>
<td id="_a1274057-dcbe-2a36-4b1a-30a8d1f33d44" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_588f8c48-4acf-f897-006d-f44c730c583b"><td id="_2553b8cf-b568-d02e-e07f-ffe2dc445530" valign="top" align="left">CHECKSUM</td>
<td id="_050fa3e3-599f-a836-3d30-60657688c0ab" valign="top" align="left">HASHA</td>
<td id="_5fb56720-414b-7cb4-9d68-7c8c5920c2e8" valign="top" align="left">streebog512</td>
<td id="_b908c049-8700-71a8-ac55-12c30dfca2f5" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_cf010f8c-46d8-c7e3-6592-9ff1a355fd94"><td id="_e216b204-d493-8c45-ab57-3a3c9cbd6943" valign="top" align="left">CHECKSUM</td>
<td id="_7af872b6-691e-7627-d2c9-1d2cfdd21d12" valign="top" align="left">HASHA</td>
<td id="_f255477d-9840-40c3-f5da-ac4357cfa182" valign="top" align="left">sha3-224</td>
<td id="_edc736b4-7cb1-0c1d-fc19-8ade4835139d" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_6440bb01-b838-fa32-59ea-aea93c2c71a5"><td id="_604ee8a3-5f23-035c-db03-bf48a545ac1d" valign="top" align="left">CHECKSUM</td>
<td id="_96ca7718-9302-ca8a-ba40-c5dd2a7f9980" valign="top" align="left">HASHA</td>
<td id="_2bafa7dd-6be6-0c7c-bbb4-1e2d8948cb68" valign="top" align="left">sha3-256</td>
<td id="_7aa1c425-4c0f-11c3-52ac-23fbe8f1a81a" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_48bf7ac7-c095-3493-cc10-5a6615da82bf"><td id="_24d8de77-3ba6-09ca-5c88-1e6b9d66b834" valign="top" align="left">CHECKSUM</td>
<td id="_4eab09f7-b6a6-c0e6-9899-fd2c5bc9ba69" valign="top" align="left">HASHA</td>
<td id="_bb773402-f2cd-4286-4b35-6f0f733d5945" valign="top" align="left">sha3-384</td>
<td id="_504c9d3e-affe-2bf1-ac0c-9e88625d9a08" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_0e5128b0-dd88-3bb5-e467-132b2029de83"><td id="_8946d950-8d9e-0803-3c36-8fef839b41e0" valign="top" align="left">CHECKSUM</td>
<td id="_f857b055-b11c-c692-0f45-cb7e6a966989" valign="top" align="left">HASHA</td>
<td id="_d30875df-d0d5-9dcf-08df-ac57abe4a127" valign="top" align="left">sha3-512</td>
<td id="_bd11939c-c4f9-9902-73b6-1bedd2fa2191" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_61908f15-6d7b-02c6-d233-152fd5c20188"><td id="_c128c65b-6d0f-2f96-a452-7c646a4e11bf" valign="top" align="left">CHECKSUM</td>
<td id="_19cbbb8f-a7f0-c8f4-5ed0-ed770148118b" valign="top" align="left">HASHA</td>
<td id="_2454c770-5956-f211-645f-36b63d8c8dfa" valign="top" align="left">sm3</td>
<td id="_a4a8440d-d10a-ab33-6b63-71f84d5f770c" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_15d00078-2bb2-10fb-e154-76ada818c701"><td id="_3eb93893-ae9d-ab03-76fb-652b507ea50d" valign="top" align="left">CHECKSUM</td>
<td id="_774d37d7-9e2f-0bbe-0075-b2ab5d591c72" valign="top" align="left">HASHA</td>
<td id="_ac1b6f39-a554-72ea-ba8f-cc0ebb4a18ab" valign="top" align="left">blake2b256</td>
<td id="_104ce1e3-6de7-3f14-f65a-793ea9537edc" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_933505ea-c46a-6020-0cb3-e0bb61ffe8db"><td id="_4d612614-9429-3052-e3fa-9fd5f25be63a" valign="top" align="left">CHECKSUM</td>
<td id="_d4f99b30-da13-3e5c-282e-b35fe9a6bd49" valign="top" align="left">HASHA</td>
<td id="_817de071-90aa-a914-5aeb-d3336bce8795" valign="top" align="left">blake2b384</td>
<td id="_46a02da9-9d7c-927e-3eef-5ebd80128ac6" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_1ae4c27c-51ca-7612-0856-82ec12cd09c1"><td id="_0cd1a486-42ba-c1ab-c4f1-d77284966f47" valign="top" align="left">CHECKSUM</td>
<td id="_7e2ad246-0d4f-e078-0a10-fdcd41fde3dd" valign="top" align="left">HASHA</td>
<td id="_dc2adfd5-1db3-6be4-50e1-cc17f4282cab" valign="top" align="left">blake2b512</td>
<td id="_45c34e6c-1ccd-7ccc-73fa-dcd8e2a47544" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_ff1f87da-ff50-246d-ea46-0600718dfc35"><td id="_1ba71e47-cf48-ee8f-80b1-d0c8ba2fa8e1" valign="top" align="left">CHECKSUM</td>
<td id="_4f585165-5387-f1c5-3372-94a6ce548409" valign="top" align="left">HASHA</td>
<td id="_e60436ef-9b61-a5ed-d327-a4f5474140e2" valign="top" align="left">blake2s224</td>
<td id="_4052865d-49af-7655-e781-fd57adf6d6bc" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_5d765258-275d-c8c6-d3c8-3d4c8797cfed"><td id="_b598c1ee-3f24-6062-cda9-ffdafb279f1b" valign="top" align="left">CHECKSUM</td>
<td id="_5460202c-f0f3-95bb-1848-8bff11ec91a5" valign="top" align="left">HASHA</td>
<td id="_6830361f-798a-9eac-6ad4-efefcb0647bf" valign="top" align="left">blake2s256</td>
<td id="_6c7034e1-9733-5d86-b366-87ecf21454ba" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_4b7c897a-7445-36c0-d584-7fa013fe0325"><td id="_2cbfbd58-fcbe-57e1-f898-f5301f0c2216" valign="top" align="left">CHECKSUM</td>
<td id="_7912380f-9d6c-4d76-3fcc-42317ee2b1d6" valign="top" align="left">HASHA</td>
<td id="_49fd8d6f-b71d-18f2-c065-41be280686ff" valign="top" align="left">shake128</td>
<td id="_e48602fe-edd9-5b7e-fbd5-bcb53b27fb10" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_c0c7a159-40d4-0d9e-3817-ceda8f06d182"><td id="_f97eeb3e-7cf5-acde-e339-603ba83fffbf" valign="top" align="left">CHECKSUM</td>
<td id="_2d2c92fc-59d2-2a54-3993-4c1acfbe0caf" valign="top" align="left">HASHA</td>
<td id="_5cd0a081-d318-6ba0-d96c-ef0fb4e94707" valign="top" align="left">shake256</td>
<td id="_d1b8d521-14dd-274f-6a3e-7524b2cf54f2" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_17ed1a76-dfee-2217-d29a-8b7ead6de036"><td id="_0eaf50a5-8e18-018c-3faa-20f6fb805c11" valign="top" align="left">CHECKSUM</td>
<td id="_e5d21bed-b411-c5ac-e051-78a3e8b70636" valign="top" align="left">HASHA</td>
<td id="_c65162aa-1b91-ed43-ea20-2df358ee2e3a" valign="top" align="left">cshake128</td>
<td id="_0275e26b-12af-4921-89c1-5435b7004e35" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_e9bff684-8162-150f-f345-91e3d692c8af"><td id="_fc88a7f7-70be-b776-c42b-1dba51983542" valign="top" align="left">CHECKSUM</td>
<td id="_fe254156-cce6-eb55-3d50-c460b7883ef1" valign="top" align="left">HASHA</td>
<td id="_a9f5f89e-f1b4-e7a6-9a96-f5a96d7514a1" valign="top" align="left">cshake256</td>
<td id="_4bcd3d46-0211-845f-362c-289f30c10eaa" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_baa5925f-1252-d88b-5321-2010997637ec"><td id="_30e6757b-2a38-ea00-2e1c-75d7bb5d3719" valign="top" align="left">CHECKSUM</td>
<td id="_15c9e7c8-6a07-da40-158b-e505c6ff885e" valign="top" align="left">HASHA</td>
<td id="_7291ba5c-b731-f2ae-9dda-04d8dc23c026" valign="top" align="left">parallel128</td>
<td id="_13adcad0-1252-504e-a69e-a19d1d841033" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr><tr id="_4b5c4d91-9541-f1b3-ed9f-4e6c83bd9956"><td id="_129de397-c901-4a4a-646a-628fac65becd" valign="top" align="left">CHECKSUM</td>
<td id="_c31777f0-f0d5-d3f6-759b-8ab74eeb9c4c" valign="top" align="left">HASHA</td>
<td id="_1403f956-e36f-875a-f5fe-36ea5744fdbf" valign="top" align="left">parallel256</td>
<td id="_1a5c41d3-3b21-c0df-5e08-6aace8b31dd4" valign="top" align="left">This document: <xref target="parameter_hasha"/></td>
</tr></tbody>
</table>
</clause>
</clause>
</clause>



<clause id="_b1f6adde-6da3-53ff-9aa1-2bccd00fa6ca" anchor="acknowledgements" obligation="normative">
<title id="_b35bbdd0-ef4c-b99e-79e5-d2c81007eefd">Acknowledgements</title>
<p id="_ec15f2aa-9eb5-b7d5-df3f-f0bf2a6a5065">The authors wish to thank the following parties who helped this materialize and for their support of a better world.</p>

<ul id="_c41ee92a-2a29-45ea-15e6-33f23cf75122"><li><p id="_08b9dfa2-3031-83c6-7522-34653bb786da">their families</p>
</li>
<li><p id="_887a3025-cc85-59e9-acde-fcedade1d3c9">the CalConnect TC-VCARD committee</p>
</li>
<li><p id="_2c1de802-7c3c-551e-b0d8-ab2ad689fd1f">members and the Board of Directors of CalConnect</p>
</li>
</ul>

<p id="_82e480b8-cbc2-0a0e-cb63-427bb5e8c186">This specification was developed by the CalConnect TC-VCARD committee.</p>
</clause>


</sections><annex id="_2428f003-f163-14a7-efb2-4dbe480c9bf0" anchor="appendix-a" obligation="normative">
<title id="_fa0a0846-88fb-9d5e-8a89-d6ddd6f2ad6c">Examples</title>
<clause id="_21c763a3-3fd7-63c1-3d77-5892cf620483" obligation="normative">
<title id="_e5477211-dda0-671f-d434-4b601f464fd5">vCard CHECKSUM</title>
<clause id="_c6b7d70b-98e3-eaa0-28f0-694f1eebdc09" obligation="normative">
<title id="_077e8e4a-26a7-4163-093c-10bf0f01d0a9">Original vCard</title>
<sourcecode id="_0105edc1-2386-170a-f972-904f13c3507f"><body>BEGIN:VCARD
VERSION:4.0
KIND:individual
FN:Martin Van Buren
N:Van Buren;Martin;;;Hon.
TEL;VALUE=uri;PREF=1;HASHA="voice,home":tel:+1-888-888-8888;ext=8888
END:VCARD</body></sourcecode>

</clause>

<clause id="_2124d3e2-d3be-e951-b3e8-6645170f1180" obligation="normative">
<title id="_14a155a0-46bc-f892-0a73-e02074b985d3">Setup</title>
<p id="_ad4d42f8-1275-1348-a6bb-e98e6bc4bd11">Location of the CHECKSUM property within the VCARD component does not matter as the method of calculation is agnostic with regards to line location of a property.</p>

<p id="_47c34f0a-d6a3-81b0-565b-d7167241f069">vCard extended with CHECKSUM property for CHECKSUM calculation at the last line, specifying the  <tt>sha512</tt> algorithm and value type <tt>STRING</tt>:</p>

<sourcecode id="_b2a01f12-ed1e-e1db-35c9-cb432a26986d"><body>BEGIN:VCARD
VERSION:4.0
KIND:individual
FN:Martin Van Buren
N:Van Buren;Martin;;;Hon.
TEL;VALUE=uri;PREF=1;TYPE="voice,home":tel:+1-888-888-8888;ext=8888
CHECKSUM;VALUE=TEXT;HASHA=sha3-256:
END:VCARD</body></sourcecode>

</clause>

<clause id="_d436177d-8329-765d-0bb8-d2d60137730a" obligation="normative">
<title id="_6ca70c28-4167-b49f-4a29-c8eb8a33b20c">Normalization: Properties</title>
<sourcecode id="_5963290b-5b71-6d67-edf3-68ce4ef2f303"><body>PREPHASH-PROPERTY("VERSION:4.0") =
  "VERSION:TEXT/[4.0]?#[]"

PREPHASH-PROPERTY("KIND:individual") =
  "KIND:TEXT/[individual]?#[]"

PREPHASH-PROPERTY("FN:Martin Van Buren") =
  "FN:TEXT/[Martin Van Buren]?#[]"

PREPHASH-PROPERTY("N:Van Buren;Martin;;;Hon.") =
  "N:TEXT/[Van Buren;Martin;;;Hon.]?#[]"

PREPHASH-PROPERTY("TEL;VALUE=uri;PREF=1;HASHA="voice,home":") =
  "TEL:URI/[tel:+1-888-888-8888;ext=8888]" +
  "?#[{PREF:[1]};{TYPE:[home;voice]}]"

PREPHASH-PROPERTY("CHECKSUM;VALUE=TEXT;HASHA=sha512:") =
  "CHECKSUM:TEXT/[]?#[{HASHA:[sha512]}]"</body></sourcecode>

</clause>

<clause id="_eb92738e-d153-9c9d-32e8-dac5e52adce2" obligation="normative">
<title id="_ad491f1a-bbd8-0a84-8064-08bb30384c44">Cryptographic Hashing: Properties</title>
<sourcecode id="_2c4ef6d8-b3d4-f153-d20f-45947f4b34cd"><body>HASH("VERSION:TEXT/[4.0]?#[]") =
  "de2a19b21ce6dbbafd3feedebf7560966242d4af0bac8e380024135809729ba4"

HASH("KIND:TEXT/[individual]?#[]") =
  "25603f59dc07e045b470e3d773da10e2485c078c80f4a048c2e1cbeb678ab406"

HASH("FN:TEXT/[Martin Van Buren]?#[]") =
  "a9124e1bd40c8a2cb4031b4140629e2472046f837dddc379a257d5f6e7bceedd"

HASH("N:TEXT/[Van Buren;Martin;;;Hon.]?#[]") =
  "c11eadabeee1252502ddc6c085e5bd7fd48ae183f50399b953bb78a927172dc5"

HASH(
  "TEL:URI/[tel:+1-888-888-8888;ext=8888]" +
  "?#[{PREF:[1]};{HASHA:[home;voice]}]"
) = "dc22433d7cb2445dd9f083a1d998ee00e8f2f369f0e18ddb827f8135f0d7b30d"

HASH("CHECKSUM:TEXT/[]?#[{HASHA:[sha512]}]") =
  "65d32764ab8c9fcdd324f24409c65a45529f4a6df5cd070378463a177de04917"</body></sourcecode>

</clause>

<clause id="_ac207bec-574a-ee65-8269-17393c03fd3b" obligation="normative">
<title id="_bf5525a6-3ac3-0a20-7932-a5db0b087603">Normalization: Component</title>
<sourcecode id="_885e8e9d-e7b9-1f6b-e67e-784d841775e8"><body>HASH-AND-PREPHASH-PROPERTIES(properties) = LIST-TO-TEXT(
  [
    "CHECKSUM:" +
      HASH("CHECKSUM:TEXT/[]?#[{HASHA:[sha512];VALUE:[TEXT]}]"),
    "FN:" +
      HASH("FN:TEXT/[Martin Van Buren]?#[{VALUE:[TEXT]}]"),
    "KIND:" +
      HASH("KIND:TEXT/[individual]?#[{VALUE:[TEXT]}]"),
    "N:" +
      HASH("N:TEXT/[Van Buren;Martin;;;Hon.]?#[{VALUE:[TEXT]}]"),
    "TEL:" +
      HASH(
        "TEL:URI/[tel:+1-888-888-8888;ext=8888]?" +
        "#[{PREF:[1]};{HASHA:[voice;home]};{VALUE:[TEXT]}]"
      ),
    "VERSION:" +
      HASH("VERSION:TEXT/[4.0]?#[{VALUE:[TEXT]}]")
  ],
  CRLF
)</body></sourcecode>


<sourcecode id="_22ffb81f-1d97-1e07-1d62-53f68d6cfdbe"><body>PREPHASH-COMPONENT(component) =
"BEGIN:VCARD:CHECKSUM
CHECKSUM:65d32764ab8c9fcdd324f24409c65a45529f4a6df5cd070378463a177de04917
FN:a9124e1bd40c8a2cb4031b4140629e2472046f837dddc379a257d5f6e7bceedd
KIND:25603f59dc07e045b470e3d773da10e2485c078c80f4a048c2e1cbeb678ab406
N:c11eadabeee1252502ddc6c085e5bd7fd48ae183f50399b953bb78a927172dc5
TEL:dc22433d7cb2445dd9f083a1d998ee00e8f2f369f0e18ddb827f8135f0d7b30d
VERSION:de2a19b21ce6dbbafd3feedebf7560966242d4af0bac8e380024135809729ba4
END:VCARD:CHECKSUM
"</body></sourcecode>

</clause>

<clause id="_0d7c101f-1028-62df-5600-26074cdf5eea" obligation="normative">
<title id="_79ad3df6-5993-a4dc-2548-7bc1f9a50d70">Cryptographic Hashing: Component</title>
<sourcecode id="_f8d75527-33cc-c3c3-4a9f-b4284f9b1d4c"><body>HASH-COMPONENT(component) =
  "212f3486f968df73dc9b9f909e8dfedae866135aeef2ceeaa3393675806960d1"</body></sourcecode>

</clause>

<clause id="_d1aa2466-169b-fbf8-b46a-201955fb00cf" obligation="normative">
<title id="_a1a9690b-ef95-e99b-5900-442dc461f1aa">Final Checksum</title>
<p id="_02940804-a917-4c59-f1d5-cbcf44c2b717">This is the final checksum of this component using the <tt>sha3-256</tt> hash method.</p>

<p id="_46cddda8-9306-a35d-4a95-e4b5d5050a02">The final vCard:</p>

<sourcecode id="_15977734-5647-a63c-f367-68f4875b2444"><body>BEGIN:VCARD
VERSION:4.0
KIND:individual
FN:Martin Van Buren
N:Van Buren;Martin;;;Hon.
TEL;VALUE=uri;PREF=1;HASHA="voice,home":tel:+1-888-888-8888;ext=8888
CHECKSUM;VALUE=TEXT;HASHA=sha3-512:
  212f3486f968df73dc9b9f909e8dfedae866135aeef2ceeaa3393675806960d1
END:VCARD</body></sourcecode>

</clause>
</clause>

<clause id="_39673df3-113a-0109-e983-03b61d1744bf" obligation="normative">
<title id="_61c8885b-dfdc-253c-5352-41dc71c17af3">Hash Functions Registry Examples</title>
<clause id="_546be994-e6ba-227a-b967-c7ba375770bd" anchor="hash_registry_sha224" obligation="normative">
<title id="_47e12e2a-3c22-7e75-dc0a-3841971a0936">SHA-2 SHA-224</title>
<sourcecode id="_30653221-8781-b736-06aa-e64b41c997b7"><body>input("BEGIN:VCARD") = "22e92efac9d7b0e63695a9d960376ace" +
                       "1e69eb317e3d42c5c94f1401"</body></sourcecode>

</clause>

<clause id="_6107ce30-472e-958e-7439-7ca315f17d30" anchor="hash_registry_sha256" obligation="normative">
<title id="_3479c45a-3728-6181-7f50-b57579b146fc">SHA-2 SHA-256</title>
<sourcecode id="_d893eda2-175c-1041-cc02-2c1949c2b7a7"><body>input("BEGIN:VCARD") = "99e3e442c1a5cbd115baa26d077c6bbb" +
                       "423310cd4990051d8974c3b2d581c3d4"</body></sourcecode>

</clause>

<clause id="_6e3d277a-af1e-f293-cc40-85d201d7d844" anchor="hash_registry_sha384" obligation="normative">
<title id="_fca4ca20-cca5-5a02-048d-c816add68b21">SHA-2 SHA-384</title>
<sourcecode id="_63e735cf-efb9-3af4-d140-0628438608c4"><body>input("BEGIN:VCARD") = "4055b176af753e251bc269007569c8f9" +
                       "633e6227a5f9727381cfba0bbb44a0c9" +
                       "25b8d31d72083d9cb4dc1da278f3a4e4"</body></sourcecode>

</clause>

<clause id="_f0c97924-2048-ea86-cd89-993e231e6a24" anchor="hash_registry_sha512" obligation="normative">
<title id="_4c336964-7822-6fa3-07b5-a130858ef2ce">SHA-2 SHA-512</title>
<sourcecode id="_513e4042-b4cf-eb75-c7ac-3fe5acc4997f"><body>input("BEGIN:VCARD") = "a2d5b1339599039a7058d8446442f2cb" +
                       "341a149064eacb31fdc410e57e239849" +
                       "88efffc6f15842a6a6ae08fb4d791d2f" +
                       "9dd9dab4cf724f8e75b9fff2c21d3e1c"</body></sourcecode>

</clause>

<clause id="_2cf75a0b-94ba-5676-6fd5-bc1d28a36bb1" anchor="hash_registry_sha512224" obligation="normative">
<title id="_1d936f13-eac9-5c22-a396-8f48c4fe21f4">SHA-2 SHA-512/224</title>
<sourcecode id="_92cb8732-4fec-1fc6-964f-7cd2133a0356"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_166b9f61-f9af-4fe4-7ee5-b71699a9b1a5" anchor="hash_registry_sha512256" obligation="normative">
<title id="_7166eaef-c0a2-2f8e-5c6d-018659009928">SHA-2 SHA-512/256</title>
<sourcecode id="_019a4aeb-945e-df3d-75b2-ac16dc4c4371"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_66c85b29-ed4f-d28e-0f93-a304e83f5f32" anchor="hash_registry_whirlpool" obligation="normative">
<title id="_c7929b96-d4b4-9cbb-2e3f-5204f58a67a2">WHIRLPOOL (512-bit)</title>
<sourcecode id="_8f51b19d-8bdf-03b4-06fb-27ce49530a53"><body>input("BEGIN:VCARD") = "6e9ca195e4e87afcc624fa88334088fb" +
                       "71038273b16cb1e47888072c03cfaf79" +
                       "29539375c5ff92fbd82b73924ed60b1d" +
                       "c9bb17bdb1bd2447cf2d3218a356736a"</body></sourcecode>

</clause>

<clause id="_55dff8c1-2cb2-c469-ccfc-27e49b359952" anchor="hash_registry_streebog_256" obligation="normative">
<title id="_3548aee9-b9ca-7545-eb35-0f2dd9f7956e">STREEBOG-256</title>
<sourcecode id="_f2c43de4-90f8-eac8-efb5-5cab4238a038"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_d9600b29-918b-bb2b-f4b4-2cf4e78aad11" anchor="hash_registry_streebog_512" obligation="normative">
<title id="_c01a6d90-ee81-c565-caf0-622cc40316f2">STREEBOG-512</title>
<sourcecode id="_bf896105-dc88-0274-57d2-b20fde7a0e28"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_2993f1f2-adbe-dea7-3630-5081376bd850" anchor="hash_registry_sha3_224" obligation="normative">
<title id="_f5517496-e00d-c5a1-feb2-d9152e1930ff">SHA-3-224</title>
<sourcecode id="_4d585617-dfd3-3891-e1b2-f750cdd5f19e"><body>input("BEGIN:VCARD") = "630d7879cac76d221565dcc335bff595" +
                       "158b3496713910cc92166762"</body></sourcecode>

</clause>

<clause id="_93402c1a-15fe-4ed1-3264-bc4ccb2fb491" anchor="hash_registry_sha3_256" obligation="normative">
<title id="_7766fd5b-ec54-6a58-3866-db616761bf9e">SHA-3-256</title>
<sourcecode id="_5b6d688d-09ea-af2d-cf8a-2dcc64cbccaa"><body>input("BEGIN:VCARD") = "f1fcbc9bddcd44b1e50db99a277bc868" +
                       "61736eb32cb30ef7e7a2c9ef95c05d50"</body></sourcecode>

</clause>

<clause id="_66e046dd-d80a-cfec-7d0f-0bf0997e3ccd" anchor="hash_registry_sha3_384" obligation="normative">
<title id="_d0e58117-bbf9-5dbb-a452-ceef5bb65801">SHA-3-384</title>
<sourcecode id="_3eed1408-4aa1-43f8-7962-d59505e67065"><body>input("BEGIN:VCARD") = "2d27f6dccb17bf6da9800386aae4a991" +
                       "cfdebc4f3a971f7d0e5264aa0c7b1394" +
                       "514c2eb5bd724f0702062935de9fd92d"</body></sourcecode>

</clause>

<clause id="_032c34bb-25a6-c95c-2d01-84b66ae04d54" anchor="hash_registry_sha3_512" obligation="normative">
<title id="_1a709502-7ee9-4dd9-511b-86db2feef197">SHA-3-512</title>
<sourcecode id="_b75d01db-2bda-1252-f579-8ba960c375b4"><body>input("BEGIN:VCARD") = "ceb5ab39356ce3440d99375a3098cfa5" +
                       "20db3d54a3c15184be9f19f6483165e7" +
                       "8769d4cf2e7f0976422ed4856122c957" +
                       "d22a3c4b922b733ccefc802eed753027"</body></sourcecode>

</clause>

<clause id="_77b1d195-468b-23aa-def1-9fb4f718353a" anchor="hash_registry_sm3" obligation="normative">
<title id="_3acc4123-ca5c-cc0b-60a3-d4e500425fa2">SM3 (256-bits)</title>
<sourcecode id="_97f565fb-dd05-15ae-dd7b-8cd9cc573fd1"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_94300f76-7b47-3dba-7e52-673388a637f0" anchor="hash_registry_blake2b256" obligation="normative">
<title id="_5c79d916-fb3b-9766-7968-fafd234bbc0e">BLAKE2b-256</title>
<sourcecode id="_3d47d43d-3537-5b71-0d41-1be82c021266"><body>input("BEGIN:VCARD") = ""</body></sourcecode>


<clause id="_965a112f-90cb-1343-3d75-c7811c6807a4" anchor="hash_registry_blake2b384" obligation="normative">
<title id="_8a474d2b-dc52-135b-89b1-d416ee98e13c">BLAKE2b-384</title>
<sourcecode id="_18e15e24-b766-d606-90b1-fc28ef77f0a5"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>
</clause>

<clause id="_6ed08d6e-9144-d3fd-0518-0d2639b9eef2" anchor="hash_registry_blake2b512" obligation="normative">
<title id="_ea398e29-4385-6a81-25f1-cd454f1e70e2">BLAKE2b-512</title>
<sourcecode id="_a2d676da-4418-bb2e-5c0a-1538e55376a1"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_971c8566-9cb0-613e-0aca-5795fa36328c" anchor="hash_registry_blake2s224" obligation="normative">
<title id="_ae685002-99a9-3b1a-fe24-b171467fe3c7">BLAKE2s-224</title>
<sourcecode id="_84a44e15-da3e-2a36-676a-097aa7161daf"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_1bd72939-1bc1-6596-d59c-b1adf94f76c9" anchor="hash_registry_blake2s256" obligation="normative">
<title id="_a762abbc-a1ef-f986-e11c-92e6b9adfee5">BLAKE2s-256</title>
<sourcecode id="_ca59a9d7-ca86-9a55-b681-ed021be9d5a8"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_ecffa2f6-cff5-61e6-54d7-ad8d707b9ed6" anchor="hash_registry_shake128" obligation="normative">
<title id="_61dd000f-a763-a7ed-ba50-54c0475b96b3">SHAKE-128</title>
<sourcecode id="_87e10360-e9be-a784-4eac-f890ea0b6044"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_ad2828e3-a3cf-48fd-e7dc-32a835fac0bb" anchor="hash_registry_shake256" obligation="normative">
<title id="_d49e7a74-ee95-37e4-ffbf-91ec9dc2e9fc">SHAKE-256</title>
<sourcecode id="_50a4b057-a9d2-0e3a-42e4-edb73e3ccda0"><body>input("BEGIN:VCARD") = ""</body></sourcecode>

</clause>

<clause id="_924cb808-7a51-1d40-5bb5-7b9dc63a94ee" anchor="hash_registry_cshake128" obligation="normative">
<title id="_19b6271d-fa8f-ab03-e6c9-a79b742ba3e4">cSHAKE-128</title>
<sourcecode id="_5cdd638b-4cc6-5544-5b23-a8182ce6e1cb"><body>input("BEGIN:VCARD", L, N, S) = ""</body></sourcecode>

</clause>

<clause id="_12789b9e-d107-f6d5-0d13-6996f0b00274" anchor="hash_registry_cshake256" obligation="normative">
<title id="_7b8f1bfa-e28a-341e-e382-4b884ce4191c">cSHAKE-256</title>
<sourcecode id="_200a3759-32a5-5a6b-8dd6-acf6ccd58208"><body>input("BEGIN:VCARD", L, N, S) = ""</body></sourcecode>

</clause>

<clause id="_6df939da-7aa2-44bd-4821-5f879ef7727c" anchor="hash_registry_parallel128" obligation="normative">
<title id="_8177055f-a127-e7c6-a6a7-5399fa57f38b">ParallelHash128</title>
<sourcecode id="_9592553b-03f3-4006-5dc8-4d40edebc67e"><body>input("BEGIN:VCARD", B, L, S) = ""</body></sourcecode>

</clause>

<clause id="_807e325e-e6fe-b7ba-aae5-94157d08ea7f" anchor="hash_registry_parallel256" obligation="normative">
<title id="_7df9240a-016f-2ce3-e591-d0c84b812256">ParallelHash256</title>
<sourcecode id="_942d49a4-ae53-f468-9de6-26e42ac3d904"><body>input("BEGIN:VCARD", B, L, S) = ""</body></sourcecode>

</clause>
</clause>
</annex><bibliography><references id="_82873f3e-8ce8-d1e6-9980-df4065651e9e" normative="true" obligation="informative">
<title id="_270c5ee6-077e-f285-ff95-287984a30140">Normative references</title><p id="_49996d2b-65c1-916b-9bbf-42b933aa0025">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
<bibitem id="_2a95fc64-bebd-ab12-8f45-038f62bdedb0" type="standard" schema-version="v1.5.6" anchor="I-D.calconnect-vobject-vformat">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">The vObject Model and vFormat Syntax</title>

  <uri type="src">https://datatracker.ietf.org/doc/html/draft-calconnect-vobject-vformat-00</uri>
  <docidentifier type="Internet-Draft">draft-calconnect-vobject-vformat</docidentifier>
  <docidentifier type="Internet-Draft" primary="true">draft-calconnect-vobject-vformat-00</docidentifier>
  <docnumber>I-D.calconnect-vobject-vformat</docnumber>
  <date type="published">
    <on>2018-04-19</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Ronald</forename>                              <formatted-initials language="en">R. H.</formatted-initials>          <surname language="en">Tse</surname>          <completename language="en">Ronald Henry Tse</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Ribose</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Peter</forename>                    <formatted-initials language="en">P.</formatted-initials>          <surname language="en">Tam</surname>          <completename language="en">Peter Tam</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Ribose</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Cyrus</forename>                    <formatted-initials language="en">C.</formatted-initials>          <surname language="en">Daboo</surname>          <completename language="en">Cyrus Daboo</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">Apple Inc.</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Kenneth</forename>                    <formatted-initials language="en">K.</formatted-initials>          <surname language="en">Murchison</surname>          <completename language="en">Kenneth Murchison</completename>       </name>

      <affiliation>
        <organization>
          
<name language="en">FastMail Pty Ltd</name>

        </organization>
      </affiliation>
    </person>
  </contributor>
  <version>
    <draft>00</draft>
  </version>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">   This document specifies the vObject data model and its corresponding
   syntax vFormat.

   vObject represents the generalized data model, and vFormat the
   generalized data format, of the following specifications and fully
   covers them:

   o  RFC 6350, vCard version 4.0: the VCARD component;

   o  RFC 5545, Internet Calendaring and Scheduling Core Object
      Specification (iCalendar): the VCALENDAR, VEVENT, VJOURNAL,
      VFREEBUSY, VTIMEZONE, VALARM, VTODO, STANDARD and DAYLIGHT
      components;

   o  RFC 7953, Calendar Availability Extensions: the VAVAILABILITY and
      AVAILABLE components;

   o  I-Ddaboo-icalendar-vpatch, iCalendar Patching: the VPATCH
      component; and

   o  alternative formats for iCalendar and vCard, including RFC 6321,
      xCal; RFC 7265, jCal; RFC 6351, xCard; and RFC 7095, jCard.

   This work is produced by the CalConnect TC-VCARD and TC-CALENDAR
   committees [CALCONNECT-VCARD].

	 </abstract>
  <relation type="updatedBy">
    <bibitem>
      <formattedref>draft-calconnect-vobject-vformat-01</formattedref>
      <uri type="src">https://datatracker.ietf.org/doc/html/draft-calconnect-vobject-vformat-01</uri>
      <docidentifier type="Internet-Draft" primary="true">draft-calconnect-vobject-vformat-01</docidentifier>
    </bibitem>

  </relation>
  <series type="main">
    
<title language="en" script="Latn">Internet-Draft</title>

    <number>draft-calconnect-vobject-vformat-00</number>
  </series>
</bibitem>
<bibitem id="_ec23e88a-baee-dfe5-accb-11343624748d" type="standard" schema-version="v1.5.6" anchor="RFC2119">
  <fetched>2026-05-13</fetched>
  
<title type="main">Key words for use in RFCs to Indicate Requirement Levels</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2119</uri>
  <docidentifier type="IETF" primary="true">RFC 2119</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2119</docidentifier>
  <docnumber>RFC2119</docnumber>
  <date type="published">
    <on>1997-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Bradner</surname>          <completename language="en" script="Latn">S. Bradner</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_b6adea4b-e545-d53f-c9b6-c55097deeb18">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <series>
    
<title>BCP</title>

    <number>14</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>2119</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>Standards</vocab>
  </keyword>
  <keyword>
    <vocab>Track</vocab>
  </keyword>
  <keyword>
    <vocab>Documents</vocab>
  </keyword>
</bibitem>
<bibitem id="_ded84aa1-95e4-21f0-7d0e-d06c3364f5f7" type="standard" schema-version="v1.5.6" anchor="RFC5545">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5545</uri>
  <docidentifier type="IETF" primary="true">RFC 5545</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5545</docidentifier>
  <docnumber>RFC5545</docnumber>
  <date type="published">
    <on>2009-09</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Desruisseaux</surname>          <completename language="en" script="Latn">B. Desruisseaux</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling Standards Simplification</name>

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_dea9e633-4a11-13ff-5081-bc67ab347d4b">This document defines the iCalendar data format for representing and exchanging calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, independent of any particular calendar service or protocol. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>5545</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calsify</vocab>
  </keyword>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>caldav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>meeting</vocab>
  </keyword>
  <keyword>
    <vocab>event</vocab>
  </keyword>
  <keyword>
    <vocab>task</vocab>
  </keyword>
  <keyword>
    <vocab>to-do</vocab>
  </keyword>
  <keyword>
    <vocab>journal</vocab>
  </keyword>
  <keyword>
    <vocab>appointment</vocab>
  </keyword>
  <keyword>
    <vocab>agenda</vocab>
  </keyword>
  <keyword>
    <vocab>schedule</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>imip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>ischedule</vocab>
  </keyword>
  <keyword>
    <vocab>xCalendar</vocab>
  </keyword>
</bibitem>
<bibitem id="_78c84fc3-e119-e935-447c-9aee9b3f2fd7" type="standard" schema-version="v1.5.6" anchor="RFC6321">
  <fetched>2026-05-13</fetched>
  
<title type="main">xCal: The XML Format for iCalendar</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6321</uri>
  <docidentifier type="IETF" primary="true">RFC 6321</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6321</docidentifier>
  <docnumber>RFC6321</docnumber>
  <date type="published">
    <on>2011-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Douglass</surname>          <completename language="en" script="Latn">M. Douglass</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Lees</surname>          <completename language="en" script="Latn">S. Lees</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_11349ce1-62ac-571c-a12b-e1bdf613b9f3">This specification defines “xCal”, an XML format for iCalendar data. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>6321</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>extensible markup language</vocab>
  </keyword>
</bibitem>
<bibitem id="_a0154acc-f76b-91f5-6add-5acb312c057b" type="standard" schema-version="v1.5.6" anchor="RFC6350">
  <fetched>2026-05-13</fetched>
  
<title type="main">vCard Format Specification</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6350</uri>
  <docidentifier type="IETF" primary="true">RFC 6350</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6350</docidentifier>
  <docnumber>RFC6350</docnumber>
  <date type="published">
    <on>2011-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Perreault</surname>          <completename language="en" script="Latn">S. Perreault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>vCard and CardDAV</name>

        <identifier>vcarddav</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_e7d939cb-25c1-460f-70e9-440d97efe7c0">This document defines the vCard data format for representing and exchanging a variety of information about individuals and other entities (e.g., formatted and structured name and delivery addresses, email address, multiple telephone numbers, photograph, logo, audio clips, etc.).  This document obsoletes RFCs 2425, 2426, and 4770, and updates RFC 2739. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC2739</formattedref>
      <docidentifier type="IETF" primary="true">RFC2739</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>6350</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>vCard</vocab>
  </keyword>
</bibitem>
<bibitem id="_e591f4b4-a225-c498-c124-aad7d5eda154" type="standard" schema-version="v1.5.6" anchor="RFC6351">
  <fetched>2026-05-13</fetched>
  
<title type="main">xCard: vCard XML Representation</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6351</uri>
  <docidentifier type="IETF" primary="true">RFC 6351</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6351</docidentifier>
  <docnumber>RFC6351</docnumber>
  <date type="published">
    <on>2011-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">S.</formatted-initials>          <surname language="en" script="Latn">Perreault</surname>          <completename language="en" script="Latn">S. Perreault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>vCard and CardDAV</name>

        <identifier>vcarddav</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_1632a3a3-3821-22ed-e089-f1b6421a6fa2">This document defines the XML schema of the vCard data format. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>6351</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>vCard</vocab>
  </keyword>
</bibitem>
<bibitem id="_06b9dc16-8899-4a24-e365-dd9fcf66819c" type="standard" schema-version="v1.5.6" anchor="RFC6352">
  <fetched>2026-05-13</fetched>
  
<title type="main">CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6352</uri>
  <docidentifier type="IETF" primary="true">RFC 6352</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6352</docidentifier>
  <docnumber>RFC6352</docnumber>
  <date type="published">
    <on>2011-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>vCard and CardDAV</name>

        <identifier>vcarddav</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_3b0baed9-3232-6dfe-1e89-fa552620a2d8">This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing contact information based on the vCard format. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>6352</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>address</vocab>
  </keyword>
  <keyword>
    <vocab>address book</vocab>
  </keyword>
  <keyword>
    <vocab>contact</vocab>
  </keyword>
</bibitem>
<bibitem id="_20809037-473b-59eb-80dd-811978c55b88" type="standard" schema-version="v1.5.6" anchor="RFC7095">
  <fetched>2026-05-13</fetched>
  
<title type="main">jCard: The JSON Format for vCard</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7095</uri>
  <docidentifier type="IETF" primary="true">RFC 7095</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7095</docidentifier>
  <docnumber>RFC7095</docnumber>
  <date type="published">
    <on>2014-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Kewisch</surname>          <completename language="en" script="Latn">P. Kewisch</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>JSON data formats for vCard and iCalendar</name>

        <identifier>jcardcal</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_893407c5-3565-dcb2-40fa-49065efaa21d">This specification defines “jCard”, a JSON format for vCard data.  The vCard data format is a text format for representing and exchanging information about individuals and other entities, for example, telephone numbers, email addresses, structured names, and delivery addresses.  JSON is a lightweight, text-based, language- independent data interchange format commonly used in Internet applications.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>7095</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>jCard</vocab>
  </keyword>
  <keyword>
    <vocab>JSON</vocab>
  </keyword>
  <keyword>
    <vocab>vCard</vocab>
  </keyword>
  <keyword>
    <vocab>addressbook</vocab>
  </keyword>
  <keyword>
    <vocab>contacts</vocab>
  </keyword>
  <keyword>
    <vocab>CardDAV</vocab>
  </keyword>
  <keyword>
    <vocab>PIM</vocab>
  </keyword>
</bibitem>
<bibitem id="_9adeba9a-26d9-9032-f31a-a7b593ec6c10" type="standard" schema-version="v1.5.6" anchor="RFC7265">
  <fetched>2026-05-13</fetched>
  
<title type="main">jCal: The JSON Format for iCalendar</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7265</uri>
  <docidentifier type="IETF" primary="true">RFC 7265</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7265</docidentifier>
  <docnumber>RFC7265</docnumber>
  <date type="published">
    <on>2014-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Kewisch</surname>          <completename language="en" script="Latn">P. Kewisch</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Douglass</surname>          <completename language="en" script="Latn">M. Douglass</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>JSON data formats for vCard and iCalendar</name>

        <identifier>jcardcal</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_06d82109-2a04-4acd-4a4d-e4a23c18c791">This specification defines “jCal”, a JSON format for iCalendar data.  The iCalendar data format is a text format for capturing and exchanging information normally stored within a calendaring and scheduling application, for example, tasks and events.  JSON is a lightweight, text-based, language-independent data interchange format commonly used in Internet applications.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>7265</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
</bibitem>
<bibitem id="_22b50803-4eb4-e6d0-67b0-829809fb92e1" type="standard" schema-version="v1.5.6" anchor="RFC8126">
  <fetched>2026-05-13</fetched>
  
<title type="main">Guidelines for Writing an IANA Considerations Section in RFCs</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8126</uri>
  <docidentifier type="IETF" primary="true">RFC 8126</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8126</docidentifier>
  <docnumber>RFC8126</docnumber>
  <date type="published">
    <on>2017-06</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Cotton</surname>          <completename language="en" script="Latn">M. Cotton</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Leiba</surname>          <completename language="en" script="Latn">B. Leiba</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Narten</surname>          <completename language="en" script="Latn">T. Narten</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_10b294d3-299e-8853-9396-bdec0258948b">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</p>

    <p id="_7136b738-9624-a1c5-def9-00c756926767">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</p>

    <p id="_fd6d9c20-e07d-967d-0332-815455bfc3fe">This is the third edition of this document; it obsoletes RFC 5226.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <series>
    
<title>BCP</title>

    <number>26</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>8126</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>internet assigned numbers authority</vocab>
  </keyword>
  <keyword>
    <vocab>values</vocab>
  </keyword>
  <keyword>
    <vocab>implementations</vocab>
  </keyword>
  <keyword>
    <vocab>code point</vocab>
  </keyword>
  <keyword>
    <vocab>protocol constant</vocab>
  </keyword>
  <keyword>
    <vocab>protocol parameter</vocab>
  </keyword>
  <keyword>
    <vocab>codepoint</vocab>
  </keyword>
</bibitem>
<bibitem id="_17c5fff8-2269-ea21-7503-41e34c98e963" type="standard" schema-version="v1.5.6" anchor="RFC8174">
  <fetched>2026-05-13</fetched>
  
<title type="main">Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8174</uri>
  <docidentifier type="IETF" primary="true">RFC 8174</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8174</docidentifier>
  <docnumber>RFC8174</docnumber>
  <date type="published">
    <on>2017-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Leiba</surname>          <completename language="en" script="Latn">B. Leiba</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_b94f8444-e768-2b90-b106-db0c0ffb4401">RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC2119</formattedref>
      <docidentifier type="IETF" primary="true">RFC2119</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>BCP</title>

    <number>14</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>8174</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
</bibitem>
</references><references id="_474919a2-e1ad-59d4-bd71-e65644ae3cf7" normative="false" obligation="informative">
<title id="_50ceb1e1-516f-2673-d73d-4f0c58b4d023">Bibliography</title><bibitem id="_e5121605-eba3-0b36-1448-f0d875be6a65" type="standard" schema-version="v1.5.6" anchor="ISO-IEC-10118-3">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn" type="title-intro" format="text/plain">IT Security techniques</title>

  
<title language="en" script="Latn" type="title-main" format="text/plain">Hash-functions</title>

  
<title language="en" script="Latn" type="title-part" format="text/plain">Part 3: Dedicated hash-functions</title>

  
<title language="en" script="Latn" type="main" format="text/plain">IT Security techniques — Hash-functions — Part 3: Dedicated hash-functions</title>

  
<title language="fr" script="Latn" type="title-intro" format="text/plain">Techniques de sécurité IT</title>

  
<title language="fr" script="Latn" type="title-main" format="text/plain">Fonctions de brouillage</title>

  
<title language="fr" script="Latn" type="title-part" format="text/plain">Partie 3: Fonctions de brouillage dédiées</title>

  
<title language="fr" script="Latn" type="main" format="text/plain">Techniques de sécurité IT — Fonctions de brouillage — Partie 3: Fonctions de brouillage dédiées</title>

  <uri type="src">https://www.iso.org/standard/67116.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:67116:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/06/71/67116.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 10118-3:2018</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 10118-3:2018(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:10118:-3:stage-90.93</docidentifier>
  <docnumber>10118</docnumber>
  <date type="published">
    <on>2018-10</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>4</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This document specifies dedicated hash-functions, i.e. specially designed hash-functions. The hash-functions in this document are based on the iterative use of a round-function. Distinct round-functions are specified, giving rise to distinct dedicated hash-functions.
The use of Dedicated Hash-Functions 1, 2 and 3 in new digital signature implementations is deprecated.
NOTE       As a result of their short hash-code length and/or cryptanalytic results, Dedicated Hash-Functions 1, 2 and 3 do not provide a sufficient level of collision resistance for future digital signature applications and they are therefore, only usable for legacy applications. However, for applications where collision resistance is not required, such as in hash-functions as specified in ISO/IEC 9797‑2, or in key derivation functions specified in ISO/IEC 11770‑6, their use is not deprecated.
Numerical examples for dedicated hash-functions specified in this document are given in Annex B as additional information. For information purposes, SHA-3 extendable-output functions are specified in Annex C.</abstract>
  <abstract language="fr" script="Latn">This document specifies dedicated hash-functions, i.e. specially designed hash-functions. The hash-functions in this document are based on the iterative use of a round-function. Distinct round-functions are specified, giving rise to distinct dedicated hash-functions.
The use of Dedicated Hash-Functions 1, 2 and 3 in new digital signature implementations is deprecated.
NOTE       As a result of their short hash-code length and/or cryptanalytic results, Dedicated Hash-Functions 1, 2 and 3 do not provide a sufficient level of collision resistance for future digital signature applications and they are therefore, only usable for legacy applications. However, for applications where collision resistance is not required, such as in hash-functions as specified in ISO/IEC 9797‑2, or in key derivation functions specified in ISO/IEC 11770‑6, their use is not deprecated.
Numerical examples for dedicated hash-functions specified in this document are given in Annex B as additional information. For information purposes, SHA-3 extendable-output functions are specified in Annex C.</abstract>
  <status>
    <stage>90</stage>
    <substage>93</substage>
  </status>
  <copyright>
    <from>2018</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 10118-3:2004</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 10118-3:2004</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 10118-3:2004/Amd 1:2006</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 10118-3:2004/Amd 1:2006</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 10118-3:2004/Cor 1:2011</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 10118-3:2004/Cor 1:2011</docidentifier>
    </bibitem>

  </relation>
  <place>
    <formattedPlace>Geneva</formattedPlace>
  </place>
</bibitem><bibitem id="_e5478c1c-fb04-c68a-0ef1-8ca5791008a2" type="standard" schema-version="v1.5.6" anchor="ISO-IEC-13239">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn" type="title-intro" format="text/plain">Information technology</title>

  
<title language="en" script="Latn" type="title-main" format="text/plain">Telecommunications and information exchange between systems</title>

  
<title language="en" script="Latn" type="title-part" format="text/plain">High-level data link control (HDLC) procedures</title>

  
<title language="en" script="Latn" type="main" format="text/plain">Information technology — Telecommunications and information exchange between systems — High-level data link control (HDLC) procedures</title>

  
<title language="fr" script="Latn" type="title-intro" format="text/plain">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main" format="text/plain">Télécommunications et échange d’information entre systèmes</title>

  
<title language="fr" script="Latn" type="title-part" format="text/plain">Procédures de commande de liaison de données à haut niveau (HDLC)</title>

  
<title language="fr" script="Latn" type="main" format="text/plain">Technologies de l’information — Télécommunications et échange d’information entre systèmes — Procédures de commande de liaison de données à haut niveau (HDLC)</title>

  <uri type="src">https://www.iso.org/standard/37010.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:37010:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/03/70/37010.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 13239:2002</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 13239:2002(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:13239:stage-90.93</docidentifier>
  <docnumber>13239</docnumber>
  <date type="published">
    <on>2002-07</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Telecommunications and information exchange between systems</name>

        <identifier>ISO/IEC JTC 1/SC 6</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>3</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">This International Standard specifies the frame structures, the elements of procedures, the classes of procedures, the content
and format of the general purpose Exchange Identification (XID) frame, and a means for resolution/negotiation of a data link
layer address in switched environments for data communication systems using bit-oriented high-level data link control
(HDLC) procedures.
NOTE The use of the phrase “bit-oriented”, referring to the HDLC control procedures, pertains to the allocation of a non-integral number
of bits to various subfields used for HDLC control purposes. However, the frame as an entirety may be constructed from octet-oriented units
(e.g., start-stop mode) for transmission purposes.
The frame structure portion defines the relative positions of the various components of the basic frame format and the nonbasic
frame format. The mechanisms used to achieve bit pattern independence (transparency), where and when required, within
the frame are also defined. In addition, three frame checking sequences (FCS) are specified; the rules for address field
extension are defined; and the addressing conventions available are described.
The elements of procedures portion specifies elements of data link control procedures for synchronous or start/stop, codetransparent
data transmission using independent frame numbering in both directions.
These HDLC elements of procedures are defined specifically in terms of the actions that occur on receipt of commands at a
secondary station, a tributary station, a peer station, or a combined station.
This International Standard is intended to cover a wide range of applications; for example one-way, two-way alternate or twoway
simultaneous data communication between data stations which are usually buffered, including operations on different
types of data circuits; for example multipoint/point-to-point, duplex/half-duplex, switched/non-switched, synchronous/startstop,
etc.
The defined elements of procedures are to be considered as a common basis for establishing different types of data link control
procedures. This International Standard does not define any single system and should not be regarded as a specification for a
data communication system. Not all of the commands or responses are required for any particular system implementation.
The classes of procedures portion describes the HDLC unbalanced classes of procedures, the HDLC balanced class of
procedures, and the HDLC connectionless classes of procedures for synchronous or start/stop data transmission.
For the unbalanced classes, the data link consists of a primary station plus one or more secondary stations and operates in
either the normal response mode or the asynchronous response mode in a point-to-point or multipoint configuration. For the
balanced class, the data link consists of two combined stations and operates in the asynchronous balanced mode in a point-topoint
configuration. For the unbalanced connectionless class, the data link consists of a control station plus one or more
tributary stations and operates in the unbalanced connectionless-mode in a point-to-point or multipoint configuration. For the
balanced connectionless class, the data link consists of two peer stations and operates in the balanced connectionless-mode in a
point-to-point configuration. In each class, a basic repertoire of commands and responses is defined, but the capability of the
data link may be modified by the use of optional functions.
Balanced operation is intended for use in circumstances which require equal control at either end of the data link. Operational
requirements are covered in accordance with the overall HDLC architecture.
The content and format of the Exchange Identification (XID) frame portion builds on the fact that the principal use of the XID
frame is to exchange data link information between two or more HDLC stations. For the purpose of this International Standard,
ISO/IEC 13239:2002(E)
2 © ISO/IEC 2002 ? All rights reserved
data link information shall include any and all essential operational characteristics such as identification, authentication and/or
selection of optional functions and facilities concerning each station. This International Standard defines a single-exchange
negotiation procedure for establishing operational characteristics when either one or more stations are capable of providing
multiple selections.
This International Standard provides a means for exchanging the necessary information to establish, at a minimum, a data link
connection between two correspondents wishing to communicate. It describes a general purpose XID frame information field
content and format for that purpose.
It defines encoding for information related to the basic HDLC standards only. Mechanisms are provided to permit the general
purpose XID frame information field to be used to negotiate private parameters in a single XID exchange simultaneously with
negotiation of the defined basic parameters.
This International Standard does not limit or restrict the use of the XID frame information field from defining other standard
formats for use in specific applications.
The following are examples of potential uses of the XID command/response frame interchange:
a) Identification of the calling and called stations when using circuit switched networks (including switched network backup
applications).
b) Identification of stations operating on non-switched networks requiring identification at start-up.
c) The XID command frame with an individual, group or all-station address may be used to solicit XID response frame(s)
from other station(s) on the data link, prior to or following data link establishment.
d) Negotiation of the Frame Check Sequence (FCS) to be used for subsequent information interchange, by stations that
support both 16-bit FCS and 32-bit FCS capabilities.
e) Convey higher layer information that may be required prior to data link establishment.
f) Transmission of an XID response frame at any respond opportunity to request an XID exchange to modify some of the
operational parameters (for example, window size) following data link establishment.
g) Negotiation of the number of protected bits in the frame when an Unnumbered Information with Header check (UIH)
frame is used.
The means for resolution/negotiation of a data link layer address in switched environments portion is applicable to data stations
employing HDLC balanced classes of procedures which provide the XID command/response capability with the two specific
parameter fields, identified below. It is used to select a pair of operational link addresses when preassigned, system designated
addresses are not known on an a priori basis; e.g., switched circuited data links. Additional XID frame functions (including the
exchange of operational parameters, command/response support, higher layer information, etc.) may be accomplished in
conjunction with data link layer address determination or following address determination, with additional XID frame
exchanges.
NOTE Address resolution procedures for situations where the remote DTE does not support XID frames, the “all-station”
address, or complete address support capabilities as defined in clause 8 below are not within the scope of this International
Standard.</abstract>
  <abstract language="fr" script="Latn">This International Standard specifies the frame structures, the elements of procedures, the classes of procedures, the content
and format of the general purpose Exchange Identification (XID) frame, and a means for resolution/negotiation of a data link
layer address in switched environments for data communication systems using bit-oriented high-level data link control
(HDLC) procedures.
NOTE The use of the phrase “bit-oriented”, referring to the HDLC control procedures, pertains to the allocation of a non-integral number
of bits to various subfields used for HDLC control purposes. However, the frame as an entirety may be constructed from octet-oriented units
(e.g., start-stop mode) for transmission purposes.
The frame structure portion defines the relative positions of the various components of the basic frame format and the nonbasic
frame format. The mechanisms used to achieve bit pattern independence (transparency), where and when required, within
the frame are also defined. In addition, three frame checking sequences (FCS) are specified; the rules for address field
extension are defined; and the addressing conventions available are described.
The elements of procedures portion specifies elements of data link control procedures for synchronous or start/stop, codetransparent
data transmission using independent frame numbering in both directions.
These HDLC elements of procedures are defined specifically in terms of the actions that occur on receipt of commands at a
secondary station, a tributary station, a peer station, or a combined station.
This International Standard is intended to cover a wide range of applications; for example one-way, two-way alternate or twoway
simultaneous data communication between data stations which are usually buffered, including operations on different
types of data circuits; for example multipoint/point-to-point, duplex/half-duplex, switched/non-switched, synchronous/startstop,
etc.
The defined elements of procedures are to be considered as a common basis for establishing different types of data link control
procedures. This International Standard does not define any single system and should not be regarded as a specification for a
data communication system. Not all of the commands or responses are required for any particular system implementation.
The classes of procedures portion describes the HDLC unbalanced classes of procedures, the HDLC balanced class of
procedures, and the HDLC connectionless classes of procedures for synchronous or start/stop data transmission.
For the unbalanced classes, the data link consists of a primary station plus one or more secondary stations and operates in
either the normal response mode or the asynchronous response mode in a point-to-point or multipoint configuration. For the
balanced class, the data link consists of two combined stations and operates in the asynchronous balanced mode in a point-topoint
configuration. For the unbalanced connectionless class, the data link consists of a control station plus one or more
tributary stations and operates in the unbalanced connectionless-mode in a point-to-point or multipoint configuration. For the
balanced connectionless class, the data link consists of two peer stations and operates in the balanced connectionless-mode in a
point-to-point configuration. In each class, a basic repertoire of commands and responses is defined, but the capability of the
data link may be modified by the use of optional functions.
Balanced operation is intended for use in circumstances which require equal control at either end of the data link. Operational
requirements are covered in accordance with the overall HDLC architecture.
The content and format of the Exchange Identification (XID) frame portion builds on the fact that the principal use of the XID
frame is to exchange data link information between two or more HDLC stations. For the purpose of this International Standard,
ISO/IEC 13239:2002(E)
2 © ISO/IEC 2002 ? All rights reserved
data link information shall include any and all essential operational characteristics such as identification, authentication and/or
selection of optional functions and facilities concerning each station. This International Standard defines a single-exchange
negotiation procedure for establishing operational characteristics when either one or more stations are capable of providing
multiple selections.
This International Standard provides a means for exchanging the necessary information to establish, at a minimum, a data link
connection between two correspondents wishing to communicate. It describes a general purpose XID frame information field
content and format for that purpose.
It defines encoding for information related to the basic HDLC standards only. Mechanisms are provided to permit the general
purpose XID frame information field to be used to negotiate private parameters in a single XID exchange simultaneously with
negotiation of the defined basic parameters.
This International Standard does not limit or restrict the use of the XID frame information field from defining other standard
formats for use in specific applications.
The following are examples of potential uses of the XID command/response frame interchange:
a) Identification of the calling and called stations when using circuit switched networks (including switched network backup
applications).
b) Identification of stations operating on non-switched networks requiring identification at start-up.
c) The XID command frame with an individual, group or all-station address may be used to solicit XID response frame(s)
from other station(s) on the data link, prior to or following data link establishment.
d) Negotiation of the Frame Check Sequence (FCS) to be used for subsequent information interchange, by stations that
support both 16-bit FCS and 32-bit FCS capabilities.
e) Convey higher layer information that may be required prior to data link establishment.
f) Transmission of an XID response frame at any respond opportunity to request an XID exchange to modify some of the
operational parameters (for example, window size) following data link establishment.
g) Negotiation of the number of protected bits in the frame when an Unnumbered Information with Header check (UIH)
frame is used.
The means for resolution/negotiation of a data link layer address in switched environments portion is applicable to data stations
employing HDLC balanced classes of procedures which provide the XID command/response capability with the two specific
parameter fields, identified below. It is used to select a pair of operational link addresses when preassigned, system designated
addresses are not known on an a priori basis; e.g., switched circuited data links. Additional XID frame functions (including the
exchange of operational parameters, command/response support, higher layer information, etc.) may be accomplished in
conjunction with data link layer address determination or following address determination, with additional XID frame
exchanges.
NOTE Address resolution procedures for situations where the remote DTE does not support XID frames, the “all-station”
address, or complete address support capabilities as defined in clause 8 below are not within the scope of this International
Standard.</abstract>
  <status>
    <stage>90</stage>
    <substage>93</substage>
  </status>
  <copyright>
    <from>2002</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 3309:1993</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 3309:1993</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 4335:1993</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 4335:1993</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 7809:1993</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 7809:1993</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 8885:1993</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 8885:1993</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 13239:2000</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 13239:2000</docidentifier>
    </bibitem>

  </relation>
  <place>
    <formattedPlace>Geneva</formattedPlace>
  </place>
</bibitem><bibitem id="_f4d7cf36-466e-ba15-9bf7-deab6703ef63" type="standard" schema-version="v1.5.6" anchor="ISO-IEC-18004">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn" type="title-intro" format="text/plain">Information technology</title>

  
<title language="en" script="Latn" type="title-main" format="text/plain">Automatic identification and data capture techniques</title>

  
<title language="en" script="Latn" type="title-part" format="text/plain">QR Code bar code symbology specification</title>

  
<title language="en" script="Latn" type="main" format="text/plain">Information technology — Automatic identification and data capture techniques — QR Code bar code symbology specification</title>

  
<title language="fr" script="Latn" type="title-intro" format="text/plain">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main" format="text/plain">Technologie d’identification automatique et de capture des données</title>

  
<title language="fr" script="Latn" type="title-part" format="text/plain">Spécification de la symbologie de code à barres Code QR</title>

  
<title language="fr" script="Latn" type="main" format="text/plain">Technologies de l’information — Technologie d’identification automatique et de capture des données — Spécification de la symbologie de code à barres Code QR</title>

  <uri type="src">https://www.iso.org/standard/62021.html</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/06/20/62021.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 18004:2015</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 18004:2015(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:18004:stage-95.99</docidentifier>
  <docnumber>18004</docnumber>
  <date type="published">
    <on>2015-02</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Automatic identification and data capture techniques</name>

        <identifier>ISO/IEC JTC 1/SC 31</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>3</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">ISO/IEC 18004:2015 defines the requirements for the symbology known as QR Code. It specifies the QR Code symbology characteristics, data character encoding methods, symbol formats, dimensional characteristics, error correction rules, reference decoding algorithm, production quality requirements, and user-selectable application parameters.</abstract>
  <abstract language="fr" script="Latn">L’ISO/IEC 18004:2015 définit les exigences de la symbologie appelée QR Code. Elle spécifie les caractéristiques de la symbologie de QR Code, les méthodes de codage des caractères de données, les formats de symboles, les caractéristiques dimensionnelles, les règles de correction d’erreurs, l’algorithme de décodage de référence, les exigences de qualité de production, ainsi que les paramètres d’application sélectionnables par l’utilisateur.</abstract>
  <status>
    <stage>95</stage>
    <substage>99</substage>
  </status>
  <copyright>
    <from>2015</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 18004:2006</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18004:2006</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 18004:2006/Cor 1:2009</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 18004:2006/Cor 1:2009</docidentifier>
    </bibitem>

  </relation>
  <place>
    <formattedPlace>Geneva</formattedPlace>
  </place>
</bibitem><bibitem id="_c8796193-2b96-0c5f-81fc-148c872a9a62" type="standard" schema-version="v1.5.6" anchor="ISO-IEC-27000">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn" type="title-intro" format="text/plain">Information technology</title>

  
<title language="en" script="Latn" type="title-main" format="text/plain">Security techniques</title>

  
<title language="en" script="Latn" type="title-part" format="text/plain">Information security management systems — Overview and vocabulary</title>

  
<title language="en" script="Latn" type="main" format="text/plain">Information technology — Security techniques — Information security management systems — Overview and vocabulary</title>

  
<title language="fr" script="Latn" type="title-intro" format="text/plain">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main" format="text/plain">Techniques de sécurité</title>

  
<title language="fr" script="Latn" type="title-part" format="text/plain">Systèmes de management de la sécurité de l’information — Vue d’ensemble et vocabulaire</title>

  
<title language="fr" script="Latn" type="main" format="text/plain">Technologies de l’information — Techniques de sécurité — Systèmes de management de la sécurité de l’information — Vue d’ensemble et vocabulaire</title>

  <uri type="src">https://www.iso.org/standard/73906.html</uri>
  <uri type="obp">https://www.iso.org/obp/ui/en/#!iso:std:73906:en</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/07/39/73906.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 27000:2018</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 27000:2018(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:27000:stage-90.92</docidentifier>
  <docnumber>27000</docnumber>
  <date type="published">
    <on>2018-02</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>5</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">ISO/IEC 27000:2018 provides the overview of information security management systems (ISMS). It also provides terms and definitions commonly used in the ISMS family of standards. This document is applicable to all types and sizes of organization (e.g. commercial enterprises, government agencies, not-for-profit organizations).
The terms and definitions provided in this document
-      cover commonly used terms and definitions in the ISMS family of standards;
-      do not cover all terms and definitions applied within the ISMS family of standards; and
-      do not limit the ISMS family of standards in defining new terms for use.</abstract>
  <abstract language="fr" script="Latn">ISO/IEC 27000:2018 offre une vue d’ensemble des systèmes de management de la sécurité de l’information (SMSI). Il comprend également les termes et définitions d’usage courant dans la famille de normes du SMSI. Le présent document est applicable à tous les types et à toutes les tailles d’organismes (par exemple: les entreprises commerciales, les organismes publics, les organismes à but non lucratif).
Les termes et les définitions fournis dans le présent document:
-      couvrent les termes et les définitions d’usage courant dans la famille de normes du SMSI;
-      ne couvrent pas l’ensemble des termes et des définitions utilisés dans la famille de normes du SMSI;
-      ne limitent pas la famille de normes du SMSI en définissant de nouveaux termes à utiliser.</abstract>
  <status>
    <stage>90</stage>
    <substage>92</substage>
  </status>
  <copyright>
    <from>2018</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 27000:2016</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27000:2016</docidentifier>
    </bibitem>

  </relation>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC DIS 27000</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC DIS 27000</docidentifier>
    </bibitem>

  </relation>
  <place>
    <formattedPlace>Geneva</formattedPlace>
  </place>
</bibitem><bibitem id="_e6c898d0-19f6-2c5f-2d88-ab3c242490f2" type="standard" schema-version="v1.5.6" anchor="ISO-IEC-27001">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn" type="title-intro" format="text/plain">Information technology</title>

  
<title language="en" script="Latn" type="title-main" format="text/plain">Security techniques</title>

  
<title language="en" script="Latn" type="title-part" format="text/plain">Information security management systems — Requirements</title>

  
<title language="en" script="Latn" type="main" format="text/plain">Information technology — Security techniques — Information security management systems — Requirements</title>

  
<title language="fr" script="Latn" type="title-intro" format="text/plain">Technologies de l’information</title>

  
<title language="fr" script="Latn" type="title-main" format="text/plain">Techniques de sécurité</title>

  
<title language="fr" script="Latn" type="title-part" format="text/plain">Systèmes de management de la sécurité de l’information — Exigences</title>

  
<title language="fr" script="Latn" type="main" format="text/plain">Technologies de l’information — Techniques de sécurité — Systèmes de management de la sécurité de l’information — Exigences</title>

  <uri type="src">https://www.iso.org/contents/data/standard/05/45/54534.html</uri>
  <uri type="rss">https://www.iso.org/contents/data/standard/05/45/54534.detail.rss</uri>
  <docidentifier type="ISO" primary="true">ISO/IEC 27001:2013</docidentifier>
  <docidentifier type="iso-reference">ISO/IEC 27001:2013(E)</docidentifier>
  <docidentifier type="URN">urn:iso:std:iso-iec:27001:stage-95.99</docidentifier>
  <docnumber>27001</docnumber>
  <date type="published">
    <on>2013-10</on>
  </date>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Organization for Standardization</name>

      <abbreviation>ISO</abbreviation>
      <uri>www.iso.org</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name>International Electrotechnical Commission</name>

      <abbreviation>IEC</abbreviation>
      <uri>www.iec.ch</uri>
    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name>International Organization for Standardization</name>

      <subdivision type="technical-committee" subtype="IEC">
        
<name>Information security, cybersecurity and privacy protection</name>

        <identifier>ISO/IEC JTC 1/SC 27</identifier>
      </subdivision>
      <abbreviation>ISO</abbreviation>
    </organization>
  </contributor>
  <edition>2</edition>
  <language>en</language>
  <language>fr</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">ISO/IEC 27001:2013 specifies the requirements for establishing, implementing, maintaining and continually improving an information security management system within the context of the organization. It also includes requirements for the assessment and treatment of information security risks tailored to the needs of the organization. The requirements set out in ISO/IEC 27001:2013 are generic and are intended to be applicable to all organizations, regardless of type, size or nature.</abstract>
  <abstract language="fr" script="Latn">L’ISO/CEI 27001:2013 spécifie les exigences relatives à l’établissement, à la mise en uvre, à la mise à jour et à l’amélioration continue d’un système de management de la sécurité de l’information dans le contexte d’une organisation. Elle comporte également des exigences sur l’appréciation et le traitement des risques de sécurité de l’information, adaptées aux besoins de l’organisation. Les exigences fixées dans l’ISO/CEI 27001:2013 sont génériques et prévues pour s’appliquer à toute organisation, quels que soient son type, sa taille et sa nature. Il n’est pas admis qu’une organisation s’affranchisse de l’une des exigences spécifiées aux Articles 4 à 10 lorsqu’elle revendique la conformité à l’ISO/CEI 27001:2013.</abstract>
  <status>
    <stage>95</stage>
    <substage>99</substage>
  </status>
  <copyright>
    <from>2013</from>
    <owner>
      <organization>
        
<name>ISO/IEC</name>

      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <bibitem type="standard">
      <formattedref>ISO/IEC 27001:2005</formattedref>
      <docidentifier type="ISO" primary="true">ISO/IEC 27001:2005</docidentifier>
    </bibitem>

  </relation>
  <place>
    <formattedPlace>Geneva</formattedPlace>
  </place>
</bibitem><bibitem id="_ca4b783b-351b-3fdc-748c-6ec4d2fec919" type="standard" schema-version="v1.5.6" anchor="NIST-FIPS-180-4">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">Secure Hash Standard (SHS)</title>

  <uri type="src">https://csrc.nist.gov/pubs/fips/180-4/final</uri>
  <docidentifier type="NIST" primary="true">NIST FIPS 180-4 fpd</docidentifier>
  <date type="published">
    <on>2012-03-06</on>
  </date>
  <date type="obsoleted">
    <on>2015-08-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>National Institute of Standards and Technology</name>

    </organization>
  </contributor>
  <edition>Revision 4</edition>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>withdrawn</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2012</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <relation type="obsoletes">
    <description language="en" script="Latn">supersedes</description>
    <bibitem>
      <formattedref>NIST FIPS 180-4 fpd</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/fips/180-3/final</uri>
      <docidentifier type="NIST" primary="true">NIST FIPS 180-4 fpd</docidentifier>
    </bibitem>

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>NIST FIPS 180-4 fpd</formattedref>
      <uri type="src">https://csrc.nist.gov/pubs/fips/180-4/upd1/final</uri>
      <docidentifier type="NIST" primary="true">NIST FIPS 180-4 fpd</docidentifier>
    </bibitem>

  </relation>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>computer security</vocab>
  </keyword>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>message digest</vocab>
  </keyword>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>hash algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>Federal Information Processing Standards</vocab>
  </keyword>
  <keyword>
    <vocab>Secure Hash Standard</vocab>
  </keyword>
</bibitem><bibitem id="_127a1662-a4b6-2f12-2ade-685db625dbc6" type="standard" schema-version="v1.5.6" anchor="NIST-FIPS-202">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">SHA-3 Standard — Permutation-Based Hash and Extendable-Output Functions</title>

  <uri type="src">https://csrc.nist.gov/pubs/fips/202/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.FIPS.202</uri>
  <docidentifier type="NIST" primary="true">NIST FIPS 202 fpd</docidentifier>
  <docidentifier type="DOI">NIST.FIPS.202</docidentifier>
  <date type="published">
    <on>2015-08-04</on>
  </date>
  <contributor>
    <role type="author"/>
    <organization>
      
<name>National Institute of Standards and Technology</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2015</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>information security</vocab>
  </keyword>
  <keyword>
    <vocab>message digest</vocab>
  </keyword>
  <keyword>
    <vocab>permutation</vocab>
  </keyword>
  <keyword>
    <vocab>SHA-3</vocab>
  </keyword>
  <keyword>
    <vocab>sponge construction</vocab>
  </keyword>
  <keyword>
    <vocab>sponge function</vocab>
  </keyword>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>extendable-output function</vocab>
  </keyword>
  <keyword>
    <vocab>Federal Information Processing Standard</vocab>
  </keyword>
  <keyword>
    <vocab>KECCAK</vocab>
  </keyword>
  <keyword>
    <vocab>XOF</vocab>
  </keyword>
  <keyword>
    <vocab>hash algorithm</vocab>
  </keyword>
  <keyword>
    <vocab>computer security</vocab>
  </keyword>
</bibitem><bibitem id="_836a49b2-4d80-cc46-9071-4a6ba6d93fd3" type="standard" schema-version="v1.5.6" anchor="NIST-SP-800-185">
  <fetched>2026-05-13</fetched>
  
<title language="en" script="Latn">SHA-3 Derived Functions — cSHAKE, KMAC, TupleHash, and ParallelHash</title>

  <uri type="src">https://csrc.nist.gov/pubs/sp/800/185/final</uri>
  <uri type="doi">https://doi.org/10.6028/NIST.SP.800-185</uri>
  <docidentifier type="NIST" primary="true">NIST SP 800-185 fpd</docidentifier>
  <docidentifier type="DOI">NIST.SP.800-185</docidentifier>
  <date type="published">
    <on>2016-12-22</on>
  </date>
  <date type="issued">
    <on>2016-12-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">John</forename>          <surname language="en" script="Latn">Kelsey</surname>          <completename language="en" script="Latn">John M. Kelsey</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Shu-jen</forename>          <surname language="en" script="Latn">Chang</surname>          <completename language="en" script="Latn">Shu-jen H. Chang</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <forename language="en" script="Latn">Ray</forename>          <surname language="en" script="Latn">Perlner</surname>          <completename language="en" script="Latn">Ray A. Perlner</completename>       </name>

      <affiliation>
        <organization>
          
<name>National Institute of Standards and Technology</name>

          <abbreviation>NIST</abbreviation>
        </organization>
      </affiliation>
    </person>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <status>
    <stage>final</stage>
    <substage>active</substage>
    <iteration>final</iteration>
  </status>
  <copyright>
    <from>2016</from>
    <owner>
      <organization>
        
<name>National Institute of Standards and Technology</name>

        <abbreviation>NIST</abbreviation>
        <uri>www.nist.gov</uri>
      </organization>
    </owner>
  </copyright>
  <place>
    <city>Gaithersburg</city>
    <region iso="MD"/>
  </place>
  <keyword>
    <vocab>authentication</vocab>
  </keyword>
  <keyword>
    <vocab>cryptography</vocab>
  </keyword>
  <keyword>
    <vocab>cSHAKE</vocab>
  </keyword>
  <keyword>
    <vocab>customizable SHAKE function</vocab>
  </keyword>
  <keyword>
    <vocab>hash function</vocab>
  </keyword>
  <keyword>
    <vocab>information security</vocab>
  </keyword>
  <keyword>
    <vocab>integrity</vocab>
  </keyword>
  <keyword>
    <vocab>KECCAK</vocab>
  </keyword>
  <keyword>
    <vocab>KMAC</vocab>
  </keyword>
  <keyword>
    <vocab>message authentication code</vocab>
  </keyword>
  <keyword>
    <vocab>parallel hashing</vocab>
  </keyword>
  <keyword>
    <vocab>ParallelHash</vocab>
  </keyword>
  <keyword>
    <vocab>PRF</vocab>
  </keyword>
  <keyword>
    <vocab>pseudorandom function</vocab>
  </keyword>
  <keyword>
    <vocab>SHA-3</vocab>
  </keyword>
  <keyword>
    <vocab>SHAKE</vocab>
  </keyword>
  <keyword>
    <vocab>tuple hashing</vocab>
  </keyword>
  <keyword>
    <vocab>TupleHash</vocab>
  </keyword>
</bibitem><bibitem id="_c63126fc-aa30-3272-2d53-44f8ba0bbaf5" type="standard" schema-version="v1.5.6" anchor="RFC2425">
  <fetched>2026-05-13</fetched>
  
<title type="main">A MIME Content-Type for Directory Information</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2425</uri>
  <docidentifier type="IETF" primary="true">RFC 2425</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2425</docidentifier>
  <docnumber>RFC2425</docnumber>
  <date type="published">
    <on>1998-09</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Howes</surname>          <completename language="en" script="Latn">T. Howes</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Smith</surname>          <completename language="en" script="Latn">M. Smith</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">F.</formatted-initials>          <surname language="en" script="Latn">Dawson</surname>          <completename language="en" script="Latn">F. Dawson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Access, Searching and Indexing of Directories</name>

        <identifier>asid</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_cee71b73-9c21-ee30-998e-70cd61cc45bb">This document defines a MIME Content-Type for holding directory information. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC6350</formattedref>
      <docidentifier type="IETF" primary="true">RFC6350</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>2425</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>TXT-DIR</vocab>
  </keyword>
  <keyword>
    <vocab>MIME</vocab>
  </keyword>
  <keyword>
    <vocab>multipurpose internet mail extensions</vocab>
  </keyword>
  <keyword>
    <vocab>profiles</vocab>
  </keyword>
</bibitem><bibitem id="_aa227339-b56e-d793-f357-69c00363849e" type="standard" schema-version="v1.5.6" anchor="RFC2426">
  <fetched>2026-05-13</fetched>
  
<title type="main">vCard MIME Directory Profile</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc2426</uri>
  <docidentifier type="IETF" primary="true">RFC 2426</docidentifier>
  <docidentifier type="DOI">10.17487/RFC2426</docidentifier>
  <docnumber>RFC2426</docnumber>
  <date type="published">
    <on>1998-09</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">F.</formatted-initials>          <surname language="en" script="Latn">Dawson</surname>          <completename language="en" script="Latn">F. Dawson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Howes</surname>          <completename language="en" script="Latn">T. Howes</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Access, Searching and Indexing of Directories</name>

        <identifier>asid</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_b1fec974-92d6-2722-1ee0-4c5627aaf02a">This memo defines the profile of the MIME Content-Type for directory information for a white-pages person object, based on a vCard electronic business card. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="obsoletedBy">
    <bibitem>
      <formattedref>RFC6350</formattedref>
      <docidentifier type="IETF" primary="true">RFC6350</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>2426</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>MIME-VCARD</vocab>
  </keyword>
  <keyword>
    <vocab>multipurpose internet mail extensions</vocab>
  </keyword>
  <keyword>
    <vocab>white-pages</vocab>
  </keyword>
  <keyword>
    <vocab>electronic</vocab>
  </keyword>
  <keyword>
    <vocab>business</vocab>
  </keyword>
  <keyword>
    <vocab>card</vocab>
  </keyword>
</bibitem><bibitem id="_fe1c3fba-e8a4-74dd-e0cf-3a72ff7f282d" type="standard" schema-version="v1.5.6" anchor="RFC3174">
  <fetched>2026-05-13</fetched>
  
<title type="main">US Secure Hash Algorithm 1 (SHA1)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3174</uri>
  <docidentifier type="IETF" primary="true">RFC 3174</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3174</docidentifier>
  <docnumber>RFC3174</docnumber>
  <date type="published">
    <on>2001-09</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Eastlake 3rd</surname>          <completename language="en" script="Latn">D. Eastlake 3rd</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Jones</surname>          <completename language="en" script="Latn">P. Jones</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_5585d5c5-e889-6ac9-45d2-3214585062ae">The purpose of this document is to make the SHA-1 (Secure Hash Algorithm 1) hash algorithm conveniently available to the Internet community.  This memo provides information for the Internet community.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>3174</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
  <keyword>
    <vocab>FIPS</vocab>
  </keyword>
  <keyword>
    <vocab>federal</vocab>
  </keyword>
  <keyword>
    <vocab>information</vocab>
  </keyword>
  <keyword>
    <vocab>processing</vocab>
  </keyword>
  <keyword>
    <vocab>standard</vocab>
  </keyword>
</bibitem><bibitem id="_9b5cbc2f-2d36-8e23-1bd7-0ec38112e151" type="standard" schema-version="v1.5.6" anchor="RFC3552">
  <fetched>2026-05-13</fetched>
  
<title type="main">Guidelines for Writing RFC Text on Security Considerations</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3552</uri>
  <docidentifier type="IETF" primary="true">RFC 3552</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3552</docidentifier>
  <docnumber>RFC3552</docnumber>
  <date type="published">
    <on>2003-07</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">E.</formatted-initials>          <surname language="en" script="Latn">Rescorla</surname>          <completename language="en" script="Latn">E. Rescorla</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Korver</surname>          <completename language="en" script="Latn">B. Korver</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_80c41b4f-084a-cacb-0bfe-97a84db6f5c4">All RFCs are required to have a Security Considerations section.  Historically, such sections have been relatively weak.  This document provides guidelines to RFC authors on how to write a good Security Considerations section.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</p>

  </abstract>
  <status>
    <stage>BEST CURRENT PRACTICE</stage>
  </status>
  <series>
    
<title>BCP</title>

    <number>72</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>3552</number>
  </series>
  <series type="stream">
    
<title>IAB</title>

  </series>
  <keyword>
    <vocab>RFC</vocab>
  </keyword>
  <keyword>
    <vocab>Request for Comment </vocab>
  </keyword>
  <keyword>
    <vocab>Security Considerations</vocab>
  </keyword>
</bibitem><bibitem id="_fc02e8f0-753c-5696-0f91-4cfa48be1c57" type="standard" schema-version="v1.5.6" anchor="RFC3986">
  <fetched>2026-05-13</fetched>
  
<title type="main">Uniform Resource Identifier (URI): Generic Syntax</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc3986</uri>
  <docidentifier type="IETF" primary="true">RFC 3986</docidentifier>
  <docidentifier type="DOI">10.17487/RFC3986</docidentifier>
  <docnumber>RFC3986</docnumber>
  <date type="published">
    <on>2005-01</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Berners-Lee</surname>          <completename language="en" script="Latn">T. Berners-Lee</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Fielding</surname>          <completename language="en" script="Latn">R. Fielding</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Masinter</surname>          <completename language="en" script="Latn">L. Masinter</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_6c0d7d39-89c7-a8d6-ff0e-8743229ae303">A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>INTERNET STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC1738</formattedref>
      <docidentifier type="IETF" primary="true">RFC1738</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>STD</title>

    <number>66</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>3986</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>Internet protocol</vocab>
  </keyword>
  <keyword>
    <vocab>IP</vocab>
  </keyword>
  <keyword>
    <vocab>uniform resource identifier</vocab>
  </keyword>
  <keyword>
    <vocab>URI</vocab>
  </keyword>
  <keyword>
    <vocab>www</vocab>
  </keyword>
  <keyword>
    <vocab>world wide web</vocab>
  </keyword>
</bibitem><bibitem id="_dfca5283-1c7e-d78c-2394-35371d368928" type="standard" schema-version="v1.5.6" anchor="RFC4791">
  <fetched>2026-05-13</fetched>
  
<title type="main">Calendaring Extensions to WebDAV (CalDAV)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4791</uri>
  <docidentifier type="IETF" primary="true">RFC 4791</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4791</docidentifier>
  <docnumber>RFC4791</docnumber>
  <date type="published">
    <on>2007-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">B.</formatted-initials>          <surname language="en" script="Latn">Desruisseaux</surname>          <completename language="en" script="Latn">B. Desruisseaux</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Dusseault</surname>          <completename language="en" script="Latn">L. Dusseault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_1d8c065b-f4cd-b342-b04f-0c68fdfe3877">This document defines extensions to the Web Distributed Authoring and Versioning (WebDAV) protocol to specify a standard way of accessing, managing, and sharing calendaring and scheduling information based on the iCalendar format.  This document defines the “calendar-access” feature of CalDAV. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>4791</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calsched</vocab>
  </keyword>
  <keyword>
    <vocab>calsch</vocab>
  </keyword>
  <keyword>
    <vocab>calcav</vocab>
  </keyword>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
  <keyword>
    <vocab>webdav</vocab>
  </keyword>
  <keyword>
    <vocab>ical</vocab>
  </keyword>
  <keyword>
    <vocab>icalendar</vocab>
  </keyword>
  <keyword>
    <vocab>itip</vocab>
  </keyword>
  <keyword>
    <vocab>text/calendar</vocab>
  </keyword>
  <keyword>
    <vocab>http</vocab>
  </keyword>
</bibitem><bibitem id="_1723a814-f161-8245-a3cc-cf931b92faeb" type="standard" schema-version="v1.5.6" anchor="RFC4949">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Security Glossary, Version 2</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc4949</uri>
  <docidentifier type="IETF" primary="true">RFC 4949</docidentifier>
  <docidentifier type="DOI">10.17487/RFC4949</docidentifier>
  <docnumber>RFC4949</docnumber>
  <date type="published">
    <on>2007-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">R.</formatted-initials>          <surname language="en" script="Latn">Shirey</surname>          <completename language="en" script="Latn">R. Shirey</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_47bf12c8-2730-646f-105b-36b924eb78d4">This Glossary provides definitions, abbreviations, and explanations of terminology for information system security.  The 334 pages of entries offer recommendations to improve the comprehensibility of written material that is generated in the Internet Standards Process (RFC 2026).  The recommendations follow the principles that such writing should (a) use the same term or definition whenever the same concept is mentioned; (b) use terms in their plainest, dictionary sense; © use terms that are already well-established in open publications; and (d) avoid terms that either favor a particular vendor or favor a particular technology or mechanism over other, competing techniques that already exist or could be developed.  This memo provides information for the Internet community.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>FYI</title>

    <number>36</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>4949</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
  <keyword>
    <vocab>abbreviation</vocab>
  </keyword>
  <keyword>
    <vocab>clarity</vocab>
  </keyword>
  <keyword>
    <vocab>definition</vocab>
  </keyword>
  <keyword>
    <vocab>dictionary</vocab>
  </keyword>
  <keyword>
    <vocab>language</vocab>
  </keyword>
  <keyword>
    <vocab>punctuation</vocab>
  </keyword>
  <keyword>
    <vocab>synonym</vocab>
  </keyword>
  <keyword>
    <vocab>terminology</vocab>
  </keyword>
  <keyword>
    <vocab>writing</vocab>
  </keyword>
</bibitem><bibitem id="_0b152950-69d9-47d2-d39f-13ae766b2c10" type="standard" schema-version="v1.5.6" anchor="RFC5234">
  <fetched>2026-05-13</fetched>
  
<title type="main">Augmented BNF for Syntax Specifications: ABNF</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5234</uri>
  <docidentifier type="IETF" primary="true">RFC 5234</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5234</docidentifier>
  <docnumber>RFC5234</docnumber>
  <date type="published">
    <on>2008-01</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Crocker</surname>          <completename language="en" script="Latn">D. Crocker</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Overell</surname>          <completename language="en" script="Latn">P. Overell</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_354f1419-9489-00e4-d7d8-e720537002fe">Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF.  It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>INTERNET STANDARD</stage>
  </status>
  <series>
    
<title>STD</title>

    <number>68</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>5234</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>ABNF</vocab>
  </keyword>
  <keyword>
    <vocab>backus-naur form</vocab>
  </keyword>
  <keyword>
    <vocab>augmented backus-naur form</vocab>
  </keyword>
  <keyword>
    <vocab>rule definitions</vocab>
  </keyword>
  <keyword>
    <vocab>encoding</vocab>
  </keyword>
  <keyword>
    <vocab>core lexical analyzer</vocab>
  </keyword>
</bibitem><bibitem id="_5a30cac0-b507-4463-dee0-d264b0107c49" type="standard" schema-version="v1.5.6" anchor="RFC5322">
  <fetched>2026-05-13</fetched>
  
<title type="main">Internet Message Format</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5322</uri>
  <docidentifier type="IETF" primary="true">RFC 5322</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5322</docidentifier>
  <docnumber>RFC5322</docnumber>
  <date type="published">
    <on>2008-10</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Resnick</surname>          <completename language="en" script="Latn">P. Resnick</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_b45ff1a7-b648-ae1a-c18a-085bef7dbbab">This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of “electronic mail” messages.  This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, “Standard for the Format of ARPA Internet Text Messages”, updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>DRAFT STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC4021</formattedref>
      <docidentifier type="IETF" primary="true">RFC4021</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>5322</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>MAIL]</vocab>
  </keyword>
  <keyword>
    <vocab>e-mail</vocab>
  </keyword>
  <keyword>
    <vocab>email</vocab>
  </keyword>
  <keyword>
    <vocab>electronic mail</vocab>
  </keyword>
  <keyword>
    <vocab>header</vocab>
  </keyword>
  <keyword>
    <vocab>address</vocab>
  </keyword>
  <keyword>
    <vocab>mailbox</vocab>
  </keyword>
  <keyword>
    <vocab>reply</vocab>
  </keyword>
  <keyword>
    <vocab>forward</vocab>
  </keyword>
  <keyword>
    <vocab>resend</vocab>
  </keyword>
  <keyword>
    <vocab>resent</vocab>
  </keyword>
  <keyword>
    <vocab>folding</vocab>
  </keyword>
  <keyword>
    <vocab>Date</vocab>
  </keyword>
  <keyword>
    <vocab>From</vocab>
  </keyword>
  <keyword>
    <vocab>Sender</vocab>
  </keyword>
  <keyword>
    <vocab>Reply-To</vocab>
  </keyword>
  <keyword>
    <vocab>To</vocab>
  </keyword>
  <keyword>
    <vocab>Cc</vocab>
  </keyword>
  <keyword>
    <vocab>Bcc</vocab>
  </keyword>
  <keyword>
    <vocab>Message-ID</vocab>
  </keyword>
  <keyword>
    <vocab>In-Reply-To</vocab>
  </keyword>
  <keyword>
    <vocab>References</vocab>
  </keyword>
  <keyword>
    <vocab>Subject</vocab>
  </keyword>
  <keyword>
    <vocab>Comments</vocab>
  </keyword>
  <keyword>
    <vocab>Keywords</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Date</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-From</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Sender</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-To</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Cc</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Bcc</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Reply-To</vocab>
  </keyword>
  <keyword>
    <vocab>Resent-Message-ID</vocab>
  </keyword>
  <keyword>
    <vocab>Return-Path</vocab>
  </keyword>
  <keyword>
    <vocab>Received</vocab>
  </keyword>
</bibitem><bibitem id="_3e1cb535-d273-69c6-bfc7-993f97b47230" type="standard" schema-version="v1.5.6" anchor="RFC5546">
  <fetched>2026-05-13</fetched>
  
<title type="main">iCalendar Transport-Independent Interoperability Protocol (iTIP)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5546</uri>
  <docidentifier type="IETF" primary="true">RFC 5546</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5546</docidentifier>
  <docnumber>RFC5546</docnumber>
  <date type="published">
    <on>2009-12</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring and Scheduling Standards Simplification</name>

        <identifier>calsify</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_3d13d3ca-399d-41f3-5890-256b57cc548b">This document specifies a protocol that uses the iCalendar object specification to provide scheduling interoperability between different calendaring systems. This is done without reference to a specific transport protocol so as to allow multiple methods of communication between systems. Subsequent documents will define profiles of this protocol that use specific, interoperable methods of communication between systems.</p>

    <p id="_52b00939-4213-a543-32a4-54a9ae784096">The iCalendar Transport-Independent Interoperability Protocol (iTIP) complements the iCalendar object specification by adding semantics for group scheduling methods commonly available in current calendaring systems. These scheduling methods permit two or more calendaring systems to perform transactions such as publishing, scheduling, rescheduling, responding to scheduling requests, negotiating changes, or canceling. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5545</formattedref>
      <docidentifier type="IETF" primary="true">RFC5545</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>5546</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>calendar</vocab>
  </keyword>
  <keyword>
    <vocab>scheduling</vocab>
  </keyword>
</bibitem><bibitem id="_d0e6c77c-3597-ff09-b0ee-5a2adfda323c" type="standard" schema-version="v1.5.6" anchor="RFC5789">
  <fetched>2026-05-13</fetched>
  
<title type="main">PATCH Method for HTTP</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc5789</uri>
  <docidentifier type="IETF" primary="true">RFC 5789</docidentifier>
  <docidentifier type="DOI">10.17487/RFC5789</docidentifier>
  <docnumber>RFC5789</docnumber>
  <date type="published">
    <on>2010-03</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">L.</formatted-initials>          <surname language="en" script="Latn">Dusseault</surname>          <completename language="en" script="Latn">L. Dusseault</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">J.</formatted-initials>          <surname language="en" script="Latn">Snell</surname>          <completename language="en" script="Latn">J. Snell</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_fc5cd0bf-814d-2e13-d3b4-e06f06f66194">Several applications extending the Hypertext Transfer Protocol (HTTP) require a feature to do partial resource modification.  The existing HTTP PUT method only allows a complete replacement of a document.  This proposal adds a new HTTP method, PATCH, to modify an existing HTTP resource. [STANDARDS-TRACK]</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>5789</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>HTTP</vocab>
  </keyword>
  <keyword>
    <vocab>PATCH</vocab>
  </keyword>
  <keyword>
    <vocab>Hypertext Transfer Protocol</vocab>
  </keyword>
</bibitem><bibitem id="_e429d783-cb65-66fb-0ef6-1866cf42bb1e" type="standard" schema-version="v1.5.6" anchor="RFC6234">
  <fetched>2026-05-13</fetched>
  
<title type="main">US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6234</uri>
  <docidentifier type="IETF" primary="true">RFC 6234</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6234</docidentifier>
  <docnumber>RFC6234</docnumber>
  <date type="published">
    <on>2011-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">D.</formatted-initials>          <surname language="en" script="Latn">Eastlake 3rd</surname>          <completename language="en" script="Latn">D. Eastlake 3rd</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Hansen</surname>          <completename language="en" script="Latn">T. Hansen</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_d5db7c86-2bde-a824-4894-bbeb3318b066">Federal Information Processing Standard, FIPS</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC3174</formattedref>
      <docidentifier type="IETF" primary="true">RFC3174</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>6234</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
</bibitem><bibitem id="_d39ce883-3826-2979-f0ef-b9fdee2d218b" type="standard" schema-version="v1.5.6" anchor="RFC6986">
  <fetched>2026-05-13</fetched>
  
<title type="main">GOST R 34.11-2012: Hash Function</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc6986</uri>
  <docidentifier type="IETF" primary="true">RFC 6986</docidentifier>
  <docidentifier type="DOI">10.17487/RFC6986</docidentifier>
  <docnumber>RFC6986</docnumber>
  <date type="published">
    <on>2013-08</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">V.</formatted-initials>          <surname language="en" script="Latn">Dolmatov</surname>          <completename language="en" script="Latn">V. Dolmatov</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">A.</formatted-initials>          <surname language="en" script="Latn">Degtyarev</surname>          <completename language="en" script="Latn">A. Degtyarev</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_e3fa666e-a4cf-2225-dfeb-32eb85c737bb">This document is intended to be a source of information about the Russian Federal standard hash function (GOST R 34.11-2012), which is one of the Russian cryptographic standard algorithms (called GOST algorithms).  This document updates RFC 5831.</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5831</formattedref>
      <docidentifier type="IETF" primary="true">RFC5831</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>6986</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
</bibitem><bibitem id="_431cb1fc-3d09-9bb1-2a78-1421fd47b5d8" type="standard" schema-version="v1.5.6" anchor="RFC7253">
  <fetched>2026-05-13</fetched>
  
<title type="main">The OCB Authenticated-Encryption Algorithm</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7253</uri>
  <docidentifier type="IETF" primary="true">RFC 7253</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7253</docidentifier>
  <docnumber>RFC7253</docnumber>
  <date type="published">
    <on>2014-05</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Krovetz</surname>          <completename language="en" script="Latn">T. Krovetz</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">P.</formatted-initials>          <surname language="en" script="Latn">Rogaway</surname>          <completename language="en" script="Latn">P. Rogaway</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_5f27fd67-b538-37e2-4e7e-61fbe85b7b8c">This document specifies OCB, a shared-key blockcipher-based encryption scheme that provides confidentiality and authenticity for plaintexts and authenticity for associated data.  This document is a product of the Crypto Forum Research Group (CFRG).</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>7253</number>
  </series>
  <series type="stream">
    
<title>IRTF</title>

  </series>
  <keyword>
    <vocab>OCB</vocab>
  </keyword>
  <keyword>
    <vocab>AEAD</vocab>
  </keyword>
  <keyword>
    <vocab>authenticated-encryption</vocab>
  </keyword>
</bibitem><bibitem id="_40575d0f-d7bf-8b8c-d008-3403c7b159c8" type="standard" schema-version="v1.5.6" anchor="RFC7693">
  <fetched>2026-05-13</fetched>
  
<title type="main">The BLAKE2 Cryptographic Hash and Message Authentication Code (MAC)</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7693</uri>
  <docidentifier type="IETF" primary="true">RFC 7693</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7693</docidentifier>
  <docnumber>RFC7693</docnumber>
  <date type="published">
    <on>2015-11</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>          <surname language="en" script="Latn">M-J. Saarinen</surname>          <completename language="en" script="Latn">M-J. Saarinen</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>          <surname language="en" script="Latn">J-P. Aumasson</surname>          <completename language="en" script="Latn">J-P. Aumasson</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_a46f6a29-b981-9718-3b93-0aa982f5ccdb">This document describes the cryptographic hash function BLAKE2 and makes the algorithm specification and C source code conveniently available to the Internet community.  BLAKE2 comes in two main flavors: BLAKE2b is optimized for 64-bit platforms and BLAKE2s for smaller architectures.  BLAKE2 can be directly keyed, making it functionally equivalent to a Message Authentication Code (MAC).</p>

  </abstract>
  <status>
    <stage>INFORMATIONAL</stage>
  </status>
  <series>
    
<title>RFC</title>

    <number>7693</number>
  </series>
  <series type="stream">
    
<title>INDEPENDENT</title>

  </series>
  <keyword>
    <vocab>BLAKE2</vocab>
  </keyword>
  <keyword>
    <vocab>Cryptographic Hash</vocab>
  </keyword>
</bibitem><bibitem id="_c7cc3430-d348-64af-4e2c-d083ed4e8d18" type="standard" schema-version="v1.5.6" anchor="RFC7953">
  <fetched>2026-05-13</fetched>
  
<title type="main">Calendar Availability</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc7953</uri>
  <docidentifier type="IETF" primary="true">RFC 7953</docidentifier>
  <docidentifier type="DOI">10.17487/RFC7953</docidentifier>
  <docnumber>RFC7953</docnumber>
  <date type="published">
    <on>2016-08</on>
  </date>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">C.</formatted-initials>          <surname language="en" script="Latn">Daboo</surname>          <completename language="en" script="Latn">C. Daboo</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="author"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">M.</formatted-initials>          <surname language="en" script="Latn">Douglass</surname>          <completename language="en" script="Latn">M. Douglass</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Calendaring Extensions</name>

        <identifier>calext</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_0066f384-a3a9-3475-a384-46ed9cab25b4">This document specifies a new iCalendar (RFC 5545) component that allows the publication of available and unavailable time periods associated with a calendar user. This component can be used in standard iCalendar free-busy lookups, including the iCalendar Transport-independent Interoperability Protocol (iTIP; RFC 5546) free-busy requests, to generate repeating blocks of available or busy time with exceptions as needed.</p>

    <p id="_1a37d2a7-038c-9cea-f9cd-eee5a8244159">This document also defines extensions to the Calendaring Extensions to WebDAV (CalDAV) calendar access protocol (RFC 4791) and the associated scheduling protocol (RFC 6638) to specify how this new calendar component can be used when evaluating free-busy time.</p>

  </abstract>
  <status>
    <stage>PROPOSED STANDARD</stage>
  </status>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC4791</formattedref>
      <docidentifier type="IETF" primary="true">RFC4791</docidentifier>
    </bibitem>

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC5545</formattedref>
      <docidentifier type="IETF" primary="true">RFC5545</docidentifier>
    </bibitem>

  </relation>
  <relation type="updates">
    <bibitem>
      <formattedref>RFC6638</formattedref>
      <docidentifier type="IETF" primary="true">RFC6638</docidentifier>
    </bibitem>

  </relation>
  <series>
    
<title>RFC</title>

    <number>7953</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
  <keyword>
    <vocab>availability</vocab>
  </keyword>
  <keyword>
    <vocab>calendaring</vocab>
  </keyword>
  <keyword>
    <vocab>free-busy</vocab>
  </keyword>
  <keyword>
    <vocab>iCalendar</vocab>
  </keyword>
  <keyword>
    <vocab>CalDAV</vocab>
  </keyword>
</bibitem><bibitem id="_53a63599-e716-8c31-5fc6-431df652b51c" type="standard" schema-version="v1.5.6" anchor="RFC8259">
  <fetched>2026-05-13</fetched>
  
<title type="main">The JavaScript Object Notation (JSON) Data Interchange Format</title>

  <uri type="src">https://www.rfc-editor.org/info/rfc8259</uri>
  <docidentifier type="IETF" primary="true">RFC 8259</docidentifier>
  <docidentifier type="DOI">10.17487/RFC8259</docidentifier>
  <docnumber>RFC8259</docnumber>
  <date type="published">
    <on>2017-12</on>
  </date>
  <contributor>
    <role type="editor"/>
    <person>
      
<name>                    <formatted-initials language="en" script="Latn">T.</formatted-initials>          <surname language="en" script="Latn">Bray</surname>          <completename language="en" script="Latn">T. Bray</completename>       </name>

    </person>
  </contributor>
  <contributor>
    <role type="publisher"/>
    <organization>
      
<name language="en">RFC Publisher</name>

    </organization>
  </contributor>
  <contributor>
    <role type="authorizer"/>
    <organization>
      
<name language="en">RFC Series</name>

    </organization>
  </contributor>
  <contributor>
    <role type="author">
      <description>committee</description>
    </role>
    <organization>
      
<name language="en">Internet Engineering Task Force</name>

      <subdivision type="workgroup">
        
<name>Javascript Object Notation Update</name>

        <identifier>jsonbis</identifier>
      </subdivision>
      <abbreviation language="en">IETF</abbreviation>
    </organization>
  </contributor>
  <language>en</language>
  <script>Latn</script>
  <abstract language="en" script="Latn">
    <p id="_268873a0-6d75-f159-3874-fcb2950715db">JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</p>

    <p id="_6e571a86-ded2-b853-f062-845ec75f7b9e">This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</p>

  </abstract>
  <status>
    <stage>INTERNET STANDARD</stage>
  </status>
  <series>
    
<title>STD</title>

    <number>90</number>
  </series>
  <series>
    
<title>RFC</title>

    <number>8259</number>
  </series>
  <series type="stream">
    
<title>IETF</title>

  </series>
</bibitem>

























</references></bibliography>
</metanorma>
