<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spice-sd-cwt-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title>SPICE SD-CWT</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-04"/>
    <author fullname="Michael Prorock">
      <organization>mesur.io</organization>
      <address>
        <email>mprorock@mesur.io</email>
      </address>
    </author>
    <author fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</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>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 78?>

<t>This specification describes a data minimization technique for use with CBOR Web Tokens (CWTs).
The approach is based on the Selective Disclosure JSON Web Token (SD-JWT), with changes to align with CBOR Object Signing and Encryption (COSE) and CWTs.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-spice.github.io/draft-ietf-spice-sd-cwt/draft-ietf-spice-sd-cwt.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-spice-sd-cwt/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Patterns for Internet CrEdentials Working Group mailing list (<eref target="mailto:spice@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spice/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spice/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-spice/draft-ietf-spice-sd-cwt"/>.</t>
    </note>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification creates a new format based on the CBOR Web Token (CWT) specification <xref target="RFC8392"/>, enabling the Holder of a CWT to disclose or redact special claims marked as selectively disclosable by the Issuer of a CWT.
The approach is modeled after SD-JWT <xref target="I-D.draft-ietf-oauth-selective-disclosure-jwt"/>, with changes to align with conventions from CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/> and CWT.
This specification enables Holders of CWT-based credentials to prove the integrity and authenticity of selected attributes asserted by an Issuer about a Subject to a Verifier.</t>
      <t>Although techniques such as one time use and batch issuance can improve the confidentiality and security characteristics of CWT-based credential protocols, SD-CWTs remain traceable.
Selective Disclosure CBOR Web Tokens (SD-CWTs) can be deployed in protocols that are already using CWTs with minor changes, even if they contain no optional to disclose claims.
Credential types are distinguished by their attributes, for example, a license to operate a vehicle and a license to import a product will contain different attributes.
The specification of credential types is out of scope for this specification, and the examples used in this specification are informative.</t>
      <t>SD-CWT operates on CWT Claims Sets as described in <xref target="RFC8392"/>.
CWT Claims Sets contain Claim Keys and Claim Values.
SD-CWT enables Issuers to mark certain Claim Keys or Claim Values mandatory or optional for a Holder of a CWT to disclose.
A Verifier that does not understand selective disclosure at all cannot process redacted Claim Keys sent by the Holder.
However, Claim Keys and Claim Values that are not understood remain ignored, as described in <xref section="3" sectionFormat="of" target="RFC8392"/>.</t>
      <section anchor="high-level-flow">
        <name>High-Level Flow</name>
        <t>Figure 1: High-level SD-CWT Issuance and Presentation Flow</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="584" viewBox="0 0 584 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,48 L 24,384" fill="none" stroke="black"/>
              <path d="M 288,48 L 288,384" fill="none" stroke="black"/>
              <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
              <path d="M 320,224 L 320,256" fill="none" stroke="black"/>
              <path d="M 320,288 L 320,320" fill="none" stroke="black"/>
              <path d="M 560,48 L 560,384" fill="none" stroke="black"/>
              <path d="M 288,64 L 320,64" fill="none" stroke="black"/>
              <path d="M 296,96 L 320,96" fill="none" stroke="black"/>
              <path d="M 32,112 L 280,112" fill="none" stroke="black"/>
              <path d="M 24,144 L 280,144" fill="none" stroke="black"/>
              <path d="M 288,160 L 552,160" fill="none" stroke="black"/>
              <path d="M 296,192 L 560,192" fill="none" stroke="black"/>
              <path d="M 288,224 L 320,224" fill="none" stroke="black"/>
              <path d="M 296,256 L 320,256" fill="none" stroke="black"/>
              <path d="M 288,288 L 320,288" fill="none" stroke="black"/>
              <path d="M 296,320 L 320,320" fill="none" stroke="black"/>
              <path d="M 288,368 L 552,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="560,368 548,362.4 548,373.6" fill="black" transform="rotate(0,552,368)"/>
              <polygon class="arrowhead" points="560,160 548,154.4 548,165.6" fill="black" transform="rotate(0,552,160)"/>
              <polygon class="arrowhead" points="304,320 292,314.4 292,325.6" fill="black" transform="rotate(180,296,320)"/>
              <polygon class="arrowhead" points="304,256 292,250.4 292,261.6" fill="black" transform="rotate(180,296,256)"/>
              <polygon class="arrowhead" points="304,192 292,186.4 292,197.6" fill="black" transform="rotate(180,296,192)"/>
              <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(180,296,96)"/>
              <polygon class="arrowhead" points="288,144 276,138.4 276,149.6" fill="black" transform="rotate(0,280,144)"/>
              <polygon class="arrowhead" points="40,112 28,106.4 28,117.6" fill="black" transform="rotate(180,32,112)"/>
              <g class="text">
                <text x="28" y="36">Issuer</text>
                <text x="292" y="36">Holder</text>
                <text x="548" y="36">Verifier</text>
                <text x="344" y="84">Key</text>
                <text x="376" y="84">Gen</text>
                <text x="120" y="100">Request</text>
                <text x="180" y="100">SD-CWT</text>
                <text x="424" y="148">Request</text>
                <text x="480" y="148">Nonce</text>
                <text x="120" y="164">Receive</text>
                <text x="180" y="164">SD-CWT</text>
                <text x="424" y="212">Receive</text>
                <text x="480" y="212">Nonce</text>
                <text x="356" y="244">Redact</text>
                <text x="412" y="244">Claims</text>
                <text x="376" y="308">Demonstrate</text>
                <text x="368" y="324">Posession</text>
                <text x="424" y="356">Present</text>
                <text x="484" y="356">SD-CWT</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Issuer                           Holder                         Verifier
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Key Gen                     |
  |        Request SD-CWT          |<--+                             |
  |<-------------------------------|                                 |
  |                                |                                 |
  +------------------------------->|             Request Nonce       |
  |        Receive SD-CWT          +-------------------------------->|
  |                                |                                 |
  |                                |<--------------------------------+
  |                                |             Receive Nonce       |
  |                                +---+                             |
  |                                |   | Redact Claims               |
  |                                |<--+                             |
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Demonstrate                 |
  |                                |<--+ Posession                   |
  |                                |                                 |
  |                                |             Present SD-CWT      |
  |                                +-------------------------------->|
  |                                |                                 |
]]></artwork>
        </artset>
        <t>This diagram captures the essential details necessary to issue and present an SD-CWT.
The parameters necessary to support these processes can be obtained using transports or protocols that are out of scope for this specification.
However, the following guidance is generally recommended, regardless of protocol or transport.</t>
        <ol spacing="normal" type="1"><li>
            <t>The Issuer <bcp14>SHOULD</bcp14> confirm the Holder controls all confirmation material before issuing credentials using the <tt>cnf</tt> claim.</t>
          </li>
          <li>
            <t>To protect against replay attacks, the Verifier <bcp14>SHOULD</bcp14> provide a nonce, and reject requests that do not include an acceptable nonce (cnonce). This guidance can be ignored in cases where replay attacks are mitigated at another layer.</t>
          </li>
        </ol>
      </section>
    </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>This specification uses terms from CWT <xref target="RFC8392"/>, COSE <xref target="RFC9052"/> <xref target="RFC9053"/>
and JWT <xref target="RFC7519"/>.</t>
      <t>The terms Claim Name, Claim Key, and Claim Value are defined in <xref target="RFC8392"/>.</t>
      <t>This specification defines the following new terms:</t>
      <dl>
        <dt>Selective Disclosure CBOR Web Token (SD-CWT):</dt>
        <dd>
          <t>A CWT with claims enabling selective disclosure with key binding.</t>
        </dd>
        <dt>Selective Disclosure Key Binding Token (SD-CWT-KBT):</dt>
        <dd>
          <t>A CWT used to demonstrate possession of a confirmation method, associated with an SD-CWT.</t>
        </dd>
        <dt>Assertion Key:</dt>
        <dd>
          <t>A key used by the Issuer to sign a Claim Values.</t>
        </dd>
        <dt>Confirmation Key:</dt>
        <dd>
          <t>A key used by the Holder to sign a Selected Salted Disclosed Claims.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>An entity that produces a Selective Disclosure CBOR Web Token by signing a Claim Values with an Assertion Key.</t>
        </dd>
        <dt>Holder:</dt>
        <dd>
          <t>An entity that presents a Selective Disclosure Key Binding Token, containing a Selective Disclosure CBOR Web Token and Selected Salted Disclosed Claims signed with a Confirmation Key.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>An entity that validates a Partial or Full Disclosure by a Holder.</t>
        </dd>
        <dt>Partial Disclosure:</dt>
        <dd>
          <t>When a subset of the original claims, protected by the Issuer, are disclosed by the Holder.</t>
        </dd>
        <dt>Full Disclosure:</dt>
        <dd>
          <t>When the full set of claims protected by the Issuer is disclosed by the Holder. An SD-CWT with no blinded claims (when all claims are marked as mandatory to disclose by the Issuer) is considered a Full Disclosure.</t>
        </dd>
        <dt>Salted Disclosed Claim:</dt>
        <dd>
          <t>A salted claim disclosed in the unprotected header of an SD-CWT.</t>
        </dd>
        <dt>Blinded Claim Hash:</dt>
        <dd>
          <t>A hash digest of a Salted Disclosed Claim.</t>
        </dd>
        <dt>Blinded Claim:</dt>
        <dd>
          <t>Any Redacted Claim Key or Redacted Claim Element that has been replaced in the
CWT payload by a Blinded Claim Hash.</t>
        </dd>
        <dt>Redacted Claim Key:</dt>
        <dd>
          <t>The hash of a claim redacted from a map data structure.</t>
        </dd>
        <dt>Redacted Claim Element:</dt>
        <dd>
          <t>The hash of an element redacted from an array data structure.</t>
        </dd>
        <dt>Presented Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing zero or more Redacted Claim Keys or Redacted Claim Elements.</t>
        </dd>
        <dt>Validated Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing all mandatory to disclose claims signed by the Issuer, all selectively disclosed claims presented by the Holder, and omitting all undisclosed instances of Redacted Claim Keys and Redacted Claim Element claims that are present in the original SD-CWT.</t>
        </dd>
      </dl>
      <t>The following diagram explains the relationships between the terminology used in this specification.</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="368" viewBox="0 0 368 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,96 L 8,144" fill="none" stroke="black"/>
            <path d="M 8,256 L 8,320" fill="none" stroke="black"/>
            <path d="M 8,448 L 8,480" fill="none" stroke="black"/>
            <path d="M 24,32 L 24,64" fill="none" stroke="black"/>
            <path d="M 24,192 L 24,224" fill="none" stroke="black"/>
            <path d="M 24,368 L 24,400" fill="none" stroke="black"/>
            <path d="M 72,152 L 72,184" fill="none" stroke="black"/>
            <path d="M 72,328 L 72,360" fill="none" stroke="black"/>
            <path d="M 72,408 L 72,440" fill="none" stroke="black"/>
            <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
            <path d="M 144,192 L 144,224" fill="none" stroke="black"/>
            <path d="M 144,368 L 144,400" fill="none" stroke="black"/>
            <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
            <path d="M 192,192 L 192,224" fill="none" stroke="black"/>
            <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
            <path d="M 352,96 L 352,144" fill="none" stroke="black"/>
            <path d="M 352,256 L 352,320" fill="none" stroke="black"/>
            <path d="M 352,448 L 352,480" fill="none" stroke="black"/>
            <path d="M 360,192 L 360,224" fill="none" stroke="black"/>
            <path d="M 24,32 L 120,32" fill="none" stroke="black"/>
            <path d="M 168,32 L 336,32" fill="none" stroke="black"/>
            <path d="M 128,48 L 168,48" fill="none" stroke="black"/>
            <path d="M 24,64 L 120,64" fill="none" stroke="black"/>
            <path d="M 168,64 L 336,64" fill="none" stroke="black"/>
            <path d="M 8,96 L 352,96" fill="none" stroke="black"/>
            <path d="M 8,144 L 352,144" fill="none" stroke="black"/>
            <path d="M 24,192 L 144,192" fill="none" stroke="black"/>
            <path d="M 192,192 L 360,192" fill="none" stroke="black"/>
            <path d="M 152,208 L 192,208" fill="none" stroke="black"/>
            <path d="M 24,224 L 144,224" fill="none" stroke="black"/>
            <path d="M 192,224 L 360,224" fill="none" stroke="black"/>
            <path d="M 8,256 L 352,256" fill="none" stroke="black"/>
            <path d="M 8,320 L 352,320" fill="none" stroke="black"/>
            <path d="M 24,368 L 144,368" fill="none" stroke="black"/>
            <path d="M 24,400 L 144,400" fill="none" stroke="black"/>
            <path d="M 8,448 L 352,448" fill="none" stroke="black"/>
            <path d="M 8,480 L 352,480" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="160,208 148,202.4 148,213.6" fill="black" transform="rotate(180,152,208)"/>
            <polygon class="arrowhead" points="136,48 124,42.4 124,53.6" fill="black" transform="rotate(180,128,48)"/>
            <polygon class="arrowhead" points="80,440 68,434.4 68,445.6" fill="black" transform="rotate(90,72,440)"/>
            <polygon class="arrowhead" points="80,360 68,354.4 68,365.6" fill="black" transform="rotate(90,72,360)"/>
            <polygon class="arrowhead" points="80,184 68,178.4 68,189.6" fill="black" transform="rotate(90,72,184)"/>
            <g class="text">
              <text x="76" y="52">Issuer</text>
              <text x="216" y="52">Assertion</text>
              <text x="272" y="52">Key</text>
              <text x="72" y="84">v</text>
              <text x="44" y="116">Issuer</text>
              <text x="100" y="116">Signed</text>
              <text x="160" y="116">Blinded</text>
              <text x="220" y="116">Claims</text>
              <text x="32" y="132">All</text>
              <text x="76" y="132">Salted</text>
              <text x="144" y="132">Disclosed</text>
              <text x="212" y="132">Claims</text>
              <text x="76" y="212">Holder</text>
              <text x="252" y="212">Confirmation</text>
              <text x="320" y="212">Key</text>
              <text x="72" y="244">v</text>
              <text x="44" y="276">Issuer</text>
              <text x="100" y="276">Signed</text>
              <text x="160" y="276">Blinded</text>
              <text x="220" y="276">Claims</text>
              <text x="44" y="292">Holder</text>
              <text x="108" y="292">Selected</text>
              <text x="172" y="292">Salted</text>
              <text x="240" y="292">Disclosed</text>
              <text x="308" y="292">Claims</text>
              <text x="44" y="308">Holder</text>
              <text x="100" y="308">Signed</text>
              <text x="144" y="308">Key</text>
              <text x="192" y="308">Binding</text>
              <text x="248" y="308">Token</text>
              <text x="76" y="388">Verifier</text>
              <text x="56" y="468">Validated</text>
              <text x="136" y="468">Disclosed</text>
              <text x="200" y="468">Claim</text>
              <text x="240" y="468">Set</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
  +-----------+     +--------------------+
  |   Issuer  |<----+ Assertion Key      |
  +-----------+     +--------------------+
        v
+------------------------------------------+
| Issuer Signed Blinded Claims             |
| All Salted Disclosed Claims              |
+------------------------------------------+
        |
        v
  +--------------+     +--------------------+
  |   Holder     |<----+ Confirmation Key   |
  +--------------+     +--------------------+
        v
+------------------------------------------+
| Issuer Signed Blinded Claims             |
| Holder Selected Salted Disclosed Claims  |
| Holder Signed Key Binding Token          |
+------------------------------------------+
        |
        v
  +--------------+
  |  Verifier    |
  +--------------+
        |
        v
