<?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.2 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-cose-tsa-tst-header-parameter-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="TST Header">COSE Header parameter for RFC 3161 Time-Stamp Tokens</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-cose-tsa-tst-header-parameter-03"/>
    <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@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author initials="M." surname="Riechert" fullname="Maik Riechert">
      <organization>Microsoft</organization>
      <address>
        <postal>
          <country>UK</country>
        </postal>
        <email>Maik.Riechert@microsoft.com</email>
      </address>
    </author>
    <date year="2024" month="September" day="10"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 50?>

<t>This document defines a CBOR Signing And Encrypted (COSE) header parameter for incorporating RFC 3161-based timestamping into COSE message structures (<tt>COSE_Sign</tt> and <tt>COSE_Sign1</tt>).
This enables the use of established RFC 3161 timestamping infrastructure to prove the creation time of a message.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/ietf-scitt/draft-birkholz-cose-tsa-tst-header-parameter"/>.</t>
    </note>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>RFC 3161 <xref target="RFC3161"/> provides a method to timestamp a message digest to prove that it was created before a given time.</t>
      <t>This document defines two new CBOR Object Signing and Encryption (COSE) <xref target="STD96"/> header parameters that carry the TimestampToken (TST) output of RFC 3161, thus allowing existing and widely deployed trust infrastructure to be used with COSE structures used for signing (<tt>COSE_Sign</tt> and <tt>COSE_Sign1</tt>).</t>
      <section anchor="use-cases">
        <name> Use Cases</name>
        <t>This section discusses two use cases, each representing one of the two modes of use defined in <xref target="modes"/>.</t>
        <t>A first use case is a digital document signed alongside a trustworthy timestamp.
This is a common case in legal contracts.
In such scenario, the document signer wants to reinforce the claim that the document existed on a specific date.
To achieve this, the document signer acquires a fresh TST for the document from a TSA, combines it with the document, and then signs the bundle.
Later on, a relying party consuming the signed bundle can be certain that the document existed <em>at least</em> at the time specified by the TSA.
The relying party does not have to trust the signer's clock, which may have been maliciously altered or simply inaccurate.</t>
        <t>This usage scenario motivates the "Timestamp then COSE" mode defined in <xref target="sec-timestamp-then-cose"/>.</t>
        <t>A second use case is the notarization of a signed document by registering it at a Transparency Service.
This is common for accountability and auditability of issued documents.
Once a document is registered at a Transparency Service's append-only log, its log entry cannot be changed.
In certain cases, the registration policy of a Transparency Service may add a trustworthy timestamp to the signed document.
This is done to lock the signature to a specific point in time.
To achieve this, the Transparency Service acquires a TST from a TSA, bundles it alongside the signed document, and then registers it.
A relying party that wants to ascertain the authenticity of the document after the signing key has been compromised, can do so by making sure that no revocation information has been made public before the time asserted in the TST.</t>
        <t>This usage scenario motivates the "COSE then Timestamp" mode described in <xref target="sec-cose-then-timestamp"/>.</t>
      </section>
      <section anchor="requirements-notation">
        <name>Requirements Notation</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?>

</section>
    </section>
    <section anchor="modes">
      <name>Modes of Use</name>
      <t>There are two different modes of composing COSE protection and timestamping, motivated by the usage scenarios discussed above.</t>
      <t>The diagrams in this section illustrate the processing flow of the specified modes.
