<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-hash-envelope-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title>COSE Hash Envelope</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hash-envelope-01"/>
    <author fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author fullname="Steve Lasker">
      <organization>DataTrails</organization>
      <address>
        <email>steve.lasker@datatrails.ai</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2024" month="October" day="16"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 52?>

<t>This document defines new COSE header parameters for signaling a payload as an output of a hash function.
This mechanism enables faster validation as access to the original payload is not required for signature validation.
Additionally, hints of the detached payload's content format and availability are defined providing references to optional discovery mechanisms that can help to find original payload content.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://cose-wg.github.io/draft-ietf-cose-hash-envelope/draft-ietf-cose-hash-envelope.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-cose-hash-envelope/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR Object Signing and Encryption Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cose-wg/draft-ietf-cose-hash-envelope"/>.</t>
    </note>
  </front>
  <middle>
    <?line 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>COSE defined detached payloads in Section 2 of <xref target="RFC9052"/>, using <tt>nil</tt> as the payload.
In order to verify a signature over a detached payload, the verifier must have access to the payload content.
Storing a hash of the content allows for small signature envelopes, that are easy to transport and verify independently.
Additional hints in the protected header ensure cryptographic agility for the hashing &amp; signing algorithms, and discoverability for the original content which could be prohibitively large to move over a network.
When producing COSE_sign1 with remote signing services, such as a signing api exposed over HTTPS and backed by an HSM, the "ToBeSigned" bytes as described in <xref section="4.4" sectionFormat="of" target="RFC9052"/> need to be transmitted to the HSM in order to be signed.
Some signature algorithms such as ES256 or ES384 allow the "ToBeSigned" to be hashed on the client and sent to the server along with metadata in order to produce a signature.
Other signature algorithms such as EdDSA with Ed25519, or ML-DSA do not expose such a capability.
By producing the "ToBeSigned" on the client, and ensuring that the payload is always a hashed value, the total size of the message to be sent to the service for signing is constrained.
It is still possible for the protected header to be large, but the payload will always be of a fixed size, associated with the hash function chosen.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The terms COSE, CDDL, and EDN are defined in <xref target="RFC9052"/>, <xref target="RFC8610"/>, <xref target="I-D.draft-ietf-cbor-edn-literals"/> respectively.</t>
    </section>
    <section anchor="header-parameters">
      <name>Header Parameters</name>
      <t>To represent a hash of a payload, the following headers are defined:</t>
      <dl>
        <dt>TBD_1:</dt>
        <dd>
          <t>the hash algorithm used to produce the payload.</t>
        </dd>
        <dt>TBD_2:</dt>
        <dd>
          <t>the content type of the bytes that were hashed to produce the payload.</t>
        </dd>
        <dt>TBD_3:</dt>
        <dd>
          <t>an identifier enabling a verifier to retrieve the bytes which were hashed to produce the payload.</t>
        </dd>
      </dl>
    </section>
    <section anchor="hash-envelope-cddl">
      <name>Hash Envelope CDDL</name>
      <sourcecode type="cddl"><![CDATA[
Hash_Envelope_Protected_Header = {
    ; Cryptographic algorithm to use
    ? &(alg: 1) => int,

    ; Type of the envelope
    ? &(typ: 16) => int / tstr

    ; Hash algorithm used to produce the payload from content
    ; -16 for SHA-256,
    ; See https://www.iana.org/assignments/cose/cose.xhtml
    &(payload_hash_alg: TBD_1) => int

    ; Content type of the preimage
    ; (content to be hashed) of the payload
    ; 50 for application/json,
    ; See https://datatracker.ietf.org/doc/html/rfc7252#section-12.3
    &(payload_preimage_content_type: TBD_2) => int

    ; Location the content of the hashed payload is stored
    ; For example:
    ; storage.example/244f...9c19
    ? &(payload_location: TBD_3) => tstr

    * int / tstr => any
}

Hash_Envelope_Unprotected_Header = {
    * int / tstr => any
}

Hash_Envelope_as_COSE_Sign1 = [
    protected : bstr .cbor Hash_Envelope_Protected_Header,
    unprotected : Hash_Envelope_Unprotected_Header,
    payload: bstr / nil,
    signature : bstr
]

Hash_Envelope = #6.18(Hash_Envelope_as_COSE_Sign1)
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t>Label <tt>16</tt> (typ) <bcp14>MAY</bcp14> be used to assign a content format or media type to the entire hash envelope.</t>
        </li>
        <li>
          <t>Label <tt>TBD_1</tt> (payload hash alg) <bcp14>MUST</bcp14> be present in the protected header and <bcp14>MUST NOT</bcp14> be present in the unprotected header.</t>
        </li>
        <li>
          <t>Label <tt>TBD_2</tt> (content type of the preimage of the payload) <bcp14>MAY</bcp14> be present in the protected header or unprotected header.</t>
        </li>
        <li>
          <t>Label <tt>TBD_3</tt> (payload_location) <bcp14>MAY</bcp14> be added to the protected header and <bcp14>MUST NOT</bcp14> be presented in the unprotected header.</t>
        </li>
        <li>
          <t>Label <tt>3</tt> (content_type) <bcp14>MUST NOT</bcp14> be present in the protected or unprotected headers.</t>
        </li>
      </ul>
      <t>Label <tt>3</tt> is easily confused with label <tt>TBD_2</tt> payload_preimage_content_type.
The difference between content_type (3) and payload_preimage_content_type (TBD2) is content_type is used to identify the content format associated with payload, whereas payload_preimage_content_type is used to identify the content format of the bytes which are hashed to produce the payload.</t>
      <t>Profiles that rely on this specification <bcp14>MAY</bcp14> choose to mark TBD_1, TBD_2, TBD_3 (or other header parameters) critical, see <xref section="C.1.3" sectionFormat="of" target="RFC9052"/> for more details.</t>
    </section>
    <section anchor="envelope-edn">
      <name>Envelope EDN</name>
      <t>A hashed payload functions equivalently to an attached payload, with the benefits of being compact in size and providing the ability to validate the signature.</t>
      <sourcecode type="cbor-diag"><![CDATA[
18(                                 / COSE Sign 1                   /
    [
      <<{
        / alg : ES384 / 1: -35,
        / kid / 4: h'75726e3a...32636573',
        / typ / 16: "application/example+cose"
        / payload_hash_alg /
        TBD_1: -16 / sha-256 /
        / payload_preimage_content_type /
        TBD_2: 51 / application/json-patch+json /
        / payload_location /
        TBD_3 : "https://storage.example/a24f9c19"
      }>>
      {}                            / Unprotected                   /
      h'935b5a91...e18a588a',       / Payload                       /
      h'15280897...93ef39e5'        / Signature                     /
    ]
)
]]></sourcecode>
      <t>In this example, the sha256 hash algorithm (-16) is used to hash the payload, which is of content type <tt>application/json-patch+json</tt> identified by the content format <tt>51</tt>.
The full payload is located at "https://storage.example/244f...9c19".
The COSE_sign1 is of type "application/example+cose".
The sha256 hash is signed with ES384 which starts by taking the sha384 hash of the payload (which is a sha256 hash).</t>
    </section>
    <section anchor="encrypted-hashes">
      <name>Encrypted Hashes</name>
      <t>When present in COSE_Encrypt, the header parameters registered in this document leak information about the ciphertext.
These parameters <bcp14>SHOULD NOT</bcp14> be present in COSE_Encrypt headers unless this disclosure is acceptable.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
      <section anchor="choice-of-hash-function">
        <name>Choice of Hash Function</name>
        <t>It is <bcp14>RECOMMENDED</bcp14> to align the strength of the chosen hash function to the strength of the chosen signature algorithm.
For example, when signing with ECDSA using P-256 and SHA-256, use SHA-256 to hash the payload.
It is also possible to use this specification with signature algorithms that support pre-hashing such as Ed25519ph which is described in <xref target="RFC8032"/>, or HashML-DSA which is described in <xref target="FIPS-204"/>.
Note that when using a pre-hash algorithm, the algorithm <bcp14>SHOULD</bcp14> be registered in the IANA COSE Algorithms registry, and should be distinguishable from non-pre hash variants that may also be present.
The approach this specification takes is just one way to perform application agnostic pre-hashing, meaning the pre hashing is not done with binding or confisderation for a specific application context, while preforming application (cose) specific signing, meaning the to be signed bytes include the cose structures necessary to distinguish a cose signature from other digital signature formats.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cose-header-algorithm-parameters">
        <name>COSE Header Algorithm Parameters</name>
        <t>IANA is requested to add the following entries to the <eref target="https://www.iana.org/assignments/cose/cose.xhtml">COSE Header Algorithm Parameters Registry</eref>.</t>
        <section anchor="payload-hash-algorithm">
          <name>Payload Hash Algorithm</name>
          <ul spacing="normal">
            <li>
              <t>Name: payload_hash_alg</t>
            </li>
            <li>
              <t>Label: TBD_1</t>
            </li>
            <li>
              <t>Value type: int</t>
            </li>
            <li>
              <t>Value registry: https://www.iana.org/assignments/cose/cose.xhtml#algorithms</t>
            </li>
            <li>
              <t>Description: Hash algorithm used to produce the payload.</t>
            </li>
          </ul>
        </section>
        <section anchor="payload-pre-image-content-type">
          <name>Payload Pre-image Content Type</name>
          <ul spacing="normal">
            <li>
              <t>Name: payload_preimage_content_type</t>
            </li>
            <li>
              <t>Label: TBD_2</t>
            </li>
            <li>
              <t>Value type: int</t>
            </li>
            <li>
              <t>Value registry: https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats</t>
            </li>
            <li>
              <t>Description: The content format associated with the bytes that were hashed to produce the payload.</t>
            </li>
          </ul>
        </section>
        <section anchor="payload-location">
          <name>Payload Location</name>
          <ul spacing="normal">
            <li>
              <t>Name: payload_location</t>
            </li>
            <li>
              <t>Label: TBD_3</t>
            </li>
            <li>
              <t>Value type: tstr</t>
            </li>
            <li>
              <t>Value registry: none</t>
            </li>
            <li>
              <t>Description: A string or URI as a hint for the location of the payload</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="I-D.draft-ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR) (STD 94, RFC 8949) is
   a data format whose design goals include the possibility of extremely
   small code size, fairly small message size, and extensibility without
   the need for version negotiation.

   In addition to the binary interchange format, CBOR from the outset
   (RFC 7049) defined a text-based "diagnostic notation" in order to be
   able to converse about CBOR data items without having to resort to
   binary data.  RFC 8610 extended this into what is known as Extended
   Diagnostic Notation (EDN).

   This document consolidates the definition of EDN, sets forth a
   further step of its evolution, and is intended to serve as a single
   reference target in specifications that use EDN.

   It specifies an extension point for adding application-oriented
   extensions to the diagnostic notation.  It then defines two such
   extensions that enhance EDN with text representations of epoch-based
   date/times and of IP addresses and prefixes (RFC 9164).

   A few further additions close some gaps in usability.  The document
   modifies one extension originally specified in Appendix G.4 of RFC
   8610 to enable further increasing usability.  To facilitate tool
   interoperation, this document specifies a formal ABNF grammar, and it
   adds media types.


   // The present revision -12 reflects the branch "roll-up" in the
   // repository, an attempt to contain the entire specification of EDN
   // in this document, instead of describing updates to the existing
   // documents RFC 8949 and RFC 8610.  While the WG hasn't taken a
   // decision to follow this updated editorial approach, the feedback
   // has been sufficiently positive that the author believes it is not
   // misleading to make this revision available as the current WG
   // Internet-Draft as well.  That said, this is still a snapshot.  The
   // editorial work on the branch "roll-up" is not complete.  Content
   // will continue to move between sections.  The exact reflection of
   // this document being a replacement for both Section 8 of RFC 8949
   // and Appendix G of RFC 8610 needs to be recorded in the metadata
   // and in abstract and introduction.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-12"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>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.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>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.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <referencegroup anchor="BCP205" target="https://www.rfc-editor.org/info/bcp205">
          <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
            <front>
              <title>Improving Awareness of Running Code: The Implementation Status Section</title>
              <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
              <author fullname="A. Farrel" initials="A." surname="Farrel"/>
              <date month="July" year="2016"/>
              <abstract>
                <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
                <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="205"/>
            <seriesInfo name="RFC" value="7942"/>
            <seriesInfo name="DOI" value="10.17487/RFC7942"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="FIPS-204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 240?>

<section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to RFC Editor: Please remove this section as well as references to <xref target="BCP205"/> before AUTH48.</t>
      <t>This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in <xref target="BCP205"/>.
The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="BCP205"/>, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see fit".</t>
      <section anchor="transmute-prototype">
        <name>Transmute Prototype</name>
        <t>Organization: Transmute Industries Inc</t>
        <t>Name: https://github.com/transmute-industries/transmute</t>
        <t>Description: A command line tool and GitHub action for securing software artifacts in GitHub workflows.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with Azure Key Vault and Google Cloud KMS in addition to supporting local keys.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie@transmute.industries)</t>
      </section>
      <section anchor="datatrails-preview">
        <name>DataTrails Preview</name>
        <t>Organization: DataTrails</t>
        <t>Name: https://github.com/datatrails/scitt-action</t>
        <t>Description: A GitHub Action for registering statements about artifacts on a transparency service.</t>
        <t>Maturity: Preview</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with DataTrails implementation of SCITT.</t>
        <t>License: MIT</t>
        <t>Implementation Experience: Interop testing has been performed between DigiCert and DataTrails. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Steve Lasker (steve.lasker@datatrails.ai)</t>
      </section>
      <section anchor="digicert-preview">
        <name>DigiCert Preview</name>
        <t>Organization: DigiCert</t>
        <t>Name: https://github.com/digicert/scitt-action</t>
        <t>Description: A GitHub Action for remote signing and registering statements about artifacts on a transparency service.</t>
        <t>Maturity: Preview</t>
        <t>Coverage: The current version ('main') implements this specification and demonstrates hash envelope signing with DigiCert Software Trust Manager.</t>
        <t>License: MIT</t>
        <t>Implementation Experience: Interop testing has been performed between DigiCert and DataTrails. The code works as proof of concept, but is not yet production ready.</t>
        <t>Contact: Corey Bonnell (Corey.Bonnell@digicert.com)</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The following individuals provided input into the final form of the document: Carsten Bormann, Henk Birkholz, Antoine Delignat-Lavaud, Cedric Fournet.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