+------------------------------------------+
| Validated Disclosed Claim Set            |
+------------------------------------------+
]]></artwork>
      </artset>
      <t>This diagram relates the terminology specific to selective disclosure and redaction.</t>
      <artset>
        <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="816" width="360" viewBox="0 0 360 816" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
            <path d="M 8,144 L 8,176" fill="none" stroke="black"/>
            <path d="M 8,240 L 8,272" fill="none" stroke="black"/>
            <path d="M 8,336 L 8,400" fill="none" stroke="black"/>
            <path d="M 8,448 L 8,480" fill="none" stroke="black"/>
            <path d="M 8,560 L 8,592" fill="none" stroke="black"/>
            <path d="M 8,656 L 8,688" fill="none" stroke="black"/>
            <path d="M 8,768 L 8,800" fill="none" stroke="black"/>
            <path d="M 56,72 L 56,136" fill="none" stroke="black"/>
            <path d="M 56,184 L 56,232" fill="none" stroke="black"/>
            <path d="M 56,280 L 56,328" fill="none" stroke="black"/>
            <path d="M 56,408 L 56,440" fill="none" stroke="black"/>
            <path d="M 56,488 L 56,552" fill="none" stroke="black"/>
            <path d="M 56,600 L 56,648" fill="none" stroke="black"/>
            <path d="M 56,696 L 56,760" fill="none" stroke="black"/>
            <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
            <path d="M 104,448 L 104,480" fill="none" stroke="black"/>
            <path d="M 104,560 L 104,592" fill="none" stroke="black"/>
            <path d="M 352,144 L 352,176" fill="none" stroke="black"/>
            <path d="M 352,240 L 352,272" fill="none" stroke="black"/>
            <path d="M 352,336 L 352,400" fill="none" stroke="black"/>
            <path d="M 352,656 L 352,688" fill="none" stroke="black"/>
            <path d="M 352,768 L 352,800" fill="none" stroke="black"/>
            <path d="M 8,32 L 104,32" fill="none" stroke="black"/>
            <path d="M 8,64 L 104,64" fill="none" stroke="black"/>
            <path d="M 8,144 L 352,144" fill="none" stroke="black"/>
            <path d="M 8,176 L 352,176" fill="none" stroke="black"/>
            <path d="M 8,240 L 352,240" fill="none" stroke="black"/>
            <path d="M 8,272 L 352,272" fill="none" stroke="black"/>
            <path d="M 8,336 L 352,336" fill="none" stroke="black"/>
            <path d="M 8,400 L 352,400" fill="none" stroke="black"/>
            <path d="M 8,448 L 104,448" fill="none" stroke="black"/>
            <path d="M 8,480 L 104,480" fill="none" stroke="black"/>
            <path d="M 8,560 L 104,560" fill="none" stroke="black"/>
            <path d="M 8,592 L 104,592" fill="none" stroke="black"/>
            <path d="M 8,656 L 352,656" fill="none" stroke="black"/>
            <path d="M 8,688 L 352,688" fill="none" stroke="black"/>
            <path d="M 8,768 L 352,768" fill="none" stroke="black"/>
            <path d="M 8,800 L 352,800" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="64,760 52,754.4 52,765.6" fill="black" transform="rotate(90,56,760)"/>
            <polygon class="arrowhead" points="64,648 52,642.4 52,653.6" fill="black" transform="rotate(90,56,648)"/>
            <polygon class="arrowhead" points="64,552 52,546.4 52,557.6" fill="black" transform="rotate(90,56,552)"/>
            <polygon class="arrowhead" points="64,440 52,434.4 52,445.6" fill="black" transform="rotate(90,56,440)"/>
            <polygon class="arrowhead" points="64,328 52,322.4 52,333.6" fill="black" transform="rotate(90,56,328)"/>
            <polygon class="arrowhead" points="64,232 52,226.4 52,237.6" fill="black" transform="rotate(90,56,232)"/>
            <polygon class="arrowhead" points="64,136 52,130.4 52,141.6" fill="black" transform="rotate(90,56,136)"/>
            <g class="text">
              <text x="52" y="52">Issuer</text>
              <text x="76" y="100">1.</text>
              <text x="120" y="100">Creates</text>
              <text x="180" y="100">Salted</text>
              <text x="248" y="100">Disclosed</text>
              <text x="312" y="100">Claim</text>
              <text x="116" y="116">[salt,</text>
              <text x="172" y="116">value,</text>
              <text x="220" y="116">key]</text>
              <text x="44" y="164">Salted</text>
              <text x="112" y="164">Disclosed</text>
              <text x="176" y="164">Claim</text>
              <text x="76" y="212">2.</text>
              <text x="116" y="212">Hashes</text>
              <text x="156" y="212">to</text>
              <text x="196" y="212">create</text>
              <text x="48" y="260">Blinded</text>
              <text x="104" y="260">Claim</text>
              <text x="148" y="260">Hash</text>
              <text x="76" y="308">3.</text>
              <text x="124" y="308">Replaces</text>
              <text x="184" y="308">Claim</text>
              <text x="232" y="308">Value</text>
              <text x="276" y="308">with</text>
              <text x="48" y="356">Blinded</text>
              <text x="104" y="356">Claim</text>
              <text x="144" y="356">(in</text>
              <text x="176" y="356">CWT</text>
              <text x="228" y="356">payload)</text>
              <text x="24" y="372">-</text>
              <text x="68" y="372">Original</text>
              <text x="128" y="372">Claim</text>
              <text x="176" y="372">Value</text>
              <text x="212" y="372">is</text>
              <text x="260" y="372">replaced</text>
              <text x="52" y="388">with</text>
              <text x="104" y="388">Blinded</text>
              <text x="160" y="388">Claim</text>
              <text x="204" y="388">Hash</text>
              <text x="52" y="468">Holder</text>
              <text x="76" y="516">4.</text>
              <text x="124" y="516">Presents</text>
              <text x="196" y="516">selected</text>
              <text x="116" y="532">Salted</text>
              <text x="184" y="532">Disclosed</text>
              <text x="252" y="532">Claims</text>
              <text x="52" y="580">Verifier</text>
              <text x="76" y="628">5.</text>
              <text x="116" y="628">Hashes</text>
              <text x="172" y="628">Salted</text>
              <text x="240" y="628">Disclosed</text>
              <text x="304" y="628">Claim</text>
              <text x="48" y="676">Blinded</text>
              <text x="104" y="676">Claim</text>
              <text x="148" y="676">Hash</text>
              <text x="212" y="676">(computed)</text>
              <text x="76" y="724">6.</text>
              <text x="120" y="724">Matches</text>
              <text x="172" y="724">with</text>
              <text x="212" y="724">hash</text>
              <text x="244" y="724">in</text>
              <text x="288" y="724">payload</text>
              <text x="100" y="740">to</text>
              <text x="144" y="740">recover</text>
              <text x="212" y="740">original</text>
              <text x="40" y="788">Claim</text>
              <text x="88" y="788">Value</text>
              <text x="160" y="788">(recovered)</text>
            </g>
          </svg>
        </artwork>
        <artwork type="ascii-art"><![CDATA[
+-----------+
|  Issuer   |
+-----------+
      |
      | 1. Creates Salted Disclosed Claim
      |    [salt, value, key]
      v
+------------------------------------------+
| Salted Disclosed Claim                   |
+------------------------------------------+
      |
      | 2. Hashes to create
      v
+------------------------------------------+
| Blinded Claim Hash                       |
+------------------------------------------+
      |
      | 3. Replaces Claim Value with
      v
+------------------------------------------+
| Blinded Claim (in CWT payload)           |
| - Original Claim Value is replaced       |
|   with Blinded Claim Hash                |
+------------------------------------------+
      |
      v
+-----------+
|  Holder   |
+-----------+
      |
      | 4. Presents selected
      |    Salted Disclosed Claims
      v
+-----------+
| Verifier  |
+-----------+
      |
      | 5. Hashes Salted Disclosed Claim
      v
+------------------------------------------+
| Blinded Claim Hash (computed)            |
+------------------------------------------+
      |
      | 6. Matches with hash in payload
      |    to recover original
      v
+------------------------------------------+
| Claim Value (recovered)                  |
+------------------------------------------+
]]></artwork>
      </artset>
    </section>
    <section anchor="overview-of-selective-disclosure-cwt">
      <name>Overview of Selective Disclosure CWT</name>
      <section anchor="a-cwt-without-selective-disclosure">
        <name>A CWT without Selective Disclosure</name>
        <t>Below is the payload of a standard CWT not using selective disclosure.
It consists of standard CWT claims, the Holder confirmation key, and five specific custom claims. The payload is shown below in CBOR Extended Diagnostic
Notation (EDN) <xref target="I-D.ietf-cbor-edn-literals"/>. Note that some of the CWT claim map keys shown in the examples have been invented for this example and do not have registered integer keys.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    /inspector_license_number/ 501: "ABCD-123456",
    /inspection_dates/ 502 : [
        1549560720,   / 2019-02-07T17:32:00 /
        1612498440,   / 2021-02-04T20:14:00 /
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    /inspection_location/ 503: {
        "country": "us",            / United States /
        "region": "ca",             / California /
        "postal_code": "94188"
    }
}
]]></sourcecode>
        <t>The custom claims deal with attributes of an inspection of the subject: the pass/fail result, the inspection location, the license number of the inspector, and a list of dates when the subject was inspected.</t>
      </section>
      <section anchor="holder-gets-an-sd-cwt-from-the-issuer">
        <name>Holder gets an SD-CWT from the Issuer</name>
        <t>Alice would like to selectively disclose some of these (custom) claims to different Verifiers.
Note that some of the claims may not be selectively disclosable.
In our next example, the pass/fail status of the inspection, the most recent inspection date, and the country of the inspection will be claims that are always present in the SD-CWT.
After the Holder requests an SD-CWT from the Issuer, the Issuer generates the following SD-CWT:</t>
        <figure anchor="basic-issuer-cwt">
          <name>Issued SD-CWT with all disclosures</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18([  / issuer SD-CWT /
  / CWT protected / << {
    / alg /    1  : -35, / ES384 /
    / kid /    4  : 'https://issuer.example/cose-key3',
    / typ /    16 : "application/sd-cwt",
    / sd_alg / 18 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'7af7084b50badeb57d49ea34627c7a52',
            /value/  1612560720   / inspected 4-Feb-2021 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /value/  "ca",
            /claim/  "region"   / region=California /
        ]>>,
        <<[
            /salt/   h'37c23d4ec4db0806601e6b6dc6670df9',
            /value/  "94188",
            /claim/  "postal_code"
        ]>>,
    ]
  }
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://device.example",
    / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
    / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
    / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
    / cnf / 8   : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    /inspection_dates/ 502 : [
        / redacted inspection date 7-Feb-2019 /
        60(h'1b7fc8ecf4b1290712497d226c04b503
             b4aa126c603c83b75d2679c3c613f3fd'),
        / redacted inspection date 4-Feb-2021 /
        60(h'64afccd3ad52da405329ad935de1fb36
             814ec48fdfd79e3a108ef858e291e146'),
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    / inspection_location / 503 : {
        "country" : "us",            / United States /
        / redacted_claim_keys / simple(59) : [
            / redacted region /
            h'0d4b8c6123f287a1698ff2db15764564
              a976fb742606e8fd00e2140656ba0df3'
            / redacted postal_code /
            h'c0b7747f960fc2e201c4d47c64fee141
              b78e3ab768ce941863dc8914e8f5815f'
      ]
    },
    / redacted_claim_keys / simple(59) : [
        / redacted inspector_license_number /
        h'af375dc3fba1d082448642c00be7b2f7
          bb05c9d8fb61cfc230ddfdfb4616a693'
    ]
  } >>,
  / CWT signature / h'9c9022e57adb33c853f30b6e8a590f40
                      6ca55849d7b8cd2a2519d3aec03e61b9
                      ef0ecd85fe96103f916f58d73cd2f775
                      4c390401945f0683b144d3504e500f94
                      d30433c3445417dc3c920f7a155548e9
                      1994601827d0a46ead66ff450485e85f'
])
]]></sourcecode>
        </figure>
        <t>Some of the claims are <em>redacted</em> in the payload. The corresponding <em>disclosure</em> is communicated in the unprotected header in the <tt>sd_claims</tt> header parameter.
For example, the <tt>inspector_license_number</tt> claim is a Salted Disclosed Claim, consisting of a per-disclosure random salt, the Claim Key, and Claim Value.</t>
        <figure>
          <name>CBOR extended diagnostic notation representation of inspector_license_number disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
]]></sourcecode>
        </figure>
        <t>This is represented in CBOR pretty-printed format as follows (with end-of-line comments and spaces inserted for clarity):</t>
        <figure>
          <name>CBOR encoding of inspector_license_number disclosure</name>
          <sourcecode type="cbor-pretty"><![CDATA[
83                                     # array(3)
   50                                  # bytes(16)
      bae611067bb823486797da1ebbb52f83 # 16-byte salt
   6b                                  # text(11)
      414243442d313233343536           # "ABCD-123456"
   19 01f5                             # unsigned(501)
]]></sourcecode>
        </figure>
        <t>The cryptographic hash, using the hash algorithm identified by the <tt>sd_alg</tt> header parameter in the protected headers, of that byte string is the Blinded Claim Hash (shown in hex).
The digest value is included in the payload in a <tt>redacted_claim_keys</tt> field for a Redacted Claim Key (in this example), or in a named array for a Redacted Claim Element (for example, for the redacted claim element of <tt>inspection_dates</tt>).</t>
        <figure>
          <name>SHA-256 hash of inspector_license_number disclosure</name>
          <artwork><![CDATA[
d9df03da474fcb3c65771748e2e0608cf437504ecc24f450aaeacd40dd552b3f
]]></artwork>
        </figure>
        <t>Finally, since this redacted claim is a map key and value, the Blinded Claim Hash is placed in a <tt>redacted_claim_keys</tt> array in the SD-CWT payload at the same level of hierarchy as the original claim.
Redacted claims that are array elements are handled slightly differently, as described in <xref target="blinded-claims"/>.</t>
        <figure>
          <name>redacted inspector_license_number claim in the issued CWT payload</name>
          <sourcecode type="cbor-diag"><![CDATA[
  / redacted_claim_keys / simple(59) : [
      / redacted inspector_license_number /
      h'af375dc3fba1d082448642c00be7b2f7
        bb05c9d8fb61cfc230ddfdfb4616a693'
      / ... next redacted claim at the same level would go here /  ],
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="sd-cwt-preparation">
      <name>Holder prepares an SD-CWT for a Verifier</name>
      <t>When the Holder wants to send an SD-CWT and disclose none, some, or all of the redacted values, it makes a list of the values to disclose and puts them in <tt>sd_claims</tt> header parameter in the unprotected header.</t>
      <t>For example, Alice decides to disclose to a Verifier the <tt>inspector_license_number</tt> claim (ABCD-123456), the <tt>region</tt> claim (California), and the earliest date element in the <tt>inspection_dates</tt> array (7-Feb-2019).</t>
      <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /value/  "ca",
            /claim/  "region"   / region=California /
        ]>>,
    ]
]]></sourcecode>
      <t>The Holder <bcp14>MAY</bcp14> fetch a nonce from the Verifier to prevent replay, or obtain a nonce acceptable to the Verifier through a process similar to the method described in <xref target="I-D.ietf-httpbis-unprompted-auth"/>.</t>
      <t>Finally, the Holder generates a Selective Disclosure Key Binding Token (SD-KBT) that ties together the SD-CWT generated by the Issuer (with the disclosures the Holder chose for the Verifier in its unprotected header), the Verifier target audience and optional nonces, and proof of possession of the Holder's private key.</t>
      <t>The issued SD-CWT is placed in the <tt>kcwt</tt> (Confirmation Key CWT) protected header field (defined in <xref target="RFC9528"/>).</t>
      <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / kcwt /  13:  ...
           /  *** SD-CWT from Issuer goes here      /
           /  with Holder's choice of disclosures   /
           /  in the SD-CWT unprotected header  *** /,
    / end of issuer SD-CWT /
    / typ /   16:  "application/kb+cwt",
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803'
  } >>,      / end of KBT payload /
  / KBT signature / h'd895729e72a3a7c801d5a20e9daf5103
                      27858aecbb39b8b2e4bc11cbbd625ea8
                      c60b78da31fc9762c46b7cd61094d047
                      5ff1f19a7496cde53ab11600a5859d10'
])   / end of kbt /
]]></sourcecode>
      <t>The digests in protected parts of the issued SD-CWT and the disclosures hashed in unprotected header of the <tt>issuer_sd_cwt</tt> are used together by the Verifier to confirm the disclosed claims.
Since the unprotected header of the included SD-CWT is covered by the signature in the SW-KBT, the Verifier has assurance that the Holder included the sent list of disclosures.</t>
    </section>
    <section anchor="cwt-diffs">
      <name>Differences from the CBOR Web Token Specification</name>
      <t>The CBOR Web Token Specification (Section 1.1 of <xref target="RFC8392"/>), uses text strings, negative integers, and unsigned integers as map keys.
This specification also allows the CBOR simple value registered in this specification in <xref target="simple59"/>, and CBOR tagged integers and text strings as map keys.
As in CWTs, CBOR maps used in an SD-CWT or SD-KBT also cannot have duplicate keys.
(An integer or text string map key is a distinct key from a tagged map key that wraps the corresponding integer or text string value).</t>
      <ul empty="true">
        <li>
          <t>When sorted, map keys in CBOR are arranged in bytewise lexicographic order of the key's deterministic encodings (see Section 4.2.1 of <xref target="RFC8949"/>).
So, an integer key of 3 is represented in hex as <tt>03</tt>, an integer key of -2 is represented in hex as <tt>21</tt>, and a tag of 60 wrapping a 3 is represented in hex as <tt>D8 3C 03</tt></t>
        </li>
      </ul>
      <t>Note that Holders presenting to a Verifier that does not support this specification would need to present a CWT without tagged map keys or simple value map keys.</t>
      <t>Tagged keys are not registered in the CBOR Web Token Claims IANA registry.
Instead, the tag provides additional information about the tagged Claim Key and the corresponding (untagged) value.
Multiple levels of tags in a key are not permitted.</t>
      <t>Variability in serialization requirements impacts privacy.</t>
      <t>See <xref target="security"/> for more details on the privacy impact of serialization and profiling.</t>
    </section>
    <section anchor="sd-cwt-definition">
      <name>SD-CWT Definition</name>
      <t>SD-CWT is modeled after SD-JWT, with adjustments to align with conventions in CBOR, COSE, and CWT.