For simplicity, only the <tt>COSE_Sign1</tt> processing is shown.
Similar diagrams for <tt>COSE_Sign</tt> can be derived by allowing multiple <tt>private-key</tt> boxes and replacing the label <tt>[signature]</tt> with <tt>[signatures]</tt>.</t>
      <section anchor="sec-timestamp-then-cose">
        <name>Timestamp then COSE (TTC)</name>
        <t><xref target="fig-timestamp-then-cose"/> shows the case where a datum is first digested and submitted to a TSA to be timestamped.</t>
        <t>This mode is utilized when the signature should also be performed over the timestamp to provide an immutable timestamp.</t>
        <t>A signed COSE message is then built as follows:</t>
        <ul spacing="normal">
          <li>
            <t>The obtained timestamp token is added to the protected headers,</t>
          </li>
          <li>
            <t>The original datum becomes the payload of the signed COSE message.</t>
          </li>
        </ul>
        <t>The message imprint sent to the TSA (<xref section="2.4" sectionFormat="of" target="RFC3161"/>) <bcp14>MUST</bcp14> be the hash of the payload field of the COSE signed object.</t>
        <figure anchor="fig-timestamp-then-cose">
          <name>Timestamp, then COSE (TCC)</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="464" width="616" viewBox="0 0 616 464" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,304" fill="none" stroke="black"/>
                <path d="M 40,112 L 40,232" fill="none" stroke="black"/>
                <path d="M 48,272 L 48,352" fill="none" stroke="black"/>
                <path d="M 48,384 L 48,416" fill="none" stroke="black"/>
                <path d="M 64,144 L 64,176" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,64" fill="none" stroke="black"/>
                <path d="M 80,176 L 80,232" fill="none" stroke="black"/>
                <path d="M 96,416 L 96,448" fill="none" stroke="black"/>
                <path d="M 128,144 L 128,176" fill="none" stroke="black"/>
                <path d="M 160,336 L 160,352" fill="none" stroke="black"/>
                <path d="M 160,384 L 160,408" fill="none" stroke="black"/>
                <path d="M 208,208 L 208,288" fill="none" stroke="black"/>
                <path d="M 232,128 L 232,176" fill="none" stroke="black"/>
                <path d="M 240,80 L 240,112" fill="none" stroke="black"/>
                <path d="M 240,240 L 240,272" fill="none" stroke="black"/>
                <path d="M 264,384 L 264,408" fill="none" stroke="black"/>
                <path d="M 288,240 L 288,272" fill="none" stroke="black"/>
                <path d="M 304,80 L 304,112" fill="none" stroke="black"/>
                <path d="M 312,128 L 312,176" fill="none" stroke="black"/>
                <path d="M 312,416 L 312,448" fill="none" stroke="black"/>
                <path d="M 320,208 L 320,248" fill="none" stroke="black"/>
                <path d="M 320,264 L 320,288" fill="none" stroke="black"/>
                <path d="M 320,320 L 320,400" fill="none" stroke="black"/>
                <path d="M 352,352 L 352,384" fill="none" stroke="black"/>
                <path d="M 360,64 L 360,88" fill="none" stroke="black"/>
                <path d="M 360,104 L 360,152" fill="none" stroke="black"/>
                <path d="M 360,168 L 360,248" fill="none" stroke="black"/>
                <path d="M 360,264 L 360,304" fill="none" stroke="black"/>
                <path d="M 376,400 L 376,416" fill="none" stroke="black"/>
                <path d="M 384,32 L 384,304" fill="none" stroke="black"/>
                <path d="M 400,352 L 400,384" fill="none" stroke="black"/>
                <path d="M 432,32 L 432,64" fill="none" stroke="black"/>
                <path d="M 432,320 L 432,400" fill="none" stroke="black"/>
                <path d="M 456,112 L 456,160" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,232" fill="none" stroke="black"/>
                <path d="M 544,64 L 544,304" fill="none" stroke="black"/>
                <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 384,32 L 432,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 384,64 L 544,64" fill="none" stroke="black"/>
                <path d="M 40,80 L 152,80" fill="none" stroke="black"/>
                <path d="M 240,80 L 304,80" fill="none" stroke="black"/>
                <path d="M 416,80 L 528,80" fill="none" stroke="black"/>
                <path d="M 304,96 L 376,96" fill="none" stroke="black"/>
                <path d="M 24,112 L 136,112" fill="none" stroke="black"/>
                <path d="M 240,112 L 304,112" fill="none" stroke="black"/>
                <path d="M 400,112 L 512,112" fill="none" stroke="black"/>
                <path d="M 232,128 L 312,128" fill="none" stroke="black"/>
                <path d="M 64,144 L 128,144" fill="none" stroke="black"/>
                <path d="M 168,144 L 192,144" fill="none" stroke="black"/>
                <path d="M 128,160 L 144,160" fill="none" stroke="black"/>
                <path d="M 208,160 L 224,160" fill="none" stroke="black"/>
                <path d="M 312,160 L 376,160" fill="none" stroke="black"/>
                <path d="M 64,176 L 128,176" fill="none" stroke="black"/>
                <path d="M 168,176 L 192,176" fill="none" stroke="black"/>
                <path d="M 232,176 L 312,176" fill="none" stroke="black"/>
                <path d="M 208,208 L 320,208" fill="none" stroke="black"/>
                <path d="M 40,240 L 88,240" fill="none" stroke="black"/>
                <path d="M 240,240 L 288,240" fill="none" stroke="black"/>
                <path d="M 432,240 L 496,240" fill="none" stroke="black"/>
                <path d="M 112,256 L 208,256" fill="none" stroke="black"/>
                <path d="M 296,256 L 384,256" fill="none" stroke="black"/>
                <path d="M 40,272 L 88,272" fill="none" stroke="black"/>
                <path d="M 240,272 L 288,272" fill="none" stroke="black"/>
                <path d="M 432,272 L 496,272" fill="none" stroke="black"/>
                <path d="M 208,288 L 320,288" fill="none" stroke="black"/>
                <path d="M 8,304 L 40,304" fill="none" stroke="black"/>
                <path d="M 56,304 L 360,304" fill="none" stroke="black"/>
                <path d="M 384,304 L 544,304" fill="none" stroke="black"/>
                <path d="M 320,320 L 432,320" fill="none" stroke="black"/>
                <path d="M 48,336 L 248,336" fill="none" stroke="black"/>
                <path d="M 352,352 L 400,352" fill="none" stroke="black"/>
                <path d="M 352,384 L 400,384" fill="none" stroke="black"/>
                <path d="M 320,400 L 432,400" fill="none" stroke="black"/>
                <path d="M 96,416 L 312,416" fill="none" stroke="black"/>
                <path d="M 64,432 L 88,432" fill="none" stroke="black"/>
                <path d="M 320,432 L 360,432" fill="none" stroke="black"/>
                <path d="M 96,448 L 312,448" fill="none" stroke="black"/>
                <path d="M 24,112 L 40,80" fill="none" stroke="black"/>
                <path d="M 136,112 L 152,80" fill="none" stroke="black"/>
                <path d="M 400,112 L 416,80" fill="none" stroke="black"/>
                <path d="M 512,112 L 528,80" fill="none" stroke="black"/>
                <path d="M 168,144 C 159.16936,144 152,151.16936 152,160" fill="none" stroke="black"/>
                <path d="M 192,144 C 200.83064,144 208,151.16936 208,160" fill="none" stroke="black"/>
                <path d="M 456,160 C 447.16936,160 440,167.16936 440,176" fill="none" stroke="black"/>
                <path d="M 456,160 C 464.83064,160 472,167.16936 472,176" fill="none" stroke="black"/>
                <path d="M 168,176 C 159.16936,176 152,168.83064 152,160" fill="none" stroke="black"/>
                <path d="M 192,176 C 200.83064,176 208,168.83064 208,160" fill="none" stroke="black"/>
                <path d="M 456,192 C 447.16936,192 440,184.83064 440,176" fill="none" stroke="black"/>
                <path d="M 456,192 C 464.83064,192 472,184.83064 472,176" fill="none" stroke="black"/>
                <path d="M 40,240 C 31.16936,240 24,247.16936 24,256" fill="none" stroke="black"/>
                <path d="M 88,240 C 96.83064,240 104,247.16936 104,256" fill="none" stroke="black"/>
                <path d="M 432,240 C 423.16936,240 416,247.16936 416,256" fill="none" stroke="black"/>
                <path d="M 496,240 C 504.83064,240 512,247.16936 512,256" fill="none" stroke="black"/>
                <path d="M 40,272 C 31.16936,272 24,264.83064 24,256" fill="none" stroke="black"/>
                <path d="M 88,272 C 96.83064,272 104,264.83064 104,256" fill="none" stroke="black"/>
                <path d="M 432,272 C 423.16936,272 416,264.83064 416,256" fill="none" stroke="black"/>
                <path d="M 496,272 C 504.83064,272 512,264.83064 512,256" fill="none" stroke="black"/>
                <path d="M 248,336 C 256.83064,336 264,343.16936 264,352" fill="none" stroke="black"/>
                <path d="M 64,432 C 55.16936,432 48,424.83064 48,416" fill="none" stroke="black"/>
                <path d="M 360,432 C 368.83064,432 376,424.83064 376,416" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="464,232 452,226.4 452,237.6" fill="black" transform="rotate(90,456,232)"/>
                <polygon class="arrowhead" points="384,160 372,154.4 372,165.6" fill="black" transform="rotate(0,376,160)"/>
                <polygon class="arrowhead" points="384,96 372,90.4 372,101.6" fill="black" transform="rotate(0,376,96)"/>
                <polygon class="arrowhead" points="328,432 316,426.4 316,437.6" fill="black" transform="rotate(180,320,432)"/>
                <polygon class="arrowhead" points="304,256 292,250.4 292,261.6" fill="black" transform="rotate(180,296,256)"/>
                <polygon class="arrowhead" points="272,408 260,402.4 260,413.6" fill="black" transform="rotate(90,264,408)"/>
                <polygon class="arrowhead" points="232,160 220,154.4 220,165.6" fill="black" transform="rotate(0,224,160)"/>
                <polygon class="arrowhead" points="168,408 156,402.4 156,413.6" fill="black" transform="rotate(90,160,408)"/>
                <polygon class="arrowhead" points="152,160 140,154.4 140,165.6" fill="black" transform="rotate(0,144,160)"/>
                <polygon class="arrowhead" points="120,256 108,250.4 108,261.6" fill="black" transform="rotate(180,112,256)"/>
                <polygon class="arrowhead" points="96,432 84,426.4 84,437.6" fill="black" transform="rotate(0,88,432)"/>
                <polygon class="arrowhead" points="88,232 76,226.4 76,237.6" fill="black" transform="rotate(90,80,232)"/>
                <polygon class="arrowhead" points="48,232 36,226.4 36,237.6" fill="black" transform="rotate(90,40,232)"/>
                <g class="text">
                  <text x="44" y="52">Signer</text>
                  <text x="408" y="52">TSA</text>
                  <text x="88" y="100">private-key</text>
                  <text x="272" y="100">nonce</text>
                  <text x="464" y="100">private-key</text>
                  <text x="272" y="148">message</text>
                  <text x="96" y="164">datum</text>
                  <text x="180" y="164">hash</text>
                  <text x="272" y="164">Imprint</text>
                  <text x="456" y="180">L</text>
                  <text x="504" y="180">Clock</text>
                  <text x="264" y="228">protected</text>
                  <text x="64" y="260">Sign1</text>
                  <text x="264" y="260">TST</text>
                  <text x="464" y="260">timestamp</text>
                  <text x="376" y="340">unprotected</text>
                  <text x="48" y="372">[protected]</text>
                  <text x="160" y="372">[payload]</text>
                  <text x="264" y="372">[signature]</text>
                  <text x="376" y="372">...</text>
                  <text x="184" y="436">rfc3161-ttc</text>
                  <text x="252" y="436">COSE</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