An SD-CWT <bcp14>MUST</bcp14> include the protected header parameter <tt>typ</tt> <xref target="RFC9596"/> with a value declaring that the object is an SD-CWT.
This value <bcp14>MAY</bcp14> be the string content type value <tt>application/sd-cwt</tt>,
the uint Constrained Application Protocol (CoAP) <xref target="RFC7252"/> content-format value TBD11,
or a value declaring that the object is a more specific kind of SD-CWT,
such as a content type value using the <tt>+sd-cwt</tt> structured suffix.</t>
      <t>An SD-CWT is an extension of a CWT that can contain blinded claims (each expressed as a Blinded Claim Hash) in the CWT payload, at the root level or in any arrays or maps inside that payload.
It is not required to contain any blinded claims.</t>
      <t>Optionally the salted Claim Values (and often Claim Keys) for the corresponding Blinded Claim Hash are disclosed in the <tt>sd_claims</tt> header parameter in the unprotected header of the CWT (the disclosures).
If there are no disclosures (and when no Blinded Claims Hash is present in the payload) the <tt>sd_claims</tt> header parameter in the unprotected header is an empty array.</t>
      <t>Any party with a Salted Disclosed Claim can generate its hash, find that hash in the CWT payload, and unblind the content.
However, a Verifier with the hash cannot reconstruct the corresponding blinded claim without disclosure of the Salted Disclosed Claim.</t>
      <section anchor="blinded-claims">
        <name>Types of Blinded Claims</name>
        <t>Salted Disclosed Claims for named claims are structured as a 128-bit salt, the disclosed value, and the name of the redacted element.
For Salted Disclosed Claims of items in an array, the name is omitted.</t>
        <sourcecode type="cddl"><![CDATA[
salted = salted-claim / salted-element / decoy
salted-claim = [
  bstr .size 16,     ; 128-bit salt
  any,               ; Claim Value
  (int / text)       ; Claim Key
]
salted-element = [
  bstr .size 16,     ; 128-bit salt
  any                ; Claim Value
]
decoy = [
  bstr .size 16      ; 128-bit salt
]

; a collection of Salted Disclosed Claims
salted-array = [ +bstr .cbor salted ]
]]></sourcecode>
        <t>When a blinded claim is a key in a map, its blinded claim hash is added to a <tt>redacted_claim_keys</tt> array claim in the CWT payload that is at the same level of hierarchy as the key being blinded.
The <tt>redacted_claim_keys</tt> key is the CBOR simple type TBD4 registered for that purpose (with the requested value of 59).</t>
        <t>When blinding an individual item in an array, the value of the item is replaced with the digested salted hash as a CBOR byte string, wrapped with the CBOR tag TBD5 (requested tag number 60).</t>
        <sourcecode type="cddl"><![CDATA[
; redacted_claim_element = #6.<TBD5>( bstr ) -- RFC 9682 syntax
redacted_claim_element = #6.60( bstr )
]]></sourcecode>
        <t>Blinded claims can be nested. For example, both individual keys in the <tt>inspection_location</tt> claim, and the entire <tt>inspection_location</tt> element can be separately blinded.
An example nested claim is shown in <xref target="nesting"/>.</t>
        <t>Finally, an Issuer <bcp14>MAY</bcp14> create decoy digests, which look like blinded claim hashes but have only a salt.
Decoy digests are discussed in <xref target="decoys"/>.</t>
      </section>
    </section>
    <section anchor="sd-cwt-issuance">
      <name>SD-CWT Issuance</name>
      <t>How the Holder communicates to the Issuer to request a CWT or an SD-CWT is out of scope for this specification.
Likewise, how the Holder determines which claims to blind or to always disclose is a policy matter, which is not discussed in this specification.
This specification defines the format of an SD-CWT communicated between an Issuer and a Holder in this section, and describes the format of a Key Binding Token containing that SD-CWT communicated between a Holder and a Verifier in <xref target="sd-cwt-presentation"/>.</t>
      <t>The protected header <bcp14>MAY</bcp14> contain the <tt>sd_alg</tt> header parameter identifying the algorithm (from the COSE Algorithms registry) used to hash the Salted Disclosed Claims.
If no <tt>sd_alg</tt> header parameter is present, the default hash function SHA-256 is used.</t>
      <t>The unprotected header <bcp14>MUST</bcp14> contain the <tt>sd_claims</tt> header parameter with a Salted Disclosed Claim for every blinded claim hash present anywhere in the payload, and any decoys (see <xref target="decoys"/>).
If there are no disclosures, the <tt>sd_claims</tt> header parameter value is an empty array.
The payload also <bcp14>MUST</bcp14> include a key confirmation element (<tt>cnf</tt>) <xref target="RFC8747"/> for the Holder's public key.</t>
      <t>In an SD-CWT, either the subject <tt>sub</tt> / 2 claim <bcp14>MUST</bcp14> be present, or the redacted form of the subject <bcp14>MUST</bcp14> be present.
The <tt>iss</tt> / 1 claim <bcp14>SHOULD</bcp14> be present unless the protected header contains a certificate or certificate-like entity that fully identifies the Issuer.
All other standard CWT claims (<tt>aud</tt> / 3, <tt>exp</tt> / 4, <tt>nbf</tt> / 5, <tt>iat</tt> / 6, and <tt>cti</tt> / 7) are <bcp14>OPTIONAL</bcp14>.
The <tt>cnonce</tt> / 39 claim is <bcp14>OPTIONAL</bcp14>.
The <tt>cnf</tt> / 8 claim, the <tt>cnonce</tt> / 39 claim, and the standard claims other than the subject <bcp14>MUST NOT</bcp14> be redacted.
Any other claims are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> be redacted.
Profiles of this specification <bcp14>MAY</bcp14> specify additional claims that <bcp14>MUST</bcp14>, <bcp14>MUST NOT</bcp14>, and <bcp14>MAY</bcp14> be redacted.</t>
      <t>To further reduce the size of the SD-CWT, a COSE Key Thumbprint (ckt) <xref target="RFC9679"/> <bcp14>MAY</bcp14> be used in the <tt>cnf</tt> claim.</t>
      <section anchor="issuer-generation">
        <name>Issuer Generation</name>
        <t>The Issuer follows all the requirements of generating a valid SD-CWT, largely a CWT extended by <xref target="cwt-diffs"/>.
The Issuer <bcp14>MUST</bcp14> implement COSE_Sign1 using an appropriate fully-specified asymmetric signature algorithm (for example, ESP256 or Ed25519).</t>
        <t>The Issuer <bcp14>MUST</bcp14> generate a unique cryptographically random salt with at least 128-bits of entropy for each Salted Disclosed Claim.
If the client communicates a client-generated nonce (<tt>cnonce</tt>) when requesting the SD-CWT, the Issuer <bcp14>MUST</bcp14> include it in the payload.</t>
      </section>
      <section anchor="holder-validation">
        <name>Holder Validation</name>
        <t>Upon receiving an SD-CWT from the Issuer with the Holder as the subject, the
Holder verifies the following:</t>
        <ul spacing="normal">
          <li>
            <t>the issuer (<tt>iss</tt>) and subject (<tt>sub</tt>) are correct;</t>
          </li>
          <li>
            <t>if an audience (<tt>aud</tt>) is present, it is acceptable;</t>
          </li>
          <li>
            <t>the CWT is valid according to the <tt>nbf</tt> and <tt>exp</tt> claims, if present;</t>
          </li>
          <li>
            <t>a public key under the control of the Holder is present in the <tt>cnf</tt> claim;</t>
          </li>
          <li>
            <t>the hash algorithm identified by the <tt>sd_alg</tt> header parameter in the protected headers is supported by the Holder;</t>
          </li>
          <li>
            <t>if a <tt>cnonce</tt> is present, it was provided by the Holder to this Issuer and is still fresh;</t>
          </li>
          <li>
            <t>there are no unblinded claims about the subject that violate its privacy policies;</t>
          </li>
          <li>
            <t>every blinded claim hash (some of which may be nested as in <xref target="nesting"/>) has a corresponding Salted Disclosed Claim, and vice versa;</t>
          </li>
          <li>
            <t>the values of the Salted Disclosed Claims when placed in their unblinded context in the payload are acceptable to the Holder.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>A Holder <bcp14>MAY</bcp14> choose to validate the appropriateness or correctness of some or all of the information in a token, should it have the ability to do so, and it <bcp14>MAY</bcp14> choose to not present information to a Verifier that it deems to be incorrect.</t>
          </li>
        </ul>
        <t>The following informative CDDL is provided to describe the syntax for SD-CWT issuance. A complete CDDL schema is in <xref target="cddl"/>.</t>
        <sourcecode type="cddl"><![CDATA[
sd-cwt-issued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor sd-payload,
   signature: bstr
])

sd-protected = {
   &(typ: 16) ^ => "application/sd-cwt" / TBD11,
   &(alg: 1) ^ => int,
   &(sd_alg: TBD2) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: TBD7) ^ => uint .size 2
   * key => any
}

sd-unprotected = {
   ? &(sd_claims: TBD1) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: TBD6) ^ => aead-encrypted-array,
   * key => any
}

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://device.example"
    ? &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => int,  ; 1883000000
    ? &(nbf: 5) ^ => int,  ; 1683000000
    ? &(iat: 6) ^ => int,  ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => { * key => any }, ; key confirmation
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? &(redacted_claim_keys: REDACTED_KEYS) ^ => [ * bstr ],
    * key => any
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="sd-cwt-presentation">
      <name>SD-CWT Presentation</name>
      <t>When issuing an SD-CWT to a Holder, the Issuer includes all the Salted Disclosed Claims in the unprotected header.</t>
      <t>By contrast, when a Holder presents an SD-CWT to a Verifier, it can disclose none, some, or all of its blinded claims.
If the Holder wishes to disclose any blinded claims, it includes that subset of its Salted Disclosed Claims in the <tt>sd_claims</tt> header parameter of the unprotected header.</t>
      <t>An SD-CWT presentation to a Verifier has the same syntax as an SD-CWT issued to a Holder, except the Holder chooses the subset of disclosures included in the <tt>sd_claims</tt> header parameter.</t>
      <ul empty="true">
        <li>
          <t>Since the unprotected header is not included in the Issuer's signature, the list of disclosed claims can differ without invalidating the corresponding signature.</t>
        </li>
      </ul>
      <t>Finally, the SD-CWT used for presentation to a Verifier is included in a key binding token, as discussed in the next section.</t>
      <section anchor="kbt">
        <name>Creating a Key Binding Token</name>
        <t>Regardless if it discloses any claims, the Holder sends the Verifier a unique Holder key binding (SD-KBT) <xref target="kbt"/> for every presentation of an SD-CWT to a different Verifier.</t>
        <t>An SD-KBT is itself a type of CWT, signed using the private key corresponding to the key in the <tt>cnf</tt> claim in the presented SD-CWT.
The SD-KBT contains the SD-CWT, including the Holder's choice of presented disclosures, in the <tt>kcwt</tt> protected header field in the SD-KBT.</t>
        <t>The Holder is conceptually both the subject and the Issuer of the Key Binding Token.
Therefore, the <tt>sub</tt> and <tt>iss</tt> of an SD-KBT are implied from the <tt>cnf</tt> claim in the included SD-CWT, and <bcp14>MUST NOT</bcp14> be present in the SD-KBT.
(Profiles of this specification <bcp14>MAY</bcp14> define additional semantics.)</t>
        <t>The <tt>aud</tt> claim <bcp14>MUST</bcp14> be included and <bcp14>MUST</bcp14> correspond to the Verifier.
The SD-KBT payload <bcp14>MUST</bcp14> contain the <tt>iat</tt> (issued at) claim.
The protected header of the SD-KBT <bcp14>MUST</bcp14> include the <tt>typ</tt> header parameter with the value <tt>application/kb+cwt</tt> or the uint value of TBD12.</t>
        <t>The SD-KBT provides the following assurances to the Verifier:</t>
        <ul spacing="normal">
          <li>
            <t>the Holder of the SD-CWT controls the confirmation method chosen by the Issuer;</t>
          </li>
          <li>
            <t>the Holder's disclosures have not been tampered with since confirmation occurred;</t>
          </li>
          <li>
            <t>the Holder intended to address the SD-CWT to the Verifier specified in the audience (<tt>aud</tt>) claim;</t>
          </li>
          <li>
            <t>the Holder's disclosure is linked to the creation time (<tt>iat</tt>) of the key binding.</t>
          </li>
        </ul>
        <t>The SD-KBT prevents an attacker from copying and pasting disclosures, or from adding or removing disclosures without detection.
Confirmation is established according to <xref target="RFC8747"/>, using the <tt>cnf</tt> claim in the payload of the SD-CWT.</t>
        <t>The Holder signs the SD-KBT using the key specified in the <tt>cnf</tt> claim in the SD-CWT. This proves possession of the Holder's private key.</t>
        <sourcecode type="cddl"><![CDATA[
kbt-cwt = #6.18([
   protected: bstr .cbor kbt-protected,
   kbt-unprotected,
   payload: bstr .cbor kbt-payload,
   signature: bstr
])

kbt-protected = {
   &(typ: 16) ^ => "application/kb+cwt" / TBD12,
   &(alg: 1) ^ => int,
   &(kcwt: 13) ^ => sd-cwt-issued,
   * key => any
}

kbt-unprotected = {
   * key => any
}

kbt-payload = {
      &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => int,  ; 1883000000
    ? &(nbf: 5) ^ => int,  ; 1683000000
      &(iat: 6) ^ => int,  ; 1683000000
    ? &(cnonce: 39) ^ => bstr,
    * key => any
}
]]></sourcecode>
        <t>The SD-KBT payload <bcp14>MAY</bcp14> include a <tt>cnonce</tt> claim.
If included, the <tt>cnonce</tt> is a <tt>bstr</tt> and <bcp14>MUST</bcp14> be treated as opaque to the Holder.
All other claims are <bcp14>OPTIONAL</bcp14> in an SD-KBT.</t>
      </section>
    </section>
    <section anchor="sd-kbt-and-sd-cwt-verifier-validation">
      <name>SD-KBT and SD-CWT Verifier Validation</name>
      <t>The exact order of the following steps <bcp14>MAY</bcp14> be changed, as long as all checks are performed before deciding if an SD-CWT is valid.</t>
      <ol spacing="normal" type="1"><li>
          <t>First the Verifier must open the protected headers of the SD-KBT and find the Issuer SD-CWT present in the <tt>kcwt</tt> field.</t>
        </li>
        <li>
          <t>Next, the Verifier must validate the SD-CWT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.</t>
        </li>
        <li>
          <t>The Verifier extracts the confirmation key from the <tt>cnf</tt> claim in the SD-CWT payload.</t>
        </li>
        <li>
          <t>Using the confirmation key, the Verifier validates the SD-KBT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.</t>
        </li>
        <li>
          <t>Finally, the Verifier <bcp14>MUST</bcp14> extract and decode the disclosed claims from the <tt>sd_claims</tt> header parameter in the unprotected header of the SD-CWT.
 The decoded <tt>sd_claims</tt> are converted to an intermediate data structure called a Digest To Disclosed Claim Map that is used to transform the Presented Disclosed Claims Set into a Validated Disclosed Claims Set.
 The Verifier <bcp14>MUST</bcp14> compute the hash of each Salted Disclosed Claim (<tt>salted</tt>), in order to match each disclosed value to each entry of the Presented Disclosed Claims Set.
 One possible concrete representation of the intermediate data structure for the Digest To Disclosed Claim Map could be: <tt>{ &amp;(digested-salted-disclosed-claim) =&gt; salted }</tt>  </t>
          <ol spacing="normal" type="a"><li>
              <t>The Verifier constructs an empty cbor map called the Validated Disclosed Claims Set, and initializes it with all mandatory to disclose claims from the verified Presented Disclosed Claims Set.</t>
            </li>
            <li>
              <t>Next, the Verifier performs a breadth first or depth first traversal of the Presented Disclosed Claims Set and Validated Disclosed Claims Set, using the Digest To Disclosed Claim Map to insert claims into the Validated Disclosed Claims Set when they appear in the Presented Disclosed Claims Set.
By performing these steps, the recipient can cryptographically verify the integrity of the protected claims and verify they have not been tampered with.</t>
            </li>
            <li>
              <t>If there remain unused claims in the Digest To Disclosed Claim Map at the end of this procedure the SD-CWT <bcp14>MUST</bcp14> be considered invalid.</t>
            </li>
          </ol>
          <ul empty="true">
            <li>
              <t>Note: A Verifier <bcp14>MUST</bcp14> be prepared to process disclosures in any order. When disclosures are nested, a disclosed value could appear before the disclosure of its parent.</t>
            </li>
          </ul>
        </li>
      </ol>
      <ol spacing="normal" type="1" start="6"><li>
          <t>A Verifier <bcp14>MUST</bcp14> reject the SD-CWT if the audience claim in either the SD-CWT or the SD-KBT contains a value that does not correspond to the intended recipient.</t>
        </li>
        <li>
          <t>Otherwise, the SD-CWT is considered valid, and the Validated Disclosed Claims Set is now a CWT Claims Set with no claims marked for redaction.</t>
        </li>
        <li>
          <t>Further validation logic can be applied to the Validated Disclosed Claims Set, just as it might be applied to a validated CWT Claims Set.</t>
        </li>
      </ol>
    </section>
    <section anchor="decoys">
      <name>Decoy Digests</name>
      <t><strong>TODO</strong></t>
    </section>
    <section anchor="encrypted-disclosures">
      <name>Encrypted Disclosures</name>
      <t>The RATS architecture <xref target="RFC9334"/> defines a model where the Verifier is split into separate entities, with an initial verifier called an Attester, and a target entity called a Relying Party.