.--------.                                     .-----.
| Signer |                                     | TSA |                      
+--------+----------------------------------.  +-----+-------------.
|   .-------------.          .-------.      |  |   .-------------. |
|  / private-key /           | nonce +-------->+  / private-key /  |
| '-+-----------'            '-------'      |  | '------+------'   |
|   |                       .---------.     |  |        |          |
|   |  .-------.   .----.   | message |     |  |        |          |
|   |  + datum +->+ hash +->+ Imprint +------->+       .+.         |
|   |  '-+-----'   '----'   '---------'     |  |      | L | Clock  |
|   |    |                                  |  |       '+'         |
|   |    |               .-------------.    |  |        |          |
|   v    v               |  protected  |    |  |        v          |
|  .-------.             |   .-----.   |    |  |    .---------.    |
| |  Sign1  +<-----------+   | TST |<----------+   | timestamp |   |
|  '-+-----'             |   '-----'   |    |  |    '---------'    |
|    |                   '-------------'    |  |                   |
'----|--------------------------------------'  '-------------------'  
     |                                 .-------------.    
     +-------------+-----------+       | unprotected |    
     |             |            |      |   .-----.   |    
[protected]    [payload]   [signature] |   | ... |   |
     |             |            |      |   '-----'   |
     |             v            v      '------+------'
     |     .-------+------------+-----.       |
      '--->+     rfc3161-ttc COSE     +<-----'
           '--------------------------'
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="sec-cose-then-timestamp">
        <name>COSE then Timestamp (CTT)</name>
        <t><xref target="fig-cose-then-timestamp"/> shows the case where the signature(s) field of the signed COSE object is digested and submitted to a TSA to be timestamped.
The obtained timestamp token is then added back as an unprotected header into the same COSE object.</t>
        <t>This mode is utilized when a record of the timing of the signature operation is desired.</t>
        <figure anchor="fig-cose-then-timestamp">
          <name>COSE, then Timestamp (CTT)</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="616" viewBox="0 0 616 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,288" fill="none" stroke="black"/>
                <path d="M 48,224 L 48,336" fill="none" stroke="black"/>
                <path d="M 48,368 L 48,400" fill="none" stroke="black"/>
                <path d="M 72,112 L 72,184" fill="none" stroke="black"/>
                <path d="M 80,32 L 80,64" fill="none" stroke="black"/>
                <path d="M 96,400 L 96,432" fill="none" stroke="black"/>
                <path d="M 160,320 L 160,336" fill="none" stroke="black"/>
                <path d="M 160,368 L 160,392" fill="none" stroke="black"/>
                <path d="M 168,80 L 168,112" fill="none" stroke="black"/>
                <path d="M 200,112 L 200,144" fill="none" stroke="black"/>
                <path d="M 224,176 L 224,224" fill="none" stroke="black"/>
                <path d="M 232,240 L 232,272" fill="none" stroke="black"/>
                <path d="M 264,80 L 264,112" fill="none" stroke="black"/>
                <path d="M 264,368 L 264,392" fill="none" stroke="black"/>
                <path d="M 280,80 L 280,112" fill="none" stroke="black"/>
                <path d="M 296,240 L 296,272" fill="none" stroke="black"/>
                <path d="M 304,176 L 304,224" fill="none" stroke="black"/>
                <path d="M 312,112 L 312,128" fill="none" stroke="black"/>
                <path d="M 312,400 L 312,432" fill="none" stroke="black"/>
                <path d="M 320,304 L 320,384" fill="none" stroke="black"/>
                <path d="M 344,80 L 344,112" fill="none" stroke="black"/>
                <path d="M 352,336 L 352,368" fill="none" stroke="black"/>
                <path d="M 360,64 L 360,200" fill="none" stroke="black"/>
                <path d="M 360,216 L 360,248" fill="none" stroke="black"/>
                <path d="M 360,264 L 360,288" fill="none" stroke="black"/>
                <path d="M 376,384 L 376,400" fill="none" stroke="black"/>
                <path d="M 384,32 L 384,288" fill="none" stroke="black"/>
                <path d="M 400,336 L 400,368" fill="none" stroke="black"/>
                <path d="M 432,32 L 432,64" fill="none" stroke="black"/>
                <path d="M 432,304 L 432,344" fill="none" stroke="black"/>
                <path d="M 432,360 L 432,384" fill="none" stroke="black"/>
                <path d="M 456,112 L 456,160" fill="none" stroke="black"/>
                <path d="M 456,192 L 456,232" fill="none" stroke="black"/>
                <path d="M 464,288 L 464,336" fill="none" stroke="black"/>
                <path d="M 544,64 L 544,288" fill="none" stroke="black"/>
                <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
                <path d="M 384,32 L 432,32" fill="none" stroke="black"/>
                <path d="M 8,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 384,64 L 544,64" fill="none" stroke="black"/>
                <path d="M 40,80 L 152,80" fill="none" stroke="black"/>
                <path d="M 168,80 L 264,80" fill="none" stroke="black"/>
                <path d="M 280,80 L 344,80" fill="none" stroke="black"/>
                <path d="M 416,80 L 528,80" fill="none" stroke="black"/>
                <path d="M 24,112 L 136,112" fill="none" stroke="black"/>
                <path d="M 168,112 L 264,112" fill="none" stroke="black"/>
                <path d="M 280,112 L 344,112" fill="none" stroke="black"/>
                <path d="M 400,112 L 512,112" fill="none" stroke="black"/>
                <path d="M 72,144 L 296,144" fill="none" stroke="black"/>
                <path d="M 224,176 L 304,176" fill="none" stroke="black"/>
                <path d="M 40,192 L 104,192" fill="none" stroke="black"/>
                <path d="M 160,192 L 184,192" fill="none" stroke="black"/>
                <path d="M 120,208 L 136,208" fill="none" stroke="black"/>
                <path d="M 200,208 L 216,208" fill="none" stroke="black"/>
                <path d="M 304,208 L 376,208" fill="none" stroke="black"/>
                <path d="M 40,224 L 104,224" fill="none" stroke="black"/>
                <path d="M 160,224 L 184,224" fill="none" stroke="black"/>
                <path d="M 224,224 L 304,224" fill="none" stroke="black"/>
                <path d="M 232,240 L 296,240" fill="none" stroke="black"/>
                <path d="M 432,240 L 496,240" fill="none" stroke="black"/>
                <path d="M 296,256 L 376,256" fill="none" stroke="black"/>
                <path d="M 232,272 L 296,272" fill="none" stroke="black"/>
                <path d="M 432,272 L 496,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 40,288" fill="none" stroke="black"/>
                <path d="M 56,288 L 360,288" fill="none" stroke="black"/>
                <path d="M 384,288 L 544,288" fill="none" stroke="black"/>
                <path d="M 320,304 L 432,304" fill="none" stroke="black"/>
                <path d="M 48,320 L 248,320" fill="none" stroke="black"/>
                <path d="M 352,336 L 400,336" fill="none" stroke="black"/>
                <path d="M 408,352 L 448,352" fill="none" stroke="black"/>
                <path d="M 352,368 L 400,368" fill="none" stroke="black"/>
                <path d="M 320,384 L 432,384" fill="none" stroke="black"/>
                <path d="M 96,400 L 312,400" fill="none" stroke="black"/>
                <path d="M 64,416 L 88,416" fill="none" stroke="black"/>
                <path d="M 320,416 L 360,416" fill="none" stroke="black"/>
                <path d="M 96,432 L 312,432" fill="none" stroke="black"/>
                <path d="M 24,112 L 40,80" fill="none" stroke="black"/>
                <path d="M 136,112 L 152,80" fill="none" stroke="black"/>
                <path d="M 400,112 L 416,80" fill="none" stroke="black"/>
                <path d="M 512,112 L 528,80" fill="none" stroke="black"/>
                <path d="M 296,144 C 304.83064,144 312,136.83064 312,128" fill="none" stroke="black"/>
                <path d="M 456,160 C 447.16936,160 440,167.16936 440,176" fill="none" stroke="black"/>
                <path d="M 456,160 C 464.83064,160 472,167.16936 472,176" fill="none" stroke="black"/>
                <path d="M 40,192 C 31.16936,192 24,199.16936 24,208" fill="none" stroke="black"/>
                <path d="M 104,192 C 112.83064,192 120,199.16936 120,208" fill="none" stroke="black"/>
                <path d="M 160,192 C 151.16936,192 144,199.16936 144,208" fill="none" stroke="black"/>
                <path d="M 184,192 C 192.83064,192 200,199.16936 200,208" fill="none" stroke="black"/>
                <path d="M 456,192 C 447.16936,192 440,184.83064 440,176" fill="none" stroke="black"/>
                <path d="M 456,192 C 464.83064,192 472,184.83064 472,176" fill="none" stroke="black"/>
                <path d="M 40,224 C 31.16936,224 24,216.83064 24,208" fill="none" stroke="black"/>
                <path d="M 104,224 C 112.83064,224 120,216.83064 120,208" fill="none" stroke="black"/>
                <path d="M 160,224 C 151.16936,224 144,216.83064 144,208" fill="none" stroke="black"/>
                <path d="M 184,224 C 192.83064,224 200,216.83064 200,208" fill="none" stroke="black"/>
                <path d="M 432,240 C 423.16936,240 416,247.16936 416,256" fill="none" stroke="black"/>
                <path d="M 496,240 C 504.83064,240 512,247.16936 512,256" fill="none" stroke="black"/>
                <path d="M 432,272 C 423.16936,272 416,264.83064 416,256" fill="none" stroke="black"/>
                <path d="M 496,272 C 504.83064,272 512,264.83064 512,256" fill="none" stroke="black"/>
                <path d="M 248,320 C 256.83064,320 264,327.16936 264,336" fill="none" stroke="black"/>
                <path d="M 448,352 C 456.83064,352 464,344.83064 464,336" fill="none" stroke="black"/>
                <path d="M 64,416 C 55.16936,416 48,408.83064 48,400" fill="none" stroke="black"/>
                <path d="M 360,416 C 368.83064,416 376,408.83064 376,400" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="464,232 452,226.4 452,237.6" fill="black" transform="rotate(90,456,232)"/>
                <polygon class="arrowhead" points="416,352 404,346.4 404,357.6" fill="black" transform="rotate(180,408,352)"/>
                <polygon class="arrowhead" points="384,256 372,250.4 372,261.6" fill="black" transform="rotate(0,376,256)"/>
                <polygon class="arrowhead" points="384,208 372,202.4 372,213.6" fill="black" transform="rotate(0,376,208)"/>
                <polygon class="arrowhead" points="328,416 316,410.4 316,421.6" fill="black" transform="rotate(180,320,416)"/>
                <polygon class="arrowhead" points="272,392 260,386.4 260,397.6" fill="black" transform="rotate(90,264,392)"/>
                <polygon class="arrowhead" points="224,208 212,202.4 212,213.6" fill="black" transform="rotate(0,216,208)"/>
                <polygon class="arrowhead" points="168,392 156,386.4 156,397.6" fill="black" transform="rotate(90,160,392)"/>
                <polygon class="arrowhead" points="144,208 132,202.4 132,213.6" fill="black" transform="rotate(0,136,208)"/>
                <polygon class="arrowhead" points="96,416 84,410.4 84,421.6" fill="black" transform="rotate(0,88,416)"/>
                <polygon class="arrowhead" points="80,184 68,178.4 68,189.6" fill="black" transform="rotate(90,72,184)"/>
                <g class="text">
                  <text x="44" y="52">Signer</text>
                  <text x="408" y="52">TSA</text>
                  <text x="88" y="100">private-key</text>
                  <text x="216" y="100">protected</text>
                  <text x="312" y="100">datum</text>
                  <text x="464" y="100">private-key</text>
                  <text x="456" y="180">L</text>
                  <text x="504" y="180">Clock</text>
                  <text x="264" y="196">message</text>
                  <text x="72" y="212">Sign1</text>
                  <text x="172" y="212">hash</text>
                  <text x="264" y="212">Imprint</text>
                  <text x="264" y="260">nonce</text>
                  <text x="464" y="260">timestamp</text>
                  <text x="376" y="324">unprotected</text>
                  <text x="48" y="356">[protected]</text>
                  <text x="160" y="356">[payload]</text>
                  <text x="264" y="356">[signature]</text>
                  <text x="376" y="356">TST</text>
                  <text x="184" y="420">rfc3161-ctt</text>
                  <text x="252" y="420">COSE</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