Other protocols have a similar type of internal structure for the Verifier.</t>
      <t>In some of these use cases, there is existing usage of AES-128 GCM and other Authenticated Encryption with Additional Data (AEAD) <xref target="RFC5116"/> algorithms.</t>
      <t>This section describes how to use AEADs to encrypt disclosures to a target entity, while enabling a initial verifier to confirm the authenticity of the presentation from the Holder.</t>
      <t>In these systems, an appropriate symmetric key and its context are provided completely out-of-band.</t>
      <t>The entire SD-CWT is included in the protected header of the SD-KBT, which secures the entire Issuer-signed SD-CWT including its unprotected headers that include its disclosures.</t>
      <t>When encrypted disclosures are present, they <bcp14>MUST</bcp14> be in the unprotected headers of the Issuer-signed SD-CWT, before the SD-KBT can be generated by the Holder.</t>
      <t>The initial Verifier of the key binding token might not be able to decrypt encrypted disclosures and <bcp14>MAY</bcp14> decide to forward them to an inner Verifier that can decrypt them.</t>
      <section anchor="aead">
        <name>AEAD Encrypted Disclosures Mechanism</name>
        <t>This section defines two new COSE Header Parameters.
If present in the protected headers, the first header parameter (<tt>sd_aead</tt>) specifies an Authenticated Encryption with Additional Data (AEAD) algorithm <xref target="RFC5116"/> registered in the <eref target="https://www.iana.org/assignments/aead-parameters/aead-parameters.xhtml">IANA AEAD Algorithms registry</eref> .
The second header parameter (<tt>sd_aead_encrypted_claims</tt>) contains a list of AEAD encrypted disclosures.
Taking the first example disclosure from above:</t>
        <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
]]></sourcecode>
        <t>The corresponding bstr is encrypted with an AEAD algorithm <xref target="RFC5116"/>.
If present, the algorithm of the <tt>sd_aead</tt> protected header field is used, or AEAD_AES_128_GCM if no algorithm was specified. The bstr is encrypted with a unique, random 16-octet nonce.
The AEAD ciphertext consists of its encryption algorithm's ciphertext and its authentication tag.
(For example, in AEAD_AES_128_GCM the authentication tag is 16 octets.)
The nonce (<tt>nonce</tt>), the encryption algorithm's ciphertext (<tt>ciphertext</tt>) and authentication tag (<tt>tag</tt>) are put in an array.
The resulting array is placed in the <tt>sd_aead_encrypted_claims</tt> header parameter in the unprotected headers of the SD-CWT.</t>
        <sourcecode type="cbor-diag"><![CDATA[
/ sd_aead_encrypted_claims / 19 : [ / AEAD encrypted disclosures /
    [
        / nonce /      h'95d0040fe650e5baf51c907c31be15dc',
        / ciphertext / h'208cda279ca86444681503830469b705
                         89654084156c9e65ca02f9ac40cd62b5
                         a2470d',
        / tag /        h'1c6e732977453ab2cacbfd578bd238c0'
    ],
    ...
]
]]></sourcecode>
        <ul empty="true">
          <li>
            <t>In the example above, the key in hex is <tt>a061c27a3273721e210d031863ad81b6</tt>.</t>
          </li>
        </ul>
        <t>The blinded claim hash is still over the unencrypted disclosure.
The receiver of an AEAD encrypted disclosure locates the appropriate key by looking up the authentication tag.
If the Verifier is able to decrypt and verify an encrypted disclosure, the decrypted disclosure is then processed as if it were in the <tt>sd_claims</tt> header parameter in the unprotected headers of the SD-CWT.</t>
        <t>Details of key management are left to profiles of the specific protocols that make use of AEAD encrypted disclosures.</t>
        <t>The CDDL for AEAD encrypted disclosures is below.</t>
        <sourcecode type="cddl"><![CDATA[
aead-encrypted-array = [ +aead-encrypted ]
aead-encrypted = [
  bstr,              ; nonce value
  bstr,              ; the ciphertext output of a bstr-encoded-salted
                     ;   with a matching salt
  bstr               ; the corresponding authentication tag
]
;bstr-encoded-salted = bstr .cbor salted
]]></sourcecode>
        <ul empty="true">
          <li>
            <t>Note: Because the encryption algorithm is in a registry that contains only AEAD algorithms, an attacker cannot replace the algorithm or the message, without a decryption verification failure.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="cred-types">
      <name>Credential Types</name>
      <t>This specification defines the CWT claim <tt>vct</tt> (for Verifiable Credential Type).
The <tt>vct</tt> value is an identifier for the type of the SD-CWT Claims Set.
Like the <tt>typ</tt> header parameter <xref target="RFC9596"/>, its value can be either a string or an integer.
For size reasons, it is <bcp14>RECOMMENDED</bcp14> that the numeric representation be used.</t>
      <t>If its value is a string, it is a case-sensitive StringOrURI, as defined in <xref target="RFC7519"/>.
In this case, the <tt>vct</tt> string <bcp14>MUST</bcp14> either be registered in the
IANA "Verifiable Credential Type Identifiers" registry
established in <xref target="vct-registry"/>,
or be a Collision-Resistant Name, as defined in Section 2 of <xref target="RFC7515"/>.</t>
      <t>If its value is an integer, it is either a value in the range 0-64999 registered in
the IANA "Verifiable Credential Type Identifiers" registry
established in <xref target="vct-registry"/>
or an  Experimental Use value in the range 65000-65535,
which is not to be used in operational deployments.</t>
      <t>This claim is defined for COSE-based verifiable credentials, similar to the JOSE-based verifiable credentials claim (<tt>vct</tt>) described in Section 3.2.2.1.1 of <xref target="I-D.draft-ietf-oauth-sd-jwt-vc"/>.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="minimal-spanning-example">
        <name>Minimal Spanning Example</name>
        <t>The following example contains claims needed to demonstrate redaction of key-value pairs and array elements.</t>
        <figure anchor="example-edn">
          <name>An EDN Example</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / kcwt /  13:  18([  / issuer SD-CWT /
      / CWT protected / << {
        / alg /    1  : -35, / ES384 /
        / kid /    4  : 'https://issuer.example/cose-key3',
        / typ /    16 : "application/sd-cwt",
        / sd_alg / 18 : -16  / SHA256 /
      } >>,
      / CWT unprotected / {
        / sd_claims / 17 : [ / these are the disclosures /
            <<[
                /salt/   h'bae611067bb823486797da1ebbb52f83',
                /value/  "ABCD-123456",
                /claim/  501   / inspector_license_number /
            ]>>,
            <<[
                /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
                /value/  1549560720   / inspected 7-Feb-2019 /
            ]>>,
            <<[
                /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
                /value/  "ca",
                /claim/  "region"   / region=California /
            ]>>,
        ]
      }
      / CWT payload / << {
        / iss / 1   : "https://issuer.example",
        / sub / 2   : "https://device.example",
        / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
        / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
        / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
        / cnf / 8   : {
          / cose key / 1 : {
            / kty /  1: 2,  / EC2   /
            / crv / -1: 1,  / P-256 /
            / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                          2022fd0d3024b5af18c7cc61ad527a2d',
            / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                          503f54293d87875d1e79ce4770194343'
          }
        },
        /most_recent_inspection_passed/ 500: true,
        /inspection_dates/ 502 : [
            / redacted inspection date 7-Feb-2019 /
            60(h'1b7fc8ecf4b1290712497d226c04b503
                 b4aa126c603c83b75d2679c3c613f3fd'),
            / redacted inspection date 4-Feb-2021 /
            60(h'64afccd3ad52da405329ad935de1fb36
                 814ec48fdfd79e3a108ef858e291e146'),
            1674004740,   / 2023-01-17T17:19:00 /
        ],
        / inspection_location / 503 : {
            "country" : "us",            / United States /
            / redacted_claim_keys / simple(59) : [
                / redacted region /
                h'0d4b8c6123f287a1698ff2db15764564
                  a976fb742606e8fd00e2140656ba0df3'
                / redacted postal_code /
                h'c0b7747f960fc2e201c4d47c64fee141
                  b78e3ab768ce941863dc8914e8f5815f'
          ]
        },
        / redacted_claim_keys / simple(59) : [
            / redacted inspector_license_number /
            h'af375dc3fba1d082448642c00be7b2f7
              bb05c9d8fb61cfc230ddfdfb4616a693'
        ]
      } >>,
      / CWT signature / h'9c9022e57adb33c853f30b6e8a590f40
                          6ca55849d7b8cd2a2519d3aec03e61b9
                          ef0ecd85fe96103f916f58d73cd2f775
                          4c390401945f0683b144d3504e500f94
                          d30433c3445417dc3c920f7a155548e9
                          1994601827d0a46ead66ff450485e85f'
    ]),
    / end of issuer SD-CWT /
    / typ /   16:  "application/kb+cwt",
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803'
  } >>,      / end of KBT payload /
  / KBT signature / h'd895729e72a3a7c801d5a20e9daf5103
                      27858aecbb39b8b2e4bc11cbbd625ea8
                      c60b78da31fc9762c46b7cd61094d047
                      5ff1f19a7496cde53ab11600a5859d10'
])   / end of kbt /
]]></sourcecode>
        </figure>
      </section>
      <section anchor="nesting">
        <name>Nested Example</name>
        <t>Instead of the structure from the previous example, imagine that the payload contains an inspection history log with the following structure. It could be blinded at multiple levels of the claims set hierarchy.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: True,          / inspection passed /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            501: "DCBA-101777", / inspector license /
            503: {
                1: "us",        / United States /
                2: "co",        / region=Colorado /
                3: "80302"      / postcode /
            }
        },
        {
            500: True,          / inspection passed /
            502: 1612560720,    / 2021-02-04T20:14:00 /
            501: "EFGH-789012", / inspector license /
            503: {
                1: "us",        / United States /
                2: "nv",        / region=Nevada /
                3: "89155"      / postcode /
            }
        },
        {
            500: True,          / inspection passed /
            502: 17183928,      / 2023-01-17T17:19:00 /
            501: "ABCD-123456", / inspector license /
            503: {
                1: "us",        / United States /
                2: "ca",        / region=California /
                3: "94188"      / postcode /
            }
        },
    ]
}
]]></sourcecode>
        <t>For example, looking at the nested disclosures below, the first disclosure unblinds the entire January 2023 inspection record.
However, when the record is disclosed, the inspector license number and inspection location are redacted inside the record.
The next disclosure unblinds the inspector_license_number, and the next
disclosure unblinds the inspection location record, but the region and postcode claims inside the location record are also individually blinded.
The fourth disclosure unblinds the inspection region.</t>
        <t>The fifth disclosure unblinds the earliest inspection record, and the last disclosure unblinds the inspector_license_number for that record.</t>
        <t>Verifiers start unblinding claims for which they have blinded claim hashes. They continue descending until there are no blinded claim hashes at any level of the hierarchy for which they have a corresponding disclosure.</t>
        <sourcecode type="cbor-diag"><![CDATA[
/ sd_claims / 17 : [ / these are the disclosures /
    <<[
        /salt/   h'2e9a833949c163ce845813c258a8f13c',
        /value/  {
                     500: true,
                     502: 17183928,
                     simple(59): [
                       h'3fc9748e00684e6442641e58ea965468
                         085024da253ed46b507ae56d4c204434',
                       h'a5124745703ea9023bf92a2028ba4547
                         b830ce9705161eaad56729cab8e1d807'
                     ]
                 }   / inspection 17-Jan-2023 /
    ]>>,
    <<[
        /salt/   h'bae611067bb823486797da1ebbb52f83',
        /value/  "ABCD-123456",
        /claim/  501   / inspector_license_number /
    ]>>,
    <<[
        /salt/   h'd5c7494eb16a8ff11fba507cbc7c816b',
        /value/  {
                     1: "us",
                     simple(59): [
                       h'3bf93977377099c66997303ddbce67b4
                         ca7ee95d2c8cf2b8b45f451362493460',
                       h'231e125d192de099e91bc59e2ae914f0
                         c891cbc3329b7fea70a3aa636c87a0a4'
                     ]
                 },
        /claim/  503   / San Francisco location /
    ]>>,
    <<[
        /salt/   h'52da9de5dc61b33775f9348b991d3d78',
        /value/  "ca",
        /claim/  2   / region=California /
    ]>>,
    <<[
        /salt/   h'9adcf14141f8607a44a130a4b341e162',
        /value/  {
                     500: true,
                     502: 1549560720,
                     simple(59): [
                       h'94d61c995d4fa25ad4d3cc4752f6ffaf
                         9e67f7f0b4836c8252a9ad23c20499f5',
                       h'4ff0ecad5f767923582febd69714f3f8
                         0cb00f58390a0825bc402febfa3548bf'
                     ]
                 }   / inspection 7-Feb-2019 /
    ]>>,
    <<[
        /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
        /value/  "DCBA-101777",
        /claim/  501   / inspector_license_number /
    ]>>,
    <<[
        /salt/   h'95b006410a1b6908997eed7d2a10f958',
        /value/  {
                     1: "us",
                     simple(59): [
                       h'2bc86e391ec9b663de195ae9680bf614
                         21666bc9073b1ebaf80c77be3adb379f',
                       h'e11c93b44fb150a73212edec5bde46d3
                         d7db23d0d43bfd6a465f82ee8cf72503'
                     ]
                 },
        /claim/  503   / Denver location /
    ]>>,
]
]]></sourcecode>
        <t>After applying the disclosures of the nested structure above, the disclosed Claims Set visible to the Verifier would look like the following:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: True,          / inspection passed /
            501: "DCBA-101777", / inspector license /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            503: {
                1: "us"         / United States /
            }
        },
        {
            500: True,          / inspection passed /
            501: "ABCD-123456", / inspector license /
            502: 17183928,      / 2023-01-17T17:19:00 /
            503: {
                1: "us",        / United States /
                2: "ca"         / region=California /
            }
        }
    ]
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="tbr-tag">
      <name>To Be Redacted Tag Definition</name>
      <t>In order to indicate specific claims that should be redacted in a Claim Set, this specification defines a new CBOR tag "To be redacted".
It can be used by a library to automatically convert a Claim Set with "To be redacted" tags into a) a new Claim Set containing Redacted Claim Keys and Redacted Claim Elements replacing the tagged claim keys or claim elements, and b) a set of corresponding Salted Disclosed Claims.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>This section describes the privacy considerations in accordance with the recommendations from <xref target="RFC6973"/>.
Many of the topics discussed in <xref target="RFC6973"/> apply to SD-CWT, but are not repeated here.</t>
      <section anchor="correlation">
        <name>Correlation</name>
        <t>Presentations of the same SD-CWT to multiple Verifiers can be correlated by matching on the signature component of the COSE_Sign1.
Signature based linkability can be mitigated by leveraging batch issuance of single-use tokens, at a credential management complexity cost.
Any Claim Value that pertains to a sufficiently small set of subjects can be used to facilitate tracking the subject.
For example, a high precision issuance time might match the issuance of only a few credentials for a given Issuer, and as such, any presentation of a credential issued at that time can be determined to be associated with the set of credentials issued at that time, for those subjects.</t>
      </section>
      <section anchor="determinism">
        <name>Determinism</name>
        <t>It is possible to encode additional information through the choices made during the serialization stage of producing an SD-CWT, for example, by adjusting the order of CBOR map keys, or by choosing different numeric encodings for certain data elements.
<xref target="I-D.draft-ietf-cbor-cde"/> provides guidance for constructing application profiles that constrain serialization optionality beyond CBOR Common Deterministic Encoding rulesets (CDE).
The construction of such profiles has a significant impact on the privacy properties of a credential type.</t>
      </section>
      <section anchor="audience">
        <name>Audience</name>
        <t>If the audience claim is present in both the SD-CWT and the SD-KBT, they are not required to be the same.
SD-CWTs with audience claims that do not correspond to the intended recipients <bcp14>MUST</bcp14> be rejected, to protect against accidental disclosure of sensitive data.</t>
      </section>
      <section anchor="credential-types">
        <name>Credential Types</name>
        <t>The privacy implications of selective disclosure vary significantly across different credential types due to their inherent characteristics and intended use cases.
The mandatory and optional-to-disclose data elements in an SD-CWT must be carefully chosen based on the specific privacy risks associated with each credential type.</t>
        <t>For example, a passport credential contains highly sensitive personal information where even partial disclosure can have significant privacy implications:
- Revealing citizenship status may expose an individual to discrimination
- Date of birth combined with any other attribute enables age-based profiling
- Biometric data, even if selectively disclosed, presents irreversible privacy risks
- The mere possession of a passport from certain countries can be sensitive information</t>
        <t>In contrast, a legal entity certificate has fundamentally different privacy considerations:
- The entity's legal name and registration number are often public information
- Business addresses and contact details may already be in public registries
- Authorized signatories' names might be required for legal validity
- The primary concern is often business confidentiality rather than personal privacy</t>
        <t>These differences mean that:
- Passport credentials should minimize mandatory disclosures and maximize holder control over optional elements
- Legal entity certificates might reasonably require disclosure of more fields to establish business legitimacy
- The granularity of selective disclosure should match the credential type's privacy sensitivity
- Default disclosure sets must be carefully calibrated to each credential's risk profile</t>
        <t>Several distinct credential types might be applicable to a given use case, each with unique privacy trade-offs.
Issuers <bcp14>MUST</bcp14> perform a comprehensive privacy and confidentiality assessment for each credential type they intend to issue, considering:
- The sensitivity spectrum of contained attributes
- Likely disclosure scenarios and their privacy impacts
- Correlation risks when attributes are combined
- Long-term privacy implications of disclosed information
- Cultural and jurisdictional privacy expectations</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Security considerations from COSE <xref target="RFC9052"/> and CWT <xref target="RFC8392"/> apply to this specification.</t>
      <section anchor="issuer-key-compromise">
        <name>Issuer Key Compromise</name>
        <t>Verification of an SD-CWT requires that the Verifier have access to a verification key (public key) associated with the Issuer.
Compromise of the Issuer's signing key would enable an attacker to forge credentials for any subject, potentially undermining the entire trust model of the credential system.
Beyond key compromise, attacks targeting the provisioning and binding between issuer names and their cryptographic key material pose significant risks.
An attacker who can manipulate these bindings could substitute their own keys for legitimate issuer keys, enabling credential forgery while appearing to be a trusted issuer.</t>
        <t>Certificate transparency, as described in <xref target="RFC9162"/>, or key transparency, as described in <xref target="I-D.draft-ietf-keytrans-protocol"/>, can help detect and prevent such attacks by:
- Enabling public observation of all issued certificates or key bindings
- Detecting unauthorized or fraudulent bindings between verification keys and Issuer identifiers
- Providing cryptographic proof of inclusion for legitimate keys
- Creating an append-only audit trail that makes key substitution attacks discoverable</t>
        <t>Verifiers <bcp14>SHOULD</bcp14> leverage transparency mechanisms where available to validate that the issuer's keys have not been compromised or fraudulently substituted.</t>
      </section>
      <section anchor="disclosure-coercion">
        <name>Disclosure Coercion and Over-identification</name>
        <t>The Security Considerations from <xref section="10.2." sectionFormat="of" target="I-D.draft-ietf-oauth-selective-disclosure-jwt"/> apply, with additional attention to disclosure coercion risks.
Holders face risks of being coerced into disclosing more claims than necessary. This threat warrants special attention because:</t>
        <ol spacing="normal" type="1"><li>
            <t>Verifier Trust: Holders <bcp14>MUST</bcp14> be able to verify that a Verifier will handle disclosed claims appropriately and only for stated purposes.</t>
          </li>
          <li>
            <t>Elevated Risk: Claims from trusted authorities (e.g., government-issued credentials) carry higher misuse potential due to their inherent legitimacy.</t>
          </li>
          <li>
            <t>Irreversibility: Disclosed claims cannot be withdrawn. This permanent exposure risk <bcp14>MUST</bcp14> be considered in any disclosure decision.</t>
          </li>
        </ol>
        <t>Mitigation Measures:
1. Verifiers <bcp14>SHOULD</bcp14> demonstrate eligibility to receive claims
2. Holders <bcp14>MUST</bcp14> conduct risk assessments when Verifier eligibility cannot be established
3. Trust lists maintained by trusted parties can help identify authorized Verifiers</t>
        <t>Without proper safeguards (such as Verifier trust lists), Holders remain vulnerable to over-identification and long-term misuse of their disclosed information.</t>
      </section>
      <section anchor="threat-model-development-guidance">
        <name>Threat Model Development Guidance</name>
        <t>This section provides guidance for developing threat models when applying SD-CWT to specific use cases.
It is NOT a threat model itself, but rather a framework to help implementers create appropriate threat models for their particular contexts.
Each use case will have unique security characteristics that <bcp14>MUST</bcp14> be analyzed before determining the applicability of SD-CWT-based credential types.</t>
        <t>The following non-exhaustive list of questions and considerations should guide the development of a use-case-specific threat model:</t>
        <ol spacing="normal" type="1"><li>
            <t>Has there been a t-closeness, k-anonymity, and l-diversity assessment (see <xref target="t-Closeness"/>) assuming compromise of the one or more Issuers, Verifiers or Holders, for all relevant credential types?</t>
          </li>
          <li>
            <t>Issuer questions:
            </t>
            <ol spacing="normal" type="a"><li>
                <t>How many Issuers exist for the credential type?</t>
              </li>
              <li>
                <t>Is the size of the set of Issuers growing or shrinking over time?</t>
              </li>
              <li>
                <t>For a given credential type, will subjects be able to hold instances of the same credential type from multiple Issuers, or just a single Issuer?</t>
              </li>
              <li>
                <t>Does the credential type require or offer the ability to disclose a globally unique identifier?</t>
              </li>
              <li>
                <t>Does the credential type require high precision time or other claims that have sufficient entropy such that they can serve as a unique fingerprint for a specific subject?</t>
              </li>
              <li>
                <t>Does the credential type contain Personally Identifiable Information (PII), or other sensitive information that might have value in a market?</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Holder questions:  </t>
            <ol spacing="normal" type="a"><li>
                <t>What steps has the Holder taken to improve their operation security regarding presenting credentials to verifiers?</t>
              </li>
              <li>
                <t>How can the Holder be convinced the Verifier that received presentations is legitimate?</t>
              </li>
              <li>
                <t>How can the Holder be convinced the Verifier will not share, sell, leak, or otherwise disclose the Holder's presentations or Issuer or Holder signed material?</t>
              </li>
              <li>
                <t>What steps has the Holder taken to understand and confirm the consequences resulting from their support for the aggregate-use of digital credential presentations?</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Verifier questions:
            </t>
            <ol spacing="normal" type="a"><li>
                <t>How many Verifiers exist for the credential type?</t>
              </li>
              <li>
                <t>Is the size of the set of Verifiers growing or shrinking over time?</t>
              </li>
              <li>
                <t>Are the Verifiers a superset, subset, or disjoint set of the Issuers or subjects?</t>
              </li>
              <li>
                <t>Are there any legally required reporting or disclosure requirements associated with the Verifiers?</t>
              </li>
              <li>
                <t>Is there reason to believe that a Verifier's historic data will be aggregated and analyzed?</t>
              </li>
              <li>
                <t>Assuming multiple Verifiers are simultaneously compromised, what knowledge regarding subjects can be inferred from analyzing the resulting dataset?</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Subject questions:
            </t>
            <ol spacing="normal" type="a"><li>
                <t>How many subjects exist for the credential type?</t>
              </li>
              <li>
                <t>Is the size of the set of subjects growing or shrinking over time?</t>
              </li>
              <li>
                <t>Does the credential type require specific hardware, or algorithms that limit the set of possible subjects to owners of specific devices or subscribers to specific services?</t>
              </li>
            </ol>
          </li>
        </ol>
      </section>
      <section anchor="random-numbers">
        <name>Random Numbers</name>
        <t>Each salt used to protect disclosed claims <bcp14>MUST</bcp14> be generated independently from the salts of other claims. The salts <bcp14>MUST</bcp14> be generated from a source of entropy that is acceptable to the Issuer.
Poor choice of salts can lead to brute force attacks that can reveal redacted claims.</t>
      </section>
      <section anchor="binding-the-kbt-and-the-cwt">
        <name>Binding the KBT and the CWT</name>
        <t>The "iss" claim in the SD-CWT is self-asserted by the Issuer.</t>
        <t>Because confirmation is mandatory, the subject claim of an SD-CWT, when present, is always related directly to the confirmation claim.
There might be many subject claims and many confirmation keys that identify the same entity or that are controlled by the same entity, while the identifiers and keys are distinct values.
Reusing an identifier or key enables correlation, but <bcp14>MUST</bcp14> be evaluated in terms of the confidential and privacy constraints associated with the credential type.
Conceptually, the Holder is both the Issuer and the subject of the SD-KBT, even if the "iss" or "sub" claims are not present.
If they are present, they are self-asserted by the Holder.
All three are represented by the confirmation (public) key in the SD-CWT.</t>
        <t>As with any self-assigned identifiers, Verifiers need to take care to verify that the SD-KBT "iss" and "sub" claims match the subject in the SD-KBT, and are a valid representation of the Holder and correspond to the Holder's confirmation key.
Extra care should be taken in case the SD-CWT subject claim is redacted.
Likewise, Holders and Verifiers <bcp14>MUST</bcp14> verify that the "iss" claim of the SD-CWT corresponds to the Issuer and the key described in the protected header of the SD-CWT.</t>
      </section>
      <section anchor="covert-channels">
        <name>Covert Channels</name>
        <t>Any data element that is supplied by the Issuer, and that appears random to the Holder might be used to produce a covert channel between the Issuer and the Verifier.
The ordering of claims, and precision of timestamps can also be used to produce a covert channel.
This is more of a concern for SD-CWT than typical CWTs, because the Holder is usually considered to be aware of the Issuer claims they are disclosing to a Verifier.</t>
      </section>
      <section anchor="nested-disclosure-ordering">
        <name>Nested Disclosure Ordering</name>
        <t>The Holder has flexibility in determining the order of nested disclosures when making presentations.