.--------.                                     .-----.
| Signer |                                     | TSA |                      
+--------+----------------------------------.  +-----+-------------.
|   .-------------. .-----------. .-------. |  |   .-------------. |
|  / private-key /  | protected | | datum | |  |  / private-key /  |
| '-----+-------'   '---+-------' '---+---' |  | '------+------'   |
|       |               |             |     |  |        |          |
|       +---------------+------------'      |  |        |          |
|       |                                   |  |       .+.         |
|       v                  .---------.      |  |      | L | Clock  |
|  .---------.    .----.   | message |      |  |       '+'         |
| |   Sign1   +->+ hash +->+ Imprint +-------->|        |          |
|  '-+-------'    '----'   '---------'      |  |        v          |
|    |                      .-------.       |  |    .---------.    |
|    |                      | nonce +--------->|   | timestamp |   |
|    |                      '-------'       |  |    '---------'    |
'----|--------------------------------------'  '---------+---------'  
     |                                 .-------------.   |
     +-------------+-----------+       | unprotected |   |
     |             |            |      |   .-----.   |   |
[protected]    [payload]   [signature] |   | TST |<-----'
     |             |            |      |   '-----'   |
     |             v            v      '------+------'
     |     .-------+------------+-----.       |
      '--->+     rfc3161-ctt COSE     +<-----'
           '--------------------------'
]]></artwork>
          </artset>
        </figure>
        <t>In this context, timestamp tokens are similar to a countersignature made by the TSA.</t>
      </section>
    </section>
    <section anchor="sec-tst-hdr">
      <name>RFC 3161 Time-Stamp Tokens COSE Header Parameters</name>
      <t>The two modes described in <xref target="sec-timestamp-then-cose"/> and <xref target="sec-cose-then-timestamp"/> use different inputs into the timestamping machinery, and consequently create different kinds of binding between COSE and TST.
To clearly separate their semantics two different COSE header parameters are defined as described in the following subsections.</t>
      <section anchor="sec-tst-hdr-ttc">
        <name><tt>3161-ttc</tt></name>
        <t>The <tt>3161-ttc</tt> COSE <em>protected</em> header parameter <bcp14>MUST</bcp14> be used for the mode described in <xref target="sec-timestamp-then-cose"/>.</t>
        <t>The <tt>3161-ttc</tt> protected header parameter contains a DER-encoded RFC3161 TimeStampToken wrapped in a CBOR byte string (Major type 2).</t>
        <t>To minimize dependencies, the hash algorithm used for signing the COSE message <bcp14>SHOULD</bcp14> be the same as the algorithm used in the RFC3161 MessageImprint.</t>
      </section>
      <section anchor="sec-tst-hdr-ctt">
        <name><tt>3161-ctt</tt></name>
        <t>The <tt>3161-ctt</tt> COSE <em>unprotected</em> header parameter <bcp14>MUST</bcp14> be used for the mode described in <xref target="sec-cose-then-timestamp"/>.</t>
        <t>The message imprint sent in the request to the TSA <bcp14>MUST</bcp14> be either:</t>
        <ul spacing="normal">
          <li>
            <t>the hash of the signature field of the <tt>COSE_Sign1</tt> message.</t>
          </li>
          <li>
            <t>the hash of the signatures field of the <tt>COSE_Sign</tt> message.</t>
          </li>
        </ul>
        <t>In either case, to minimize dependencies, the hash algorithm <bcp14>SHOULD</bcp14> be the same as the algorithm used for signing the COSE message.
This may not be possible if the timestamp token has been obtained outside the processing context in which the COSE object is assembled.</t>
        <t>The <tt>3161-ctt</tt> unprotected header parameter contains a DER-encoded RFC3161 TimeStampToken wrapped in a CBOR byte string (Major type 2).</t>
      </section>
    </section>
    <section anchor="timestamp-processing">
      <name>Timestamp Processing</name>
      <t>RFC 3161 timestamp tokens use CMS as signature envelope format.