The order can be sorted, randomized, or optimized for performance based on the Holder's needs.
This ordering choice has no security impact on encrypted disclosures.
However, the order can affect the runtime of the verification process.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="cose-header-parameters">
        <name>COSE Header Parameters</name>
        <t>IANA is requested to add the following entries to the <eref target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">IANA "COSE Header Parameters" registry</eref>:</t>
        <section anchor="sdclaims">
          <name>sd_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_claims</t>
            </li>
            <li>
              <t>Label: TBD1 (requested assignment 17)</t>
            </li>
            <li>
              <t>Value Type: bstr</t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: <xref target="sd-cwt-preparation"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdalg">
          <name>sd_alg</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_alg</t>
            </li>
            <li>
              <t>Label: TBD2 (requested assignment 18)</t>
            </li>
            <li>
              <t>Value Type: int</t>
            </li>
            <li>
              <t>Value Registry: IANA COSE Algorithms</t>
            </li>
            <li>
              <t>Description: The hash algorithm used for redacting disclosures.</t>
            </li>
            <li>
              <t>Reference: <xref target="sd-cwt-issuance"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdaeadencryptedclaims">
          <name>sd_aead_encrypted_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_aead_encrypted_claims</t>
            </li>
            <li>
              <t>Label: TBD6 (requested assignment 19)</t>
            </li>
            <li>
              <t>Value Type: bstr</t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of AEAD encrypted selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: <xref target="aead"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="sdaead">
          <name>sd_aead</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_aead</t>
            </li>
            <li>
              <t>Label: TBD7 (requested assignment 20)</t>
            </li>
            <li>
              <t>Value Type: int</t>
            </li>
            <li>
              <t>Value Registry: IANA AEAD Algorithm number</t>
            </li>
            <li>
              <t>Description: The AEAD algorithm used for encrypting disclosures.</t>
            </li>
            <li>
              <t>Reference: <xref target="aead"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="simple59">
        <name>CBOR Simple Values</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/cbor-simple-values#simple">IANA "CBOR Simple Values" registry</eref>:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD4 (requested assignment 59)</t>
          </li>
          <li>
            <t>Semantics: This value as a map key indicates that the Claim Value is an array of redacted Claim Keys at the same level as the map key.</t>
          </li>
          <li>
            <t>Specification Document(s): <xref target="blinded-claims"/> of this specification</t>
          </li>
        </ul>
      </section>
      <section anchor="cbor-tags">
        <name>CBOR Tags</name>
        <t>IANA is requested to add the following entries to the <eref target="https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml#tags">IANA "CBOR Tags" registry</eref>:</t>
        <section anchor="to-be-redacted-tag">
          <name>To Be Redacted Tag</name>
          <t>The array claim element, or map key and value inside the "To be redacted" tag is intended to be redacted using selective disclosure.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: TBD3 (requested assignment 58)</t>
            </li>
            <li>
              <t>Data Item: (any)</t>
            </li>
            <li>
              <t>Semantics: An array claim element, or map key and value intended to be redacted.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="tbr-tag"/> of this specification</t>
            </li>
          </ul>
        </section>
        <section anchor="redacted-claim-element-tag">
          <name>Redacted Claim Element Tag</name>
          <t>The byte string inside the tag is a selective disclosure redacted claim element of an array.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: TBD5 (requested assignment 60)</t>
            </li>
            <li>
              <t>Data Item: byte string</t>
            </li>
            <li>
              <t>Semantics: A selective disclosure redacted (array) claim element.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="blinded-claims"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="cbor-web-token-cwt-claims">
        <name>CBOR Web Token (CWT) Claims</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/cwt/cwt.xhtml#claims-registry">IANA "CWT Claims" registry</eref>:</t>
        <section anchor="vct">
          <name>vct</name>
          <t>The following completed registration template per RFC8392 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Description: Verifiable credential type</t>
            </li>
            <li>
              <t>JWT Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Key: TBD6 (request assignment 11)</t>
            </li>
            <li>
              <t>Claim Value Type(s): bstr</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="cred-types"/> of this specification</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>IANA is requested to add the following entries to the IANA "Media Types" registry (https://www.iana.org/assignments/media-types/media-types.xhtml#application):</t>
        <section anchor="applicationsd-cwt">
          <name>application/sd-cwt</name>
          <t>The following completed registration template is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Type name: application</t>
            </li>
            <li>
              <t>Subtype name: sd-cwt</t>
            </li>
            <li>
              <t>Required parameters: n/a</t>
            </li>
            <li>
              <t>Optional parameters: n/a</t>
            </li>
            <li>
              <t>Encoding considerations: binary</t>
            </li>
            <li>
              <t>Security considerations: <xref target="security"/> of this specification and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: <xref target="sd-cwt-definition"/> of this specification</t>
            </li>
            <li>
              <t>Applications that use this media type: TBD</t>
            </li>
            <li>
              <t>Fragment identifier considerations: n/a</t>
            </li>
            <li>
              <t>Additional information:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Magic number(s): n/a</t>
                </li>
                <li>
                  <t>File extension(s): n/a</t>
                </li>
                <li>
                  <t>Macintosh file type code(s): n/a</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Person &amp; email address to contact for further information:
  SPICE WG mailing list (spice@ietf.org) or
  IETF Security Area (saag@ietf.org)</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: See Author's Addresses section</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Provisional registration?  No</t>
            </li>
          </ul>
        </section>
        <section anchor="applicationkbcwt">
          <name>application/kb+cwt</name>
          <t>The following completed registration template is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Type name: application</t>
            </li>
            <li>
              <t>Subtype name: kb+cwt</t>
            </li>
            <li>
              <t>Required parameters: n/a</t>
            </li>
            <li>
              <t>Optional parameters: n/a</t>
            </li>
            <li>
              <t>Encoding considerations: binary</t>
            </li>
            <li>
              <t>Security considerations: <xref target="security"/> of this specification and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: <xref target="kbt"/> of this specification</t>
            </li>
            <li>
              <t>Applications that use this media type: TBD</t>
            </li>
            <li>
              <t>Fragment identifier considerations: n/a</t>
            </li>
            <li>
              <t>Additional information:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Magic number(s): n/a</t>
                </li>
                <li>
                  <t>File extension(s): n/a</t>
                </li>
                <li>
                  <t>Macintosh file type code(s): n/a</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Person &amp; email address to contact for further information:
  SPICE WG mailing list (spice@ietf.org) or
  IETF Security Area (saag@ietf.org)</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: See Author's Addresses section</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Provisional registration?  No</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="structured-syntax-suffix">
        <name>Structured Syntax Suffix</name>
        <t>IANA is requested to add the following entry to the <eref target="https://www.iana.org/assignments/media-type-structured-suffix/media-type-structured-suffix.xhtml#structured-syntax-suffix">IANA "Structured Syntax Suffix" registry</eref>:</t>
        <ul spacing="normal">
          <li>
            <t>Name: SD-CWT</t>
          </li>
          <li>
            <t>+suffix: +sd-cwt</t>
          </li>
          <li>
            <t>References: <xref target="sd-cwt-definition"/> of this specification</t>
          </li>
          <li>
            <t>Encoding considerations: binary</t>
          </li>
          <li>
            <t>Interoperability considerations: n/a</t>
          </li>
          <li>
            <t>Fragment identifier considerations: n/a</t>
          </li>
          <li>
            <t>Security considerations: <xref target="security"/> of this specification</t>
          </li>
          <li>
            <t>Contact: See Author's Addresses section</t>
          </li>
          <li>
            <t>Author/Change controller: IETF</t>
          </li>
        </ul>
      </section>
      <section anchor="content-formats">
        <name>Content-Formats</name>
        <t>IANA is requested to register the following entries in the <eref target="https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats">IANA "CoAP Content-Formats" registry</eref>:</t>
        <table align="left">
          <name>New CoAP Content Formats</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/sd-cwt</td>
              <td align="left">-</td>
              <td align="left">TBD11</td>
              <td align="left">
                <xref target="sd-cwt-definition"/> of this specification</td>
            </tr>
            <tr>
              <td align="left">application/kb+cwt</td>
              <td align="left">-</td>
              <td align="left">TBD12</td>
              <td align="left">
                <xref target="kbt"/> of this specification</td>
            </tr>
          </tbody>
        </table>
        <t>If possible, TBD11 and TBD12 should be assigned in the 256..9999 range.</t>
      </section>
      <section anchor="vct-registry">
        <name>Verifiable Credential Type Identifiers</name>
        <t>This specification establishes the Verifiable Credential Type Identifiers registry, under the <eref target="https://www.iana.org/assignments/cwt/cwt.xhtml">IANA "CBOR Web Token (CWT) Claims" group registry heading</eref>.
It registers identifiers for the type of the SD-CWT Claims Set.</t>
        <t>It enables short integers in the range 0-65535 to be used as <tt>vct</tt> Claim Values, similarly to how CoAP Content-Formats (<xref section="12.3" sectionFormat="of" target="RFC7252"/>) enable short integers to be used as <tt>typ</tt> header parameter <xref target="RFC9596"/> values.</t>
        <t>The registration procedures for numbers in specific ranges are as described below:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedure </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-9999</td>
              <td align="left">Specification Required</td>
            </tr>
            <tr>
              <td align="left">10000-64999</td>
              <td align="left">First Come First Served</td>
            </tr>
            <tr>
              <td align="left">65000-65535</td>
              <td align="left">Experimental Use (no operational use)</td>
            </tr>
          </tbody>
        </table>
        <t>Values in the Specification Required <xref target="RFC8126"/> range are registered
after a two-week review period on the spice-ext-review@ietf.org
mailing list, on the advice of one or more Designated Experts.
To allow for the allocation of values prior to publication
of the final version of a specification,
the Designated Experts may approve registration once they are satisfied
that the specification will be completed and published.
However, if the specification is not completed and published
in a timely manner, as determined by the Designated Experts,
the Designated Experts may request that IANA withdraw the registration.</t>
        <t>Registration requests sent to the mailing list for review should use
an appropriate subject
(e.g., "Request to register VCT value").</t>
        <t>Within the review period, the Designated Experts will either approve or deny
the registration request, communicating this decision to the review list and IANA.
Denials should include an explanation and, if applicable,
suggestions as to how to make the request successful.
The IANA escalation process is followed when the Designated Experts
are not responsive within 14 days.</t>
        <t>Criteria that should be applied by the Designated Experts includes
determining whether the proposed registration duplicates existing functionality,
determining whether it is likely to be of general applicability
or whether it is useful only for a single application,
and whether the registration makes sense.</t>
        <t>IANA must only accept registry updates from the Designated Experts and should direct
all requests for registration in the Specification Required range
to the review mailing list.</t>
        <t>It is suggested that multiple Designated Experts be appointed who are able to represent the perspectives of different applications using this specification, in order to enable broadly-informed review of registration decisions.
In cases where a registration decision could be perceived as creating a conflict of interest for a particular Expert, that Expert should defer to the judgment of the other Experts.</t>
        <section anchor="registration-template">
          <name>Registration Template</name>
          <dl>
            <dt>Verifiable Credential Type Identifier String:</dt>
            <dd>
              <t>String identifier for use as a JWT <tt>vct</tt> or CWT <tt>vct</tt> Claim Value.  It is a StringOrURI value.</t>
            </dd>
            <dt>Verifiable Credential Type Identifier Number:</dt>
            <dd>
              <t>Integer in the range 0-64999 for use as a CWT <tt>vct</tt> Claim Value.  (Integers in the range 65000-65535 are not to be registered.)</t>
            </dd>
            <dt>Description:</dt>
            <dd>
              <t>Brief description of the verifiable credential type</t>
            </dd>
            <dt>Change Controller:</dt>
            <dd>
              <t>For IETF stream RFCs, use "IETF".
For others, give the name of the responsible party.
Other details (e.g., postal address, e-mail address, home page URI) may also be included.</t>
            </dd>
            <dt>Specification Document(s):</dt>
            <dd>
              <t>Reference to the document or documents that specify the values to be registered, preferably including URLs that can be used to retrieve the documents.
An indication of the relevant sections may also be included, but is not required.</t>
            </dd>
          </dl>
        </section>
        <section anchor="initial-registry-contents">
          <name>Initial Registry Contents</name>
          <t>No initial values are provided for the registry.</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) 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. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <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="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="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="I-D.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="7" month="July" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

   Replacing EDN's previous informal descriptions, it updates RFC 8949,
   obsoleting its Section 8, and RFC 8610, obsoleting its Appendix G.

   It also specifies and uses registry-based extension points, using one
   to support text representations of epoch-based dates/times and of IP
   addresses and prefixes.


   // (This cref will be removed by the RFC editor:) The present -18
   // corrects a few omissions from -17; it is not intended to make
   // technical changes from -17.  It is intended for use as an input
   // document for the CBOR WG meeting at IETF 123.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-18"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9596">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) "typ" (type) Header Parameter</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This specification adds the equivalent of the JSON Object Signing and Encryption (JOSE) "typ" (type) header parameter to CBOR Object Signing and Encryption (COSE). This enables the benefits of explicit typing (as defined in RFC 8725, "JSON Web Token Best Current Practices") to be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9596"/>
          <seriesInfo name="DOI" value="10.17487/RFC9596"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>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).</t>
              <t>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.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-selective-disclosure-jwt">
          <front>
            <title>Selective Disclosure for JWTs (SD-JWT)</title>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
              <organization>Keio University</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="29" month="May" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON data structure used as the payload
   of a JSON Web Signature (JWS).  The primary use case is the selective
   disclosure of JSON Web Token (JWT) claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-22"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-sd-jwt-vc">
          <front>
            <title>SD-JWT-based Verifiable Credentials (SD-JWT VC)</title>
            <author fullname="Oliver Terbu" initials="O." surname="Terbu">
              <organization>MATTR</organization>
            </author>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete Inc.</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This specification describes data formats as well as validation and
   processing rules to express Verifiable Credentials with JSON payloads
   with and without selective disclosure based on the SD-JWT
   [I-D.ietf-oauth-selective-disclosure-jwt] format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-sd-jwt-vc-10"/>
        </reference>
        <reference anchor="I-D.draft-ietf-cbor-cde">
          <front>
            <title>CBOR Common Deterministic Encoding (CDE)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines "Deterministically Encoded CBOR" in
   its Section 4.2, providing some flexibility for application specific
   decisions.  To facilitate Deterministic Encoding to be offered as a
   selectable feature of generic encoders, the present document
   documents the Best Current Practice for CBOR Common Deterministic
   Encoding (CDE), which can be shared by a large set of applications
   with potentially diverging detailed requirements.  It also defines
   the term "Basic Serialization", which stops short of the potentially
   more onerous requirements that make CDE fully deterministic, while
   employing most of its reductions of the variability needing to be
   handled by decoders.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cde-12"/>
        </reference>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="I-D.draft-ietf-keytrans-protocol">
          <front>
            <title>Key Transparency Protocol</title>
            <author fullname="Brendan McMillion" initials="B." surname="McMillion">
         </author>
            <author fullname="Felix Linker" initials="F." surname="Linker">
         </author>
            <date day="6" month="July" year="2025"/>
            <abstract>
              <t>   While there are several established protocols for end-to-end
   encryption, relatively little attention has been given to securely
   distributing the end-user public keys for such encryption.  As a
   result, these protocols are often still vulnerable to eavesdropping
   by active attackers.  Key Transparency is a protocol for distributing
   sensitive cryptographic information, such as public keys, in a way
   that reliably either prevents interference or detects that it
   occurred in a timely manner.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-keytrans-protocol-02"/>
        </reference>
        <reference anchor="t-Closeness" target="https://ieeexplore.ieee.org/document/4221659">
          <front>
            <title>t-Closeness: Privacy Beyond k-Anonymity and l-Diversity</title>
            <author>
              <organization/>
            </author>
            <date year="2007" month="June" day="04"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-httpbis-unprompted-auth">
          <front>
            <title>The Concealed HTTP Authentication Scheme</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="David Oliver" initials="D." surname="Oliver">
              <organization>Guardian Project</organization>
            </author>
            <author fullname="Jonathan Hoyland" initials="J." surname="Hoyland">
              <organization>Cloudflare Inc.</organization>
            </author>
            <date day="19" month="September" year="2024"/>
            <abstract>
              <t>   Most HTTP authentication schemes are probeable in the sense that it
   is possible for an unauthenticated client to probe whether an origin
   serves resources that require authentication.  It is possible for an
   origin to hide the fact that it requires authentication by not
   generating Unauthorized status codes, however that only works with
   non-cryptographic authentication schemes: cryptographic signatures
   require a fresh nonce to be signed.  Prior to this document, there
   was no existing way for the origin to share such a nonce without
   exposing the fact that it serves resources that require
   authentication.  This document defines a new non-probeable
   cryptographic authentication scheme.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-unprompted-auth-12"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="D. Thaler" initials="D." surname="Thaler"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="W. Pan" initials="W." surname="Pan"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9334"/>
          <seriesInfo name="DOI" value="10.17487/RFC9334"/>
        </reference>
      </references>
    </references>
    <?line 1602?>

<section anchor="cddl">
      <name>Complete CDDL Schema</name>
      <figure anchor="cddl-schema">
        <name>A complete CDDL description of SD-CWT</name>
        <sourcecode type="cddl"><![CDATA[
sd-cwt-types = sd-cwt-issued / kbt-cwt

sd-cwt-issued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor sd-payload,
   signature: bstr
])

kbt-cwt = #6.18([
   protected: bstr .cbor kbt-protected,
   kbt-unprotected,
   payload: bstr .cbor kbt-payload,
   signature: bstr
])

sd-protected = {
   &(typ: 16) ^ => "application/sd-cwt" / TBD11,
   &(alg: 1) ^ => int,
   &(sd_alg: TBD2) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: TBD7) ^ => uint .size 2
   * key => any
}

kbt-protected = {
   &(typ: 16) ^ => "application/kb+cwt" / TBD12,
   &(alg: 1) ^ => int,
   &(kcwt: 13) ^ => sd-cwt-issued,
   * key => any
}

sd-unprotected = {
   ? &(sd_claims: TBD1) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: TBD6) ^ => aead-encrypted-array,
   * key => any
}

kbt-unprotected = {
   * key => any
}

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://device.example"
    ? &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => int,  ; 1883000000
    ? &(nbf: 5) ^ => int,  ; 1683000000
    ? &(iat: 6) ^ => int,  ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => { * key => any }, ; key confirmation
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? &(redacted_claim_keys: REDACTED_KEYS) ^ => [ * bstr ],
    * key => any
}

kbt-payload = {
      &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => int,  ; 1883000000
    ? &(nbf: 5) ^ => int,  ; 1683000000
      &(iat: 6) ^ => int,  ; 1683000000
    ? &(cnonce: 39) ^ => bstr,
    * key => any
}

salted-array = [ +bstr .cbor salted ]
salted = salted-claim / salted-element / decoy
salted-claim = [
  bstr .size 16,     ; 128-bit salt
  any,               ; claim value
  (int / text)       ; claim name
]
salted-element = [
  bstr .size 16,     ; 128-bit salt
  any                ; claim value
]
decoy = [
  bstr .size 16      ; 128-bit salt
]
;bstr-encoded-salted = bstr .cbor salted

aead-encrypted-array = [ +aead-encrypted ]
aead-encrypted = [
  bstr .size 16,     ; 128-bit nonce
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr               ; the corresponding authentication tag
]

header_map = {
    * key => any
}
empty_or_serialized_map = bstr .cbor header_map / bstr .size 0

key = int / text
TBD1 = 17
TBD2 = 18
TBD6 = 19
TBD7 = 20

;TBD3 = 58;  CBOR tag wrapping to-be-redacted keys or elements

TBD11 = 298
TBD12 = 299

; REDACTED_KEYS is to be used in CDDL payloads that are meant to
; convey that a map key is redacted.
REDACTED_KEYS = #7.59  ; #7.<TBD4>
;TBD4 = 59          ; for CBOR simple value 59

; redacted_claim_element is to be used in CDDL payloads that contain
; array elements that are meant to be redacted.
redacted_claim_element = #6.60( bstr .size 16 )  ; #6.<TBD5>(bstr)
;TBD5 = 60; CBOR tag wrapping redacted_claim_element

]]></sourcecode>
      </figure>
    </section>
    <section anchor="comparison-to-sd-jwt">
      <name>Comparison to SD-JWT</name>
      <t>SD-CWT is modeled after SD-JWT, with adjustments to align with conventions in CBOR, COSE, and CWT.</t>
      <section anchor="media-types-1">
        <name>Media Types</name>
        <t>The COSE equivalent of <tt>application/sd-jwt</tt> is <tt>application/sd-cwt</tt>.</t>
        <t>The COSE equivalent of <tt>application/kb+jwt</tt> is <tt>application/kb+cwt</tt>.</t>
        <t>The COSE equivalent of the <tt>+sd-jwt</tt> structured suffix is <tt>+sd-cwt</tt>.</t>
      </section>
      <section anchor="redaction-claims">
        <name>Redaction Claims</name>
        <t>The COSE equivalent of <tt>_sd</tt> is a CBOR Simple Value (requested assignment 59). The following value is an array of the redacted Claim Keys.</t>
        <t>The COSE equivalent of <tt>...</tt> is a CBOR tag (requested assignment 60) of the digested salted claim.</t>
        <t>In SD-CWT, the order of the fields in a disclosure is salt, value, key.
In SD-JWT the order of fields in a disclosure is salt, key, value.
This choice ensures that the second element in the CBOR array is always the value, which makes parsing faster and more efficient in strongly-typed programming languages.</t>
      </section>
      <section anchor="issuance">
        <name>Issuance</name>
        <t>The issuance process for SD-CWT is similar to SD-JWT, with the exception that a confirmation claim is <bcp14>REQUIRED</bcp14>.</t>
      </section>
      <section anchor="presentation">
        <name>Presentation</name>
        <t>The presentation process for SD-CWT is similar to SD-JWT, except that a Key Binding Token is <bcp14>REQUIRED</bcp14>.
The Key Binding Token then includes the issued SD-CWT, including the Holder-selected disclosures.
Because the entire SD-CWT is included as a claim in the SD-KBT, the disclosures are covered by the Holder's signature in the SD-KBT, but not by the Issuer's signature in the SD-CWT.</t>
      </section>
      <section anchor="validation">
        <name>Validation</name>
        <t>The validation process for SD-CWT is similar to SD-JWT, however, JSON Objects are replaced with CBOR Maps, which can contain integer keys and CBOR Tags.</t>
      </section>
    </section>
    <section anchor="keys-used-in-the-examples">
      <name>Keys Used in the Examples</name>
      <section anchor="subject-holder">
        <name>Subject / Holder</name>
        <t>Holder COSE key pair in EDN format</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /alg/  3 : -9, /ESP256/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343',
  /d/   -4 : h'5759a86e59bb3b002dde467da4b52f3d
               06e6c2cd439456cf0485b9b864294ce5'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(4)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   01                                   # unsigned(1)
   21                                   # negative(1)
   58 20                                # bytes(32)
      8554EB275DCD6FBD1C7AC641AA2C90D92022FD0D3024B5AF18C7CC61AD527A2D
   22                                   # negative(2)
   58 20                                # bytes(32)
      4DC7AE2C677E96D0CC82597655CE92D5503F54293D87875D1E79CE4770194343
]]></sourcecode>
        <t>The COSE thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
8343d73cdfcb81f2c7cd11a5f317be8eb34e4807ec8c9ceb282495cffdf037e0
]]></artwork>
        <t>Holder key pair in JWK format</t>
        <artwork><![CDATA[
{
  "kty": "EC",
  "alg": "ES256",
  "kid": "WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M",
  "crv": "P-256",
  "x": "hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1Sei0",
  "y": "TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M",
  "d": "V1moblm7OwAt3kZ9pLUvPQbmws1DlFbPBIW5uGQpTOU"
}
]]></artwork>
        <t>Input to Holder public JWK thumbprint (ignore line breaks)</t>
        <artwork><![CDATA[
{"crv":"P-256","kty":"EC","x":"hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1S
ei0","y":"TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M"}
]]></artwork>
        <t>SHA-256 of the Holder public JWK input string (in hex)</t>
        <artwork><![CDATA[
59143645b6394582422317c340bf5a825f5f15209856ee17a1ca9beb37ab7353
]]></artwork>
        <t>Holder public JWK thumbprint</t>
        <artwork><![CDATA[
WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M
]]></artwork>
        <t>Holder public key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhVTrJ13Nb70cesZBqiyQ2SAi/Q0w
JLWvGMfMYa1Sei1Nx64sZ36W0MyCWXZVzpLVUD9UKT2Hh10eec5HcBlDQw==
-----END PUBLIC KEY-----
]]></artwork>
        <t>Holder private key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgV1moblm7OwAt3kZ9
pLUvPQbmws1DlFbPBIW5uGQpTOWhRANCAASFVOsnXc1vvRx6xkGqLJDZICL9DTAk
ta8Yx8xhrVJ6LU3HrixnfpbQzIJZdlXOktVQP1QpPYeHXR55zkdwGUND
-----END PRIVATE KEY-----
]]></artwork>
      </section>
      <section anchor="issuer">
        <name>Issuer</name>
        <t>Issuer COSE key pair in Extended Diagnostic Notation (EDN)</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /kid/  2 : "https://issuer.example/cwk3.cbor",
  /alg/  3 : -51, /ESP384/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554',
  /d/   -4 : h'71c54d2221937ea612db1221f0d3ddf771c9381c4e3be41d
               5aa0a89d685f09cfef74c4bbf104783fd57e87ab227d074c'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(5)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   02                                   # unsigned(2)
   21                                   # negative(1)
   58 30                                # bytes(48)
      C31798B0C7885FA3528FBF877E5B4C3A6DC67A5A5DC6B307
      B728C3725926F2ABE5FB4964CD91E3948A5493F6EBB6CBBF
   22                                   # negative(2)
   58 30                                # bytes(48)
      8F6C7EC761691CAD374C4DAA9387453F18058ECE58EB0A8E
      84A055A31FB7F9214B27509522C159E764F8711E11609554
]]></sourcecode>
        <t>The COSE thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
554550a611c9807b3462cfec4a690a1119bc43b571da1219782133f5fd6dbcb0
]]></artwork>
        <t>Issuer key pair in JWK format</t>
        <artwork><![CDATA[
{
"kty": "EC",
"alg": "ES384",
"kid": "https://issuer.example/cwk3.cbor",
"crv": "P-384",
"x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm8qvl-0lkzZHjlIpUk_brtsu_",
"y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3-SFLJ1CVIsFZ52T4cR4RYJVU",
"d":"ccVNIiGTfqYS2xIh8NPd93HJOBxOO-QdWqConWhfCc_vdMS78QR4P9V-h6sifQdM"
}
]]></artwork>
        <t>Input to Issuer JWK thumbprint (ignore line breaks)</t>
        <artwork><![CDATA[
{"crv":"P-384","kty":"EC","x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm
8qvl-0lkzZHjlIpUk_brtsu_","y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3
-SFLJ1CVIsFZ52T4cR4RYJVU"}
]]></artwork>
        <t>SHA-256 of the Issuer JWK input string (in hex)</t>
        <artwork><![CDATA[
18d4ddb7065d945357e3972dee76af4eddc7c285fb42efcfa900c6a4f8437850
]]></artwork>
        <t>Issuer JWK thumbprint</t>
        <artwork><![CDATA[
GNTdtwZdlFNX45ct7navTt3HwoX7Qu_PqQDGpPhDeFA
]]></artwork>
        <t>Issuer public key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwxeYsMeIX6NSj7+HfltMOm3GelpdxrMH
tyjDclkm8qvl+0lkzZHjlIpUk/brtsu/j2x+x2FpHK03TE2qk4dFPxgFjs5Y6wqO
hKBVox+3+SFLJ1CVIsFZ52T4cR4RYJVU
-----END PUBLIC KEY-----
]]></artwork>
        <t>Issuer private key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBxxU0iIZN+phLbEiHw