<xref target="STD70"/> provides the details about signature verification, and <xref target="RFC3161"/> provides the details specific to timestamp token validation.
The payload of the signed timestamp token is the TSTInfo structure defined in <xref target="RFC3161"/>, which contains the message imprint that was sent to the TSA.
The hash algorithm is contained in the message imprint structure, together with the hash itself.</t>
      <t>As part of the signature verification, the receiver <bcp14>MUST</bcp14> make sure that the message imprint in the embedded timestamp token matches a hash of either the payload, signature, or signature fields, depending on the mode of use and type of COSE structure.</t>
      <t><xref section="B" sectionFormat="of" target="RFC3161"/> provides an example that illustrates how timestamp tokens can be used to verify signatures of a timestamped message when utilizing X.509 certificates.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Please review the Security Considerations section in <xref target="RFC3161"/>; these considerations apply to this document as well.</t>
      <t>Also review the Security Considerations section in <xref target="STD96"/>; these considerations apply to this document as well, especially the need for implementations to protect private key material.</t>
      <t>The following scenario assumes an attacker can manipulate the clocks on the COSE signer and its relying parties, but not the TSA.
It is also assumed that the TSA is a trusted third party, so the attacker cannot impersonate the TSA and create valid timestamp tokens.
In such a setting, any tampering with the COSE signer's clock does not have an impact because, once the timestamp is obtained from the TSA, it becomes the only reliable source of time.
However, in both CTT and TTC mode, a denial of service can occur if the attacker can adjust the relying party's clock so that the CMS validation fails.
This could disrupt the timestamp validation.</t>
      <t>In CTT mode, an attacker could manipulate the unprotected header by removing or replacing the timestamp.
To avoid that, the signed COSE object should be integrity protected during transit and at rest.</t>
      <t>In TTC mode, the TSA is given an opaque identifier (a cryptographic hash value) for the payload.
While this means that the content of the payload is not directly revealed, to prevent comparison with known payloads or disclosure of identical payloads being used over time, the payload would need to be armored, e.g., with a nonce that is shared with the recipient of the header parameter but not the TSA.
Such a mechanism can be employed inside the ones described in this specification, but is out of scope for this document.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the COSE header parameters defined in <xref target="tbl-new-hdrs"/> to the "COSE Header Parameters" registry <xref target="IANA.cose_header-parameters"/>.</t>
      <table align="left" anchor="tbl-new-hdrs">
        <name>New COSE Header Parameters</name>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Label</th>
            <th align="left">Value Type</th>
            <th align="left">Value Registry</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>3161-tcc</tt></td>
            <td align="left">TBD1</td>
            <td align="left">bstr</td>
            <td align="left">-</td>
            <td align="left">RFC 3161 timestamp token</td>
            <td align="left">RFCthis, <xref target="sec-tst-hdr-ttc"/></td>
          </tr>
          <tr>
            <td align="left">
              <tt>3161-ctt</tt></td>
            <td align="left">TBD2</td>
            <td align="left">bstr</td>
            <td align="left">-</td>
            <td align="left">RFC 3161 timestamp token</td>
            <td align="left">RFCthis, <xref target="sec-tst-hdr-ctt"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="STD70">
        <front>
          <title>Cryptographic Message Syntax (CMS)</title>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <date month="September" year="2009"/>
          <abstract>
            <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="70"/>
        <seriesInfo name="RFC" value="5652"/>
        <seriesInfo name="DOI" value="10.17487/RFC5652"/>
      </reference>
      <reference anchor="RFC3161">
        <front>
          <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
          <author fullname="C. Adams" initials="C." surname="Adams"/>
          <author fullname="P. Cain" initials="P." surname="Cain"/>
          <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
          <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
          <date month="August" year="2001"/>
          <abstract>
            <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3161"/>
        <seriesInfo name="DOI" value="10.17487/RFC3161"/>
      </reference>
      <reference anchor="STD96">
        <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="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>
      <reference anchor="IANA.cose_header-parameters" target="https://www.iana.org/assignments/cose">
        <front>
          <title>COSE Header Parameters</title>
          <author>
            <organization>IANA</organization>
          </author>
        </front>
      </reference>
    </references>
    <?line 267?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The editors would like to thank
Carl Wallace,
Leonard Rosenthol,
Michael B. Jones,
Michael Prorock,
Orie Steele,
and
Steve Lasker
for their reviews and comments.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization/>
        <address>
          <email>cabo@tzi.org</email>
        </address>
      </contact>
      <t>Carsten contributed part of the security considerations.</t>
      <contact initials="O." surname="Steele" fullname="Orie Steele">
        <organization/>
        <address>
          <email>orie@transmute.industries</email>
        </address>
      </contact>
      <t>Orie contributed an improved version of the diagrams.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+Vb/XLbOJL/n0+Bc6rOyUbijbPJzMaXmY3jJBff2nHOUm5v