0933cck4HE475B1aoKidaF8Jz+90xLvxBHg/1X6HqyJ9B0yhZANiAATDF5iwx4hf
o1KPv4d+W0w6bcZ6Wl3Gswe3KMNyWSbyq+X7SWTNkeOUilST9uu2y7+PbH7HYWkc
rTdMTaqTh0U/GAWOzljrCo6EoFWjH7f5IUsnUJUiwVnnZPhxHhFglVQ=
-----END PRIVATE KEY-----
]]></artwork>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to the 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 made 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: <eref target="https://github.com/transmute-industries/sd-cwt">github.com/transmute-industries/sd-cwt</eref></t>
        <t>Description: An open-source implementation of this specification.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version ('main') implements functionality similar to that described in this specification, and will be revised, with breaking changes to support the generation of example data to support this specification.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as a proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie.steele@tradeverifyd.com)</t>
      </section>
      <section anchor="rust-prototype">
        <name>Rust Prototype</name>
        <t>Organization: SimpleLogin</t>
        <t>Name: <eref target="https://github.com/beltram/esdicawt">github.com/beltram/esdicawt</eref></t>
        <t>Description: An open-source Rust implementation of this specification in Rust.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version is close to the spec with the exception of <tt>redacted_claim_keys</tt> using a CBOR SimpleValue as label instead of a tagged key. Not all of the verifications have been implemented yet.</t>
        <t>License: Apache-2.0</t>
        <t>Implementation Experience: No interop testing has been done yet. The code works as a proof of concept, but is not yet production ready.</t>
        <t>Contact: Beltram Maldant (beltram.ietf.spice@pm.me)</t>
      </section>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t>Note: RFC Editor, please remove this entire section on publication.</t>
      <section anchor="draft-ietf-spice-sd-cwt-04">
        <name>draft-ietf-spice-sd-cwt-04</name>
        <ul spacing="normal">
          <li>
            <t>Place value before claim name in disclosures</t>
          </li>
          <li>
            <t>Use CBOR simple value 59 for the redacted_key_claims</t>
          </li>
          <li>
            <t>Greatly improved text around AEAD encrypted disclosures</t>
          </li>
          <li>
            <t>Applied clarifications and corrections suggested by Mike Jones.</t>
          </li>
          <li>
            <t>Do not update CWT <xref target="RFC8392"/>.</t>
          </li>
          <li>
            <t>Use <tt>application/sd-cwt</tt> media type and define <tt>+sd-cwt</tt> structured suffix.</t>
          </li>
          <li>
            <t>Made SHA-256 be the default <tt>sd_alg</tt> value.</t>
          </li>
          <li>
            <t>Created Verifiable Credential Type Identifiers registry.</t>
          </li>
          <li>
            <t>Corrected places where Claim Name was used when what was meant was Claim Key.</t>
          </li>
          <li>
            <t>Defined the To Be Redacted CBOR tag</t>
          </li>
          <li>
            <t>In the SD-KBT, <tt>iss</tt> and <tt>sub</tt> are now forbidden</t>
          </li>
          <li>
            <t>Clarified text about <tt>aud</tt></t>
          </li>
          <li>
            <t>Described Trust Lists</t>
          </li>
          <li>
            <t>EDN Examples are now in deterministic order</t>
          </li>
          <li>
            <t>Expressed some validation steps as a list</t>
          </li>
          <li>
            <t>Clarified handling of nested claims</t>
          </li>
          <li>
            <t>Fixed the handling of the to be registered items in the CDDL; made CDDL self consistent</t>
          </li>
          <li>
            <t>Fixed some references</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-03">
        <name>draft-ietf-spice-sd-cwt-03</name>
        <ul spacing="normal">
          <li>
            <t>remove bstr encoding from sd_claims array (but not the individual disclosures)</t>
          </li>
          <li>
            <t>clarify which claims are optional/mandatory</t>
          </li>
          <li>
            <t>correct that an SD-CWT may have zero redacted claims</t>
          </li>
          <li>
            <t>improve the walkthrough of computing a disclosure</t>
          </li>
          <li>
            <t>clarify that duplicate map keys are not allowed, and how tagged keys are represented.</t>
          </li>
          <li>
            <t>added security considerations section (#42) and text about privacy and linkability risks (#43)</t>
          </li>
          <li>
            <t>register SD-CWT and SD-KBT as content formats in CoAP registry (#39)</t>
          </li>
          <li>
            <t>updated media types registrations to have more useful contacts (#44)</t>
          </li>
          <li>
            <t>build most of the values (signatures/salts/hashes/dates) in the examples automatically using a script that implements SD-CWT</t>
          </li>
          <li>
            <t>regenerate all examples with correct signatures</t>
          </li>
          <li>
            <t>add nested example</t>
          </li>
          <li>
            <t>add optional encrypted disclosures</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-02">
        <name>draft-ietf-spice-sd-cwt-02</name>
        <ul spacing="normal">
          <li>
            <t>KBT now includes the entire SD-CWT in the Confirmation Key CWT (<tt>kcwt</tt>) existing COSE protected header. Has algorithm now specified in new <tt>sd_alg</tt> COSE protected header. No more <tt>sd_hash</tt> claim. (PR #34, 32)</t>
          </li>
          <li>
            <t>Introduced tags for redacted and to-be-redacted claim keys and elements. (PR#31, 28)</t>
          </li>
          <li>
            <t>Updated example to be a generic inspection certificate. (PR#33)</t>
          </li>
          <li>
            <t>Add section saying SD-CWT updates the CWT spec (RFC8392). (PR#29)</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-01">
        <name>draft-ietf-spice-sd-cwt-01</name>
        <ul spacing="normal">
          <li>
            <t>Added Overview section</t>
          </li>
          <li>
            <t>Rewritten the main normative section</t>
          </li>
          <li>
            <t>Made redacted_claim_keys use an unlikely to collide claim key integer</t>
          </li>
          <li>
            <t>Make cnonce optional (it now says <bcp14>SHOULD</bcp14>)</t>
          </li>
          <li>
            <t>Made most standard claims optional.</t>
          </li>
          <li>
            <t>Consistently avoid use of bare term "key" - to make crypto keys and map keys clear</t>
          </li>
          <li>
            <t>Make clear issued SD-CWT can contain zero or more redactions; presented SD-CWT can disclose zero, some, or all redacted claims.</t>
          </li>
          <li>
            <t>Clarified use of sd_hash for issuer to holder case.</t>
          </li>
          <li>
            <t>Lots of editorial cleanup</t>
          </li>
          <li>
            <t>Added Rohan as an author and Brian Campbell to Acknowledgements</t>
          </li>
          <li>
            <t>Updated implementation status section to be BCP205-compatible</t>
          </li>
          <li>
            <t>Updated draft metadata</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-00">
        <name>draft-ietf-spice-sd-cwt-00</name>
        <ul spacing="normal">
          <li>
            <t>Initial working group version based on draft-prorock-spice-cose-sd-cwt-01.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank those that have worked on similar items for
providing selective disclosure mechanisms in JSON, especially:
Brent Zundel, Roy Williams, Tobias Looker, Kristina Yasuda, Daniel Fett,
Brian Campbell, Oliver Terbu, and Michael B. Jones.</t>
      <t>The authors would like to thank the following individuals for their contributions to this specification:
Michael B. Jones.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="M." surname="Jones" fullname="Michael B. Jones">
        <organization>Self-Issued Consulting</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>michael_b_jones@hotmail.com</email>
          <uri>https://self-issued.info/</uri>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
+xr5br1afwUmbsb5xXwJc5iH+WcxMUCHwTKeKEWXhFr0iWC8MYEItwvtuZeo
Pkjk+dLdmTi3KQdt7OuLdkeE+JH16hK9F8UVSoft2vT7M3pxruw1aPtuawqa
jQC5D29GSZZ4VkFIk6BH+HBB7j78FF6ss/Rsd05KVvDQDoxGdrOv0oHr5u1K
0DhX5q4UR9U8JF4WJagZ0q/EOjPWlyljZcSrn7FQf3RdkjEeNhiOZzl633Re
5vLdfPPo8CX5MqGfYOVOKJJZb5qVaNEvPn/etqC9YOm5yC+E0uf1NkhxOCf3
AlqAFKu118ckhC2QipeRvxUqS+qpQTairUozOTVfiDHATbDNuxRjgA/OINkj
rRIZb+cT4eMOWvzhX8eyTA9p4pbbcoqNrmxaLCP41601TQS6vq40BXkf/vWw
qTNw/X7fDmy7a+24tuv17FHPds+c0W7f3rXtn3dkn1mUwr++6uN6/aFX6+Ng
H9c3+2QA2h0rqPp4rr3apz5PPMN5htjnk7yUO+QjT0Y2hEX1BX51XuKn6Fnh
dvHvowMXPzdaxItL+LcHLRxq8brn+kGtxTWOYPXcXWvyeOj7nojcgZ/ESZBG
iRMPwjjwnDB045GdjHS3+g9syU0TO+nD1iI/TJ1hPIjjwAkT3x2EbvK4a8x3
w/P1cT4vgQmEGweDgRgFiR3HQ9cfDQLfj8XITfw18/l2P/U9d9RPhoMhLNYR
g1EsvMHAdkZe3+s/lv0+038/y5O/gIvyAagUYOsH0Pfm7MPyYY5edgmcrm1z
nINsLpvkiw/S/+oDR0dgSwDnxt7+wWHPcfueH2zUu+CoZHTDpi4c2T/0Phzf
G/mBPXABExAYLqwYMK5nD86cwW7fBWQwDscJHNcbDT1Pt3Ydau2dufau4zVb
Dzzb9gZG6z5gWc+hsQHXdOtfVtc7zVmBxSX3TSTbkH7aG7DlZbHRNc9hp+67
baxlA+96PsNOcVjvBL0OQIAHajHLQrPLHM4nnH5AB3rsN/Kc4ZB9hz93Pivh
XNTJpZUIkH3YNFr5TbI1p9qdom4Fe0zuSh5QFDtpmE2BLqFfelc6aepOCiT8
hXLCYyRQI2ok6WpfPbaxsdH1Stkw5czWVVioPiKR7lLMKcbk+6ZtlGR5qkww
6NUJC7Cu8uU0gUnORU31MEwyJjkv8A2SwLWl7SW54SWo5CMgwe3sQLv23hAV
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
LJJVRFPSK6uqYENg69KJ51JLjyACjrEqDLsFk75SKcZ3EQEMmaNn6tK6wHRT
jSFCLYwkjRVzyDV59R5Kr95Pj6RrX6fz1Vdnrw5fffUVNjpSj15GzpCCRd43
e2enFvrLZ3grEWs4Im3U72OxbuXNGnLYn6x3XiOgZLCaZpJZK59o9ljLUFFX
ZXwlpVc0e6EliJm1V5aI6Isq/pWyg0ivNy1pvBFTsglgtVvQaAk3dDl7aUsJ
q2Qs0mpK/JNsZits07C8nswaZRiWyG6wyHtXEhtKDCczVy6LcExt945Oe447
tJ4evOAcJrSmvSX8B81zdGwS/FzyAGCxV5nxDpGdb+4d7R0qzy7fcTCGUTuD
FLqCtkphrP1/yQs6p4XiCGTLku+b9bQteROk5Oc8FVWN7HD1dBoZCkK1pRot
N6QVzZO1r8LJTLGOmwJDfrpN967Km0uljkN6pRwjuESofNlXb/XAXfJliako
I2gvDSzSab8iDiu5AW+1TCqvbwqwlTK/HJIVo560uasJtP27PdeNfOqqnK9q
ZF9FgeiX6BWib7oi3xjG3DVCvtbs2hbbNXmDIs5Mp1Zy/+iDOyOCzPig7/mq
KY/fayTVksVGlNMK0CHCwzW7lA6SnK0M28Mar/B1vcScaEr5mKGOXnMToUcr
OTQ25acgxP52Ime9EKiqZ8UF0EZ0APi8cpuku/5VTvXnyfHyGSPJa6Vg8etn
M+hxNcklGQxIWlxR0TY/Sh+Fj1va0kfS8xeRispVrEY0VmPo/0Hh8gSfFhf6
XzaVcerq6mo7C2fhdr4Y74QFohC5gO6Q04Texsrf29eT8mK6ZfEDQIGxkC0x
2nrzKw4aaGquRAX1VknrbcUcmCc8V0Izg1qF2xiCD9uFo/xSrJRzUT4s/4ek
hatKKNXDStHOivxIw0gxWQJdO3qYSMy4WrVTeWwUkq59nWNFnqzvONUH4H8f
gP99QP6XUZRFNSi6EWqrNquQ6xYuX1i7ytfWCXo5zF6y+ytjF20NhMMJWiiu
60X9kMaK6u7oNeCzZNVDcZiwunP0YhGOtzubtTiybLa6vRoX1D1xN05g0Wrx
MQ5Xqnx2pctuV3KUu5a3+bH6QzrCtsy3+RH+lT6xc3q01xGDDCeujUVcnbOo
rmQ/W3sbH2BaKlaeOpo50NbNgvESI5nBcf1NlzfBzKKv8mPRz+TxyE9s27NT
Efi28CPMWhWP7EHcdyLh+Elcq7NhgBmTX7n2ME5CdzCKw2HgeV4wdHy7P+zb
XjCKBva6HPTwMxwFvmcPPccP4hFMHYe2m47C2LPjJHCjW3qGrjew69U/8Dx3
1J+Tx04ciEHfHQ0GHma6cuMwjtLEHwyjxO0PY1tm8+cRMO+bDMn91jqp1Xpk
2tfV/FomigFE+BjagRO7g7DvDvoD1xGuYyd2H+sehMnQiYKPkv23R+6yny8V
ImWsaDs6hYXoQ85yg6JLba25ZpuUukzhkASNG4p1JIl7vuYCas8kUyNpiiGG
kSFsF71U4FfLCjkgeKZ0eH6bYHeSKyPo6stMtKv36FDldEkJBhfAlsccLoFX
firSUhoUDK8BI+FHpQ+RxIRJaUlFuIOvcvItdIRNJW1fcy8BGlTa1HxRbHOt
5DDy+jfWL42mRjR7I/T+a3ndL2XkfWsTMuVXNxs0g/lSBkNi+x7ledKGzvar
+bVlKSZEll566+GYfOJWrXPWuPEqTsLF/LplAbDblbB6dYPZirQv4hAPax3D
kO7JoRbhpFisZCiK+K3LAFLtUo/rOm0F8YSmGMD3+gKwHHCuqx/PQ3UxcDGs
IcrNYpVA9ggjjywKXABhlVNWfHoUw0c9esLSgvfaaNmqkO3Hyxi9TBAR+VLT
dW4ML9PCc1szEFFHTyy0nq9MAYYJybSjPKfijJO1HilmdiFObCBtcKxISWNY
qLIFcXCzTP3F2TDI/3khwgJkFhWc8ubo4NWLF0cvD48OLZ3IB8RAgQpx4ylA
BnmhUp0aC6A3VBXWL0NeyGjRKzAfDznJn9LXrxZv35zI3OWNLKYD3xmRdCij
jbG/fKsl2Mpd8bsVbzVazXYnOqRqbKw/MOtEH0yxoRG4Y3pf0Jpg0p76FuCN
mY9QsbQO8ik0A2j03ggU/EKgiC9DdFyt70q9yrlVhkDYok+vcivQ0+ek4KcP
U7Zhuk0p5yy7F3ij0ai+d8r59M/Ze4cxyTq6nsPIyAJguLeFaFsbCEE2rM/3
+363U4ti54gKFSOYz2UYIAyVABHIb0jRU1YmHcWpAIpXCJXiXhSS8bnaYqy3
WHSbGZC/v6uHyiJOKLZVf1hVB9jfdjEhn0rJ1+NcY713BzJHwZGsbE02gBfZ
LLuAPZ3OgcAhvspvm/EjSkTSJFMKpZjcTsgIkgtO3lWKyvQruXGPIT8PM5ml
sV494H9vJuD1tUm58dr6pM3J1tQolVN+UZ1SKe/es1Ypt76rXin+qLJW1Q7b
6pbq8b4shzz+NA0GNOQXGw2o9z0MB9TuC4wH+FPL5H6PLTwwv3xtCw/LMf8l
q3tgvvk6gFdyztfgeu+88yvr/kVhYf2OraaV5i/vX92T29+/wie3//Iqn9z/
yyt9yv19cbVP7t9W8VN+s67qJ399V+VPOcgd1T+51V9QARR/HlAFlOf9CyqB
4s99q4Hiz2f9+2cDjR5WGZS63F0dlPf4sAqh+PMFVULx5yGVQu9YWmu1UL20
h1UMxZ+HVA3Fn/tXDsWfX0x6cL8KovjzhVVE66C7dyXRBsRbq4niz4MriuLP
w6qKNpayvrIor+eB1UXx574VRvHnl9YL+adKtd5TWHhQ1VHa1j2LSRlMckVU
+0uqkOLPF1YixZ8vrEaKP19YkRR/vrAqKf7cXZkUW/2y9Z+SG/8pufGvLbmB
pXDlOfVEMlMF4PZm1tHhS6WPUzW3R9ZLTs8hP7Q+PVIJOjoqpbs2bFdeO8rD
BKOGsnxZGO91F+EYI+S0HU0dRfW6PDM5+yQryLd0mo+reDPT11/OuW2dlNp9
Vj+KoFm9JQf8RPunYhCwTkS6YhRQaK/Vgbu0AUMTuEsRMJSAug5giuAgNPQN
4dsQ/LXcP/RqfRzsQ2K/7qOF/bqs3+hTn0cL+CB/UJFByeaAeKE23vqzs+7c
KgZWl2VIQD1DAXXNICzJNhggCKy7hhrb5V4okQLEejYJW323LmxxP9AnNg4P
9vd6ju0MBoONrqmiW5LrrvTqN0Uw/HEa0tftkhf+wKJBdjN7KAU2n+aLMMlb
+sDUG0DJbHdD9UGxp0XmadUP/jpgg1jXALbrELC9M9fedbx1wD46fvqsNxiO
bMf91wN7dtkC7JfiMkyalgL8IVCPgKv/bwb1wMHAlKFmWrcrEdwP4VOzTP3L
8Tpsw+t1hhn8QXCjjD18MLh/URFuNTcQ9fisHmeYaZlGQnoKNT2/jHdjmeup
5lD4fThbhkDA8ADMs8M08ovEyDuvXPflN2SSV/7DXeky3TwLKdlzWIUeWqt+
4ULU9IJMRh2pucl1Bd9R1+1hnS5h5IWH7p07utfWxHN3KWcxr2WsC5Woo9N+
/XrFje6cNAvTjFapn82kzPwCgG7bd22Nxxyzrzd1y9JbeulypysnWYFkGt6C
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
T96dLb53+i+jgQ108uf937KbH93TvezDj/bV98/fXz59kb74KXRORWZzL1re
WSyWz58mvWl5+GI8nbrv4uDUebf34d3B+WjiJcmz2ezVm/7ezz/acnZa8zvn
Io+mF4NXV3tl//zn0fz528vXP0YXV4VzOD2OXu+fvPeXT3+cn716u6GIzskM
LSogFUgAyhz2CLvaAY9nKLxOsxm+bIvwvNiSQOWNq30zfAm8uP97b79D+8fN
P2jvchOAbTh9I12QsZWMdinjMCW2yg34I8frB54fBcj0ALdcFxAv7nt2lPoh
3JDUTx3ftUdDPxDCGYROHI4iwMpBGA36fr+Gfq3Q43kegFBtQ8qMTq+PXtRw
mjwD94+enry0Xr/df35yYP1w9BN92HlxfH51dPXTsx/yn09+/9U+2PvxpxP5
++Hej/Hhj+O9o3XHswPH06mjp/PyOvCKn/vBe/vFzcH7v//87vf583dvD0dv
fzhzn00cW4jYfxbvTw9/vPrmG17Y0cvDlWXV9ob5vLi6wF2be3Pybu/syNjd
ydNne+OjvRf7L57u3/z29PSFN4K/nx4cyN+vjp7tP7WvwquT/b0ffxw370Zn
/eV4P3mz9/Jgb+/0+N2rYvb32Lm8fHMdXJ8//e3594c/nxw8Hx2e7Z13ynD4
0/XwerJ4933w/G3/2SK7nqXz6MffT77/OZn+/dV5+e7H186P89c/iWd/f+P7
v58nV0/fvjw0QNPcFFfIVeVWOrIoT4s0fC0jPw5BYJrlVFXwZS6VsU2Qrbbu
L1QBvYMP3fWlsnfiq/M+GTCJ1Jhite+wXN0feg0BzSUBTX1uCmgx3K7RMLLj
wXDop2Hfd4dplA5BmPIjL+6HQQKSVeiHIMAFUd8eNMWpaOAO4/4AOJcbpG4Y
CT+NvFHgxcnIEXCFh6HvjfppIKIoiKMoXRXghmkQAzcZBE4wgsuc9Ade7CVh
OOoPB57fBxHQ9ocg1cI/kR0ORXMFQy+0fT/sO2k0SEeu46G4aY98140dfyQG
gQfbcRzhOAF86nurcvnAiX0vcV3XGQEHCwPHTSIH/kpBDk2SdDDAKvFDJ/ZE
PxKesyKn+2EICxslAUDQHsWpSHELsFnH9gbDfpr4AzEE+uS6g8SGr/5t5Pb/
oIWBFv9Kud//P0Xu/7K5vlTu799bjPaGSow+IEzdtw8QU4/3EFOP948BU4/8
fe+gvxccgoS95++BXhDsV5i6Dwh6IBH02N3bP/KP9xFBDw5HzhEi6B4i6HFw
tL8fHOzvH/8p9eBL9jU8Dg4GRweM/wd7h4D/B97h3p7E/2PC/6ODI/hn394b
Hqlu3h6g/V7fOd4fHCPa7yu0PwC0PwK0P0a0P1Jo/0/SImBkUGCAlALpBGUB
lIbABcIYe2EwskPHcUZR7PUjf+AkoQN0dzB0nT4o5mkSJFEcSS3iRBerukWL
qOkQlQYBVA3/lvrDPXhppTLIrigwX12Ln4oX4uTvwcvTXwe9Z+m0fPHqov9U
TOfJ9eLFs/Lm18N4en4x/O1y2rOn57///OzX6cn87fmHaFEWyw84DkrRv7rX
vWv3eP7sB7t/duT+du4lx6+vx8e/Fv5PwdVvryY/7L/Lr3v93unx8++dg3cn
xfHPvnvmxW88kFDfvcVxYCMbcfzu5Un29Cz97adT9/pkMnz5Ohn1n33/av/6
1avej8n73w7y2ftJehB/uExenA6GP77xXo/e9SZBkaU/Ji9WFQ0J4y/QMAhM
TQ3jvgDrrIfYgwDWWQuxdmXE2O4tWogzTEC1ATE88BNQQ/rAwPujgZsI4Bth
6okkAbXYHSJTc0Uap+HItuMgBJbi9QdDv46+berH05dnSXkFgunxy797flwO
ZuHlWdl/dpX/ffDj8sPr3348fDp/PTkUx3u1sb5c/Xj209XRXk39OP7BOzra
Ozg5/AlUj/q5PVk5t46J6U/Mc9uhc9uBA3ty24F1+MSe9J+sObA7dBQFgD+l
o7iso+zVdJT90+X+/t5etn/yVECbCD7b3z/cv75+a2cnP798Mp88j46yZ1cd
e9Tvx/G59+zIG/j7Tpj/kCXh8fD735+M7Ovnl9f7z8Y7zt+DZ7/dfD/at28m
P++9zPb2zg6P/ezq2pukndz54fWllzx5b18FUfxz8H7af1pcif4PL17evD+N
bn578vfB6fuzl+fi1dtseno2Wi7dm8GT19GzwbOf3p/HncVZ8uIs/O1sYr/d
ebr3/tXv018XB3lwlB+///XZIPVP3hazt9+/za7ezWY/v55cP5scj6fvfvzm
/63u2nrbtqHwu3+FkDzUBmwnTTKgTTFgybpu3ZIl6NoN215MWXQiRJYMS2rq
Fv3vO985hxfJTtrtbW+90BRFHpKH4nf50iEHupvO+UeOLb+x0zIgrI2H8VLq
mfyQ5Q3o6teFhV7v2i7F4SKyNzJ1cm8LFv1ae3I16vj06fz766PDbz5/dmY+
Z+/e/nTybNrzR1rbebXOVIpeHJ9p9kJEvwwGRc4zYuHYIU01r4qEqbbuvmdb
e0GuE50QKbDQqnDLhZmvXdpm8nJtFo3ch0OS2umnGmWhwEGsa1XoXkyuyXpX
+v02891L9L499S5c4dbSUMaE41qniZhFeqMkjD6+o4RlNKTv0GruaeDHpwMd
o7KKbfiK3L8zAE2ReXa3mQmTHjLI+OM6DP8J9fCsWtdyCesuyKiJ08ErEVrA
leoYyrF2sQBVFDqy7G60NFlXr7rrxhJ0tPmp3Nh70xVF5r5gKjrMYKkZQUSY
G+h60KhOMRNq1KZMFMpbpzoGN2yKCFNU0g/euHArupy/1cLy3R+rq5vMGT+A
vaig89DJQsjo1ySW5cKdOZsjvlVvOMTOONnjF2IumnAdhaTiBK7h1IVfMVu5
dqFyU7KdXUcRgM2CukB7drlBv6e2pDnCWIJ1W5YiYJBF1+WbYOJjAVQvhaDJ
uvApy3Z43qkXNFlYmwG3Hj1Lhvw26lS5Uud5qsLPS+5VZ1vWrtxKE0Xl9kt7
7ZI4gowKOsMOi95uT53ZYFi5hMvBNR4sDIyr9Y0p84+qnRKKvC6zVhzE6Y9z
WvpYO+Lvm5w273Q6r5YHjSs7yX1ZhbcErvjXle+xSaChV61sOVGjh95c3En4
hz0g+o+9CaP3Y81xlhjBWjRv10ydcrzX4RPY4T0ZhUfUXcZcfDfNo9kTPt+m
W3FsKrcVESvGJ7ir5sxRdKWFvA3/DXXWwTirz4W+ombloo/eKbnj1S/yOehz
1HMrM7+1k6PpISUJ3W4ThrSofzIXg+U4ksbKEuhXpwzk441tBLGD2cBhVwvW
wNuxzsW2oEMGoV+pyrluXSYDj8NLbVzR82kztZbeawgX+mnNf/mO3b5lOcwQ
LCOBJGHRejBWBXd0Ud3k5a7wTG1BtS4PLMyszQMx2S/0hUDkBn1NNCI4UPi/
RSWwP2IPVXnm8y6QDABQOxDdMyUDdvBZvztt0wJqtWzpBuMTJn435uZG8JdT
fKplm7sdyuTqU8tBEi9jG9Zq+J+E4LmMeHJpigxYyaGGwJSp+SJ5tFpOlxYh
6LlcyU/slbSRFPA0Sv7GyWo7+VO8jktpsKcHBr4sxpyeTPDQiagEKHvk8GQA
M2RAXBQjp9lhgG2znH5A9lBx6B3swptGpCqNEhpjpx09SX4ELbPYOGu2jNG9
tJdXLa1hPbHn7gPPNBOhquL48CYYyh4LjFhKWS7zO5v8TCNLecOEepaHS+i8
W67vU32pXdDJSKWLHyhJboAzbqMdUdslNmB3/E2dU+XCtEWTzISTNHPoO/WS
ttm/VVrhn8r7Y3vHIDrCbBC/5FyOUb5MML936Z1gd/Enj3zkjtIcHg3uaec6
yCOVet3Fbc3ympYB9M6sbtOZ8jhZLiLNM2o5Gipj54c9hbPszLTZjJ/qtjlx
sb2Ajyz8xF/+6mFSvtbY3oHvexjziNIfVqymRAMBImUEBBOzOp7OyME7zWEn
Zc3K1R3Ch+yr/IP2RVyKjzE9oiQdE+zSU1sBLn4hWRjjjGEyI1liDXqir5nb
GQ5qj0/VY0xVnfeMobZOBIvZ6Z7TpbDMoUPT9ZK6aGqNqEKZUxuHZwu+PZWK
9B149yeUlnBT2KJDsHLiyqv1R1ph+75V9LPIjZFCrrhrbmnW39zKqrpctcrW
Dk2LGiZ5kNMacND54C1kRD9BUiEWZPD7S923CkKEmyxjNfmdal5+ER3unxyN
xJ0lhKszXWJP2Ly8c9Ji4iNOPzke8RCpLoZ2DkqrN5CpE1XA0i8nAgOHKlCQ
aN0/fo5qZK3KovWn7rDgRYCCs30s2KqMoAp83JoTVJO2eQG8be2B2kqHHXpU
JeXF8Cc7wMdl+gsrHoxcKFs//ejgh4R/LtanuudL9iKDFGW1qvrGnaF+arzP
+9oUDi/RFFoi4+PmoZbWf3QB+cA28ejcOcLcwQjIAhJBZntgV52/MRAY94D4
v+EMDMzZKKhd8Gf7vhWRuAsHoXw8UbM1SeNLex/2gAeqoHSFRxXlMCwzhY0n
w+s3yf7xyTgBmAkLcSM2PxnC3olN6PTj6O2SXmRb9whVR+ngevePn46To2eo
9p3GnjsVqKGPnBloxaV8bqUTZW7X6uNttRaeBGdZ5udSbWL3bCepwf0Mrymk
m0Pdi0dSx9Hz0ePj+XQgz6A2Xr2HlyBEbFRCb0Jb1j31faN6KmxBXspp9b2N
ivEmvSOjFS2DMmnLoFJC5+YCkuW+Ax3cl+uBKxgTuUKQDpnbdY+Xd0bxI/dM
no09Oqv/pezqbquAJsn7KmdtHkzglM3HYJK+R43YSyZef4bnRBXG1i+Uc8oY
QzPxly5OvANi5gXcaUGtHUmjfhF9Jop+5Z1l8bMxb2dqJbnDvTDedPVtNLo5
bOV6yLlAs4lRzdnRRSXGjZYzYGREeImyXfkQeFPBrMoIu4PlE7kHzqkwra4U
wim+iVLNZ3NvByqcrxDqvXOWfvt0ISwTQL4WTbBlUamUVyb3ew5VWqwbgyP0
49F7OGCBSlEn6Hxk8Ycy/91TKqEVYl3N77QeWB6FqcDo8vBm8mKfTkXGzWbf
7i1MUdu9z2p8wP1DCzDLmyDA9WNDiQ9I4hLsPiOhadIK911CshwaroEoKTzk
b0Adgc8OeS05EWD148TyMojt43RwzkfQvyAVWIxpADfJHznNMAMvl7dVmtNg
XlTVHTD5v7A3fWmSP03dZmacvKSK6VD5yjbNeNAd5HFyVcCqPXlr12krOcEl
JTaGyp9P3XngKzoiJg+F5MlrCebr8DnU7cXb5/LTwfaz/wE6LJh0PG0BAA==

-->

</rfc>