a2oqhkhIwpgktAQoRbEyz7LPsk923Y0PghLlSWavrurqVJMxCQGNRn/+ALSG
w2GyPGa/TxIjTSGO2eHp5egVeyN4Lmq24DUvhYGnqarZ1etT9vujb4/YWJZi
ODK8XLCxuhGVPkz4ZFILIDQejd3gJFdZBaOPWV7zqRlOZH0zV8WnYaa0GBrN
4Z8ZzqnvMEw0LLgR2iS8FvyYjUTW1NKsk9XsmCFjyc3qmJ1V0LESZvgSCScZ
N8dMmzzRBgaV8P2r8esk4Y2Zq/o4GTLLxRtR3bAXjomEMVUDzdc1b6q5msIK
R2djaPXr2PlClFwWx2wOVFK/lOdamnQaeqa5gI7IhQCOruZCVvDCtRbsuyfw
TaZyFPC3jx89fXKI77CyY/aS16U2PDfUo6lMDY3/JuqSV+vA/HiuSq7Za6U1
N9Jyzyv5CV5UdczOZcVr1XJpqHs6td2fF/R1CmMCwQsub9iVFNlc1GaH3oXM
aqXV1LQkcUDqBzwvfYc0U2XM+Ps/JUmm4FlOGhOL/5TX2oiKvVC4sqolnPGJ
em4+SWIPKbnBxIgfFVpFjkZpmJrCIgXTzkCwg5ZgSbQAnYZpL2sp2MgIUYh2
SgWNz0EzlS6BYiqrvAFFSaF35qfh8eS8YrJc1GoJz0tRa+jleckln4EVw+RJ
hYs0cimOgeJo/PK7b/CBse+P0YmefPvkEb0OYYEXI3iERnQsdJ8TO+Lpt/GI
p99EI9ANElEZtB7s/Or89TE7gF5mLvVBkgyHQzBjtLzMJMkYGhm4YlPCEJaL
qayEZpydvri8YiM5q2Q1YydVzl5VWb1e4Brv4xQP2LwvBsgqU/VCoZxhnI8I
wwnXMNBAXNAYFvA7WRlFzDJo1Hwm0DOazDQ1zH//Gr/5gPNfg0xz1r4fXT9I
Ldei4pMCOqNwG3AikDOSnxRSz2G2EI62pgWHDDMx4IG0RUQyiA+oVxqB5Ljn
LbViK2Weg6Ek9zDG1CoHItA9ScJUt7dDUNHnz0QU7E0TCXC3HGcKjLSEwSpm
0BbzwQ2Thq3AnYkfWMlEgGgFDJqByVju0n2aMyvFKrGy+ruc/CwyE9TIWzXi
Kp0egWd8AKa3NaotNxmv6zUJaOwXQGGd3Ydo/oCpxiwa8jgvhgF0bmDpRaFW
OK/4KLXxDKxALMUa+F0Uao1GUYNz9ahlQkrF/mZu7SSyD/oG7U27pf2awST3
7v39b+/BSE7BErUTHkQHEkQuddZAGLbSQ1PKsNeACZ7NWS0WMCU6FMyjKuH9
GfuWCnUMDTjIqiCHtYBM6ZvPn2HmEzaVEKUCXSbRKkDv0vCiVSCuBANIoaoZ
hiroQ6JZqdrM163tOOMnIhBcS+DfUq1YIWZAkcIR+DYEmrOK6QaWoDPwlVqq
gQ1EnSlrMLXKaBR5DRkJhJo5byi4LK0FdEaRNoFTmJgzvRCZnMqM5WCpwJpi
IDIpyJCl7p+PZ39tZE2+MYU/cwIFqMxO52mtSugB7jTAdU7IutEx0B7ingPS
N7RUNIGNB5OmAk9Nk3OOkUlV0AmWV6xRh5ggbEZoSnynRGGlb4eBQCu0vwxS
GQe57pfBB/iiEGC4H5jrQqHDSQUJOscZnaDexBYPuYI1VcqwOV+S0VtnCAzV
hxAECpXdDNhqLkGRJV/bvhMByy15ITOpGg3+xAtYKGoFfaJcQAsk9QyyH+nF
2kxjw6wzBjBeSEEIp2jCg+DcVpboPwdk4F3DBqcZBmMcYldCbM7U4VsF2oht
HYnDGmFKCx9sYHUCDxIFQdVihlKtKUwbFCioH7MwCEtU2RrgXr2UmWg9wNk/
2g6sFTEGn8gC8z2aBG9yGRpgUql1E00J/nFZZehngQkg6ZlAV9zHAGiFLxai
yoeqAkEXajYAhjU+QFICnIMGhGpFG5rzaiZy8kVvTy66GLIHnM7CErZQoM+1
lU/fvKR+nuf7QgNZUGvMflmtvHIMX9AJTSr05D7iRt68UBLF4XNNr1v3chj5
Nnl15MTWt8iH2yDXw27kz14ZOCgF6+p6D7llCF5ct+4KfDRIwMjM6b7jvbAr
EHWYGgneCPQrbd0KrApycSkhxwwoFOSKaYUWWvIb7K1JYDh7hUFzqTKrP4qe
pX0O1ErIqWzRACrJfCIPcQKxf22sZ9kwMf4yX6V8SCIKXht8VWcARmNvtRsq
dNRgKeSt9+6xK0HqIndgb8FJLZ7BSIUiAQPLNTu4eD8aHwzsX/b2kp6vXv3H
+7OrVy/xefTm5Pw8PCSux+jN5fvzl+1TO/L08uLi1duXdjC0sk5TcnBx8pcD
awUHl+/GZ5dvT84PrIhixMMDTpC44YMkTQBcJx0RvDh99/e/HT0GUfwTwJNH
R0dPAejYlz8cffcYXlYgGTsbebN9BXGtE3RyjpgWoQxYwgIzNlg/qFbP1QqU
DHECBPm7H1EyPx2zZ5NscfT4B9eAC+40epl1Gklmuy07g60Qe5p6pgnS7LRv
SbrL78lfOu9e7lHjsz/CPlGw4dEf/vhDghj4woMfxFW39yziIeNBsFpbhJTL
KWx9UV8BK6F/KY2ORGYMvmYcECPHj9D6INh9yKRdv9ABu4HmJ4CfU2u8fq8V
rMZDPVkUDcVb64UwdwZAHHmZAlgN28aQv4npNHnt0yoFlIG1FOwZw8yYmnQm
kiYjWcoCrCiwhNkqRqsObADylku7zgCcy6YwcgGA5HpRkxiG4JXXbKI+YoQF
YQE2LXjmQUzBJ6Jg1z+GqP7TtYVLUZP+6dq6fk+6B0A/PoUNwb19OT5Jbm+n
ctaf/2nBNj5R6l9ZO0Bk2JQoEAuD7YaHtso5RNJJKQ2+Uf6BPOFcOsyAqdNG
RApvGBkNZPRPuDNAvrtZDFhoCgTRmqgsRI0RGWHR0kX8TrJ0uzS7a4e9Pu4n
Y6SNgMYmp85G1YIa0FojC4PRYKpQY/oYQgFD81MTTETxjhdmwx0TovY8t8t1
9oe2Dw1276UHnkIN+4MK9wckvQnAqtIF/wVfF4rnwVZ3GXROENiFdIbpHPcw
fmKU9P3b25Fzi0fpY6RnN68PGEWviXURSGRzP5efGlyjCAzYvZnlQtGGE+b/
5ZdfGOd6OUvSofuk7Es+tnuabGjXCkrbfNGwDa1oT9/koechPOz/AJsPe/oi
R567nhWl3aYN/bfTfYNE/oVFzgxv8SIqhYg0zPzDw57uSOSww91hvNjDbiNx
cthZPX5DnOyVbct3Gi/HP4dHTyRefeofNsEAN19E5KGz9Ye4bLI6ejpz1usX
jDKxTD5Md4l4wRx6SYSHSCgtJxt2Dv9OCQ/HMvkCo4uWc/iw1cAdRHqM506Z
LJn/X3faNmiEecLY5RaRLbuMpkpDe4fIluqRCLRTggMVPYsW8JBZtxuzzbPt
1jbubTwnsWa6nBy2VhlzsqU1K5NezRwO48/htkzi6RLquxl+0edwm3RoTrY1
tufTo3I7tBtc4jdv3hvWVK2mN+3Q7qybnpce9SY/Blo/4fuPLpTjS4QXrLpY
mqZOcV8xY6TGvmHLnpetuBQPS3tE4168LbtpiIqLCvU0o/NmYzKbl0jWz2Ly
nZl7tY7JK7k9Zvf2QB3Atrj1vhnyAgT3/QFgUdh/HCB5uiT7vj1KGXTA1enp
g4PPBL569m/s/ul47MFX35bNg6/e7Vw/+OqAo/v6QTdxx8jBJm46I/h6fPZr
kIcWanHPhEOk5QheO+btTp7pToBY46WIGbsbA+LRXgZb1XAyK+lcL1qmRYdq
4S6AaJ1Cw843//+DVdLet/TrsMqGxTFp41L2xhHZg1ViDn0+bt/92+HdWKUN
DbEkd9/uTKn42ZZr5z1GTXcR+RJNR0R2sQp+tnM720Ved2KVrc57kdddWAXb
XXb/NeQ1/GGvTA47+t2PvO7EKnulug1i7sAq+4nsgGu7nF6sspfIFrjej1V+
M8x4GDf/dpix+e0w46uSfhdmbL4OZkTY8fD/KtLIjPkfQho9ef3XkQZOPehF
Eog0ztzpF14Jio9msJ2cNR3TaXdCRSmeblGwcMEnTTq/jq+xknt3VPqwuDzo
XXuR7M6UsKInr+0hYXSB2nNo3X/EhJjkjkNtew0bThxltWiMblFFpxCgxBsN
SNpre/aL14Hirw0MK9bu4j2idCOrnM4uJ/CAoyfCrIRHdjieju7HimWF4DWQ
0AKv0e0xo6zhteR4HaG3DkVp/O69O6rF37rxLfngSuyBk72LmLizTW3P9a49
AL7uCh2bnOCjLjT/h+C0H3arOvxZULhyx/n3XTXsuxjcmnUH+LXToakCkMQL
pJevroaiwqqo3FfAkMGN2gqEVY1n9MSAK1mZrA1VklBRwAX/GRleLwR7hEUA
oB9AhmDun5B7vMED+tLfxVHm48VM1dLMy90ag3DY5bOrO393B2WEWbnF4FtU
nNb8Ii7seJdfY7VBNNlWGzR11EZdrNqiyP2PKm7fHdHec0S3pBp9RneOFf28
AtYvajoT3T5HbKNLZ0PSOUwPZ5l3DNf7xkfDMQhaVmhnNEBWv9wIvljFdxmK
u4DF21t3K7xQWks8bJbTbmRym6Zwexi2VQoimb8wje4ZXGRHddgKgTB3u6PD
W8YSJsvTHTvq2YP9L7lifAHxLqwnKqXaSVUY208vRnT7FuxHVEtRwL6O2ZvX
NMFqpotRXIFFV78CVlJovCNqTDR8KWq876ZN4cBll+0Krnh8uCDvVHNZnS0h
SedEye6I+8/p+7fHmD7Oqqlqa5y6RReWJ18FEhRjerzT3Yrr7eN+y9SWeTts
wP1MfQQDS+g6M0GeFIpwiJ40WhRTvC7R3erLPXK2gSMTcunDVMlvRHSt3seG
4w4sWdgblC1BgvazORUe+FDhvD66uBi0LA2Yc9goDkEIsAHBVnq1AdMVeNH1
JFowvHcr0lI8nDmhmhD5kb1o71KiQkAIQx+B3cLX+IWbSM3marVr7+5ekKIL
qJFEuI5jH9WJRAcxQWR0KGKPSHAl/5U++eYpFZ9YHQhCCqF4mp12amOT5B1W
NKGGllKsSAh7ura3qq2N/isO0GKr4BbrZfDGVG3f4Wu2EkWBpoNXdl89pS1c
/E1zDpggb+aFu8qthAvjeM9LJRGOjr0oxCjpjzeoOKLE0jIY7qJqBMl80QYE
3qa0qufG8OyGchCaaiUXTeEvoanCS3uDa6/TajI4LCyK614oU00aQ6kk+PaZ
jfQoRDtr3noSJmUqF6SiIfpG1rZOGsCvthEiZhApgxAAiKrKM4lECCdbaEzB
bsdm24pDDooyhq7weQXyRQOlRBAiR7ROX+W2VQ9na6l5hhkz4w3mbtrBdxMm
rCwkSSo3ctxiSVbn3pTu7EGSkm55tWqw0BEjFZU4vVErAS42QMOaKCw5HY8t
sB+fUhDACkJACqBwHKRdvROqU2GZnc/kHUXz/Gdfz9cpXQoLJuE7NWFua3MI
m2LCccgho1vtXOq6WZit9cdpB8WPfDt+Y7MjCluG15P9qQyvhJCFEbDeqi+I
a1DBzpZKWisb7DtOdtfxrkRnRv7cTpk3ZBFUaI9FYRWV3EFkM3YlreQjK7Yl
0Cj1BQfoycDfK4xrwPt92L1ibbOaARSBRGkTAcinEQ8CAHaZIE3+PJeFLWeD
uMkr3SqCMFVlti+9pTXNXELqMmRKS8ELrBGjAAFvMAZrW8D3wXGspd9UWCfk
SGgUKRasFIpyHdYkEvsZGFXoMxEoFQr7tmoBpD7ocLIiqVK8sqfxvC5VjZyI
dJYO7MzcnXfZZIPlKLz25dQuAcuFjNa5g/92gszIenYpsKhR6tKnKFG6Wm5Z
BYyqqu19va3DcQDKIQGcAh3Y1o/rzCG5bsSmbHV28vZkJ1NRIxVt0i7EXVPk
eRtgdrfWHVxlJsWwEivcaGlI1g4tHfQfYhz4as01FpDh3Clumz5s/0bJln1v
2FvcLWzYOVXlbNh/oiGyMeIH/3Ll6W3YSxKVLczfwBd0PgDqw/NIt3POYOe8
YeMXL4/gD/6AA/4MsfMeyAxf3d7+M/7+A6Gj26BHhwGfI+K0GyDij/5x4rhl
ReJ4shVLmLljrEJMzYE/wXqLP1bol/dn+6sLvDNCEzjJ0JvA42ZUrwjkm6pq
AA+CXbstssilUTCR9ZBC3tiqajDXm+SU1wX7M6R7nolBci4gt0EWvFKIk+eq
GCQXgK05qOpFyv4dzbdtgQ1KjVXYSfRzoUECASuBZ8hU51xDkE1cjJG1AzLa
nSyVrtz4vwFdOlwoTTcAAA==

-->

</rfc>
