<?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-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="SD-CWT">Selective Disclosure CBOR Web Tokens (SD-CWT)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-05"/>
    <author fullname="Michael Prorock">
      <organization>mesur.io</organization>
      <address>
        <email>mprorock@mesur.io</email>
      </address>
    </author>
    <author fullname="Orie Steele">
      <organization>Tradeverifyd</organization>
      <address>
        <email>orie@or13.io</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/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 79?>

<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 85?>

<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 can only act on unblinded claims sent by the Holder; it will ignore Blinded Claims representing array items, and will fail to process any SD-CWT containing Blinded Claims that represent map keys.
optional Claim Keys, whether they are disclosed or not, can only be processed by a Verifier that understands this specification.
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 288,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="576" width="392" viewBox="0 0 392 576" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
            <path d="M 8,112 L 8,160" fill="none" stroke="black"/>
            <path d="M 8,288 L 8,400" fill="none" stroke="black"/>
            <path d="M 8,528 L 8,560" fill="none" stroke="black"/>
            <path d="M 24,32 L 24,64" fill="none" stroke="black"/>
            <path d="M 24,208 L 24,240" fill="none" stroke="black"/>
            <path d="M 24,448 L 24,480" fill="none" stroke="black"/>
            <path d="M 32,320 L 32,368" fill="none" stroke="black"/>
            <path d="M 72,64 L 72,104" fill="none" stroke="black"/>
            <path d="M 72,160 L 72,200" fill="none" stroke="black"/>
            <path d="M 72,240 L 72,280" fill="none" stroke="black"/>
            <path d="M 72,400 L 72,440" fill="none" stroke="black"/>
            <path d="M 72,480 L 72,520" fill="none" stroke="black"/>
            <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
            <path d="M 144,208 L 144,240" fill="none" stroke="black"/>
            <path d="M 144,448 L 144,480" fill="none" stroke="black"/>
            <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
            <path d="M 192,208 L 192,240" fill="none" stroke="black"/>
            <path d="M 336,32 L 336,64" fill="none" stroke="black"/>
            <path d="M 352,112 L 352,160" fill="none" stroke="black"/>
            <path d="M 352,528 L 352,560" fill="none" stroke="black"/>
            <path d="M 360,208 L 360,240" fill="none" stroke="black"/>
            <path d="M 368,320 L 368,368" fill="none" stroke="black"/>
            <path d="M 384,288 L 384,400" 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,112 L 352,112" fill="none" stroke="black"/>
            <path d="M 8,160 L 352,160" fill="none" stroke="black"/>
            <path d="M 24,208 L 144,208" fill="none" stroke="black"/>
            <path d="M 192,208 L 360,208" fill="none" stroke="black"/>
            <path d="M 152,224 L 192,224" fill="none" stroke="black"/>
            <path d="M 24,240 L 144,240" fill="none" stroke="black"/>
            <path d="M 192,240 L 360,240" fill="none" stroke="black"/>
            <path d="M 8,288 L 384,288" fill="none" stroke="black"/>
            <path d="M 32,320 L 368,320" fill="none" stroke="black"/>
            <path d="M 32,368 L 368,368" fill="none" stroke="black"/>
            <path d="M 8,400 L 384,400" fill="none" stroke="black"/>
            <path d="M 24,448 L 144,448" fill="none" stroke="black"/>
            <path d="M 24,480 L 144,480" fill="none" stroke="black"/>
            <path d="M 8,528 L 352,528" fill="none" stroke="black"/>
            <path d="M 8,560 L 352,560" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="160,224 148,218.4 148,229.6" fill="black" transform="rotate(180,152,224)"/>
            <polygon class="arrowhead" points="136,48 124,42.4 124,53.6" fill="black" transform="rotate(180,128,48)"/>
            <polygon class="arrowhead" points="80,520 68,514.4 68,525.6" fill="black" transform="rotate(90,72,520)"/>
            <polygon class="arrowhead" points="80,440 68,434.4 68,445.6" fill="black" transform="rotate(90,72,440)"/>
            <polygon class="arrowhead" points="80,280 68,274.4 68,285.6" fill="black" transform="rotate(90,72,280)"/>
            <polygon class="arrowhead" points="80,200 68,194.4 68,205.6" fill="black" transform="rotate(90,72,200)"/>
            <polygon class="arrowhead" points="80,104 68,98.4 68,109.6" fill="black" transform="rotate(90,72,104)"/>
            <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="44" y="132">Issuer</text>
              <text x="100" y="132">Signed</text>
              <text x="160" y="132">Blinded</text>
              <text x="220" y="132">Claims</text>
              <text x="32" y="148">All</text>
              <text x="76" y="148">Salted</text>
              <text x="144" y="148">Disclosed</text>
              <text x="212" y="148">Claims</text>
              <text x="76" y="228">Holder</text>
              <text x="252" y="228">Confirmation</text>
              <text x="320" y="228">Key</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="68" y="340">Issuer</text>
              <text x="124" y="340">Signed</text>
              <text x="184" y="340">Blinded</text>
              <text x="244" y="340">Claims</text>
              <text x="68" y="356">Holder</text>
              <text x="132" y="356">Selected</text>
              <text x="196" y="356">Salted</text>
              <text x="264" y="356">Disclosed</text>
              <text x="332" y="356">Claims</text>
              <text x="76" y="468">Verifier</text>
              <text x="56" y="548">Validated</text>
              <text x="136" y="548">Disclosed</text>
              <text x="200" y="548">Claim</text>
              <text x="240" y="548">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
+----------------------------------------------+
| Holder Signed Key Binding Token              |
|  +-----------------------------------------+ |
|  | Issuer Signed Blinded Claims            | |
|  | Holder Selected Salted Disclosed Claims | |
|  +-----------------------------------------+ |
|                                              |
+-------+--------------------------------------+
        |
        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="880" width="360" viewBox="0 0 360 880" 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,464" fill="none" stroke="black"/>
            <path d="M 8,512 L 8,544" fill="none" stroke="black"/>
            <path d="M 8,624 L 8,656" fill="none" stroke="black"/>
            <path d="M 8,720 L 8,752" fill="none" stroke="black"/>
            <path d="M 8,832 L 8,864" fill="none" stroke="black"/>
            <path d="M 32,384 L 32,432" fill="none" stroke="black"/>
            <path d="M 56,64 L 56,136" fill="none" stroke="black"/>
            <path d="M 56,176 L 56,232" fill="none" stroke="black"/>
            <path d="M 56,272 L 56,328" fill="none" stroke="black"/>
            <path d="M 56,464 L 56,504" fill="none" stroke="black"/>
            <path d="M 56,544 L 56,616" fill="none" stroke="black"/>
            <path d="M 56,656 L 56,712" fill="none" stroke="black"/>
            <path d="M 56,752 L 56,824" fill="none" stroke="black"/>
            <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
            <path d="M 104,512 L 104,544" fill="none" stroke="black"/>
            <path d="M 104,624 L 104,656" fill="none" stroke="black"/>
            <path d="M 312,384 L 312,432" 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,464" fill="none" stroke="black"/>
            <path d="M 352,720 L 352,752" fill="none" stroke="black"/>
            <path d="M 352,832 L 352,864" 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 32,384 L 312,384" fill="none" stroke="black"/>
            <path d="M 32,432 L 312,432" fill="none" stroke="black"/>
            <path d="M 8,464 L 352,464" fill="none" stroke="black"/>
            <path d="M 8,512 L 104,512" fill="none" stroke="black"/>
            <path d="M 8,544 L 104,544" fill="none" stroke="black"/>
            <path d="M 8,624 L 104,624" fill="none" stroke="black"/>
            <path d="M 8,656 L 104,656" fill="none" stroke="black"/>
            <path d="M 8,720 L 352,720" fill="none" stroke="black"/>
            <path d="M 8,752 L 352,752" fill="none" stroke="black"/>
            <path d="M 8,832 L 352,832" fill="none" stroke="black"/>
            <path d="M 8,864 L 352,864" fill="none" stroke="black"/>
            <polygon class="arrowhead" points="64,824 52,818.4 52,829.6" fill="black" transform="rotate(90,56,824)"/>
            <polygon class="arrowhead" points="64,712 52,706.4 52,717.6" fill="black" transform="rotate(90,56,712)"/>
            <polygon class="arrowhead" points="64,616 52,610.4 52,621.6" fill="black" transform="rotate(90,56,616)"/>
            <polygon class="arrowhead" points="64,504 52,498.4 52,509.6" fill="black" transform="rotate(90,56,504)"/>
            <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="76" y="404">Original</text>
              <text x="136" y="404">Claim</text>
              <text x="184" y="404">Value</text>
              <text x="220" y="404">is</text>
              <text x="268" y="404">replaced</text>
              <text x="60" y="420">with</text>
              <text x="112" y="420">Blinded</text>
              <text x="168" y="420">Claim</text>
              <text x="212" y="420">Hash</text>
              <text x="52" y="532">Holder</text>
              <text x="76" y="580">4.</text>
              <text x="124" y="580">Presents</text>
              <text x="196" y="580">selected</text>
              <text x="116" y="596">Salted</text>
              <text x="184" y="596">Disclosed</text>
              <text x="252" y="596">Claims</text>
              <text x="52" y="644">Verifier</text>
              <text x="76" y="692">5.</text>
              <text x="116" y="692">Hashes</text>
              <text x="172" y="692">Salted</text>
              <text x="240" y="692">Disclosed</text>
              <text x="304" y="692">Claim</text>
              <text x="48" y="740">Blinded</text>
              <text x="104" y="740">Claim</text>
              <text x="148" y="740">Hash</text>
              <text x="212" y="740">(computed)</text>
              <text x="76" y="788">6.</text>
              <text x="120" y="788">Matches</text>
              <text x="172" y="788">with</text>
              <text x="212" y="788">hash</text>
              <text x="244" y="788">in</text>
              <text x="288" y="788">payload</text>
              <text x="100" y="804">to</text>
              <text x="144" y="804">recover</text>
              <text x="212" y="804">original</text>
              <text x="40" y="852">Claim</text>
              <text x="88" y="852">Value</text>
              <text x="160" y="852">(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'ed7ff84b27e746199698a94cc19292e4
                      b72dc4c3eb551f0ef2b9da07980c648c
                      2bb033c337c6ed13e1bc7c5b7b7c9df9
                      49a70239f51eca1f6d8e058b8b70bcb3
                      b5746812a932ffb37a2e6e984957e3f6
                      b003eb3319fbe21e97f6a3a273307424'
])
]]></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'd9df03da474fcb3c65771748e2e0608c
        f437504ecc24f450aaeacd40dd552b3f',
      / ... 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'dd49379434b25b03cd8756787ab49731
                      580a04505439ca78ee53300dd49a00b7
                      0e8715d015a2a6e8d88455f5850e3d93
                      eade1366c0040c2cee1cc568322a6b93'
])   / 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[
; an array of bstr-encoded Salted Disclosed Claims
salted-array = [ *bstr-encoded-salted ]

bstr-encoded-salted = bstr .cbor salted-entry
salted-entry = 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
]
]]></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,
   ? &(kid: 4) ^ => bstr,
   ? &(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) ^ => num,  ; 1883000000
    ? &(nbf: 5) ^ => num,  ; 1683000000
    ? &(iat: 6) ^ => num,  ; 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) ^ => num,  ; 1883000000
    ? &(nbf: 5) ^ => num,  ; 1683000000
      &(iat: 6) ^ => num,  ; 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>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.
Each decoded disclosure is treated as if it is a claim key or claim element at the location corresponding to its Blinded Claim Hash in the payload.
If there are any disclosures that do not have a corresponding Blinded Claim Hash, the entire SD-CWT is invalid.
If any decoded Redacted Claim Key duplicates another claim key in the same position, the entire SD-CWT is invalid.  </t>
          <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>
      <t>By performing these steps, the recipient can cryptographically verify the integrity of the protected claims and verify they have not been tampered with.</t>
    </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> .
(Guidance on specific algorithms is discussed in <xref target="aead-choice"/>.)
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 .size 16,     ; 128-bit nonce
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr               ; the corresponding authentication tag
]
]]></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'ed7ff84b27e746199698a94cc19292e4
                          b72dc4c3eb551f0ef2b9da07980c648c
                          2bb033c337c6ed13e1bc7c5b7b7c9df9
                          49a70239f51eca1f6d8e058b8b70bcb3
                          b5746812a932ffb37a2e6e984957e3f6
                          b003eb3319fbe21e97f6a3a273307424'
    ]),
    / 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'dd49379434b25b03cd8756787ab49731
                      580a04505439ca78ee53300dd49a00b7
                      0e8715d015a2a6e8d88455f5850e3d93
                      eade1366c0040c2cee1cc568322a6b93'
])   / 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 anchor="aead-choice">
        <name>Choice of AEAD algorithms</name>
        <t>The AEAD encrypted disclosures mechanism discussed in <xref target="aead"/> can refer to any AEAD alogithm in the <eref target="https://www.iana.org/assignments/aead-parameters/aead-parameters.xhtml">IANA AEAD Algorithms registry</eref> .</t>
        <t>When choosing an AEAD algorithm, the tag length is critical for the integrity of encrypted disclosures in SD-CWT.
As such, implementations <bcp14>MUST NOT</bcp14> use any AEAD algorithm with a tag length less than 16 octets.</t>
        <t>Algorithms using AES-CCM are <bcp14>NOT RECOMMENDED</bcp14>.</t>
        <t>As of this writing, implementations <bcp14>MUST NOT</bcp14> use algorithms 3 through 14, 18, 19, 21, 22, 24, 25, 27, or 28.
Implementations using the AEGIS algorithms containing an X <bcp14>MUST</bcp14> only use the 256-bit tag variant.</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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="16" month="October" 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 -19
   // includes the definition of the cri'' application- extension. cri''
   // was previously defined in draft-ietf-core-href; however the latter
   // document overtook the present document in the approval process.
   // As the definition of cri'' is dependent on the present document
   // (and conversely has essentially no dependency on the technical
   // content of draft-ietf-core-href beyond its mere existence), the
   // text (including IANA considerations) has been moved here. -19 is
   // intended for use at the CBOR WG meeting at IETF 124.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-19"/>
        </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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
          <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="15" month="September" 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-11"/>
        </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="13" month="October" year="2025"/>
            <abstract>
              <t>   CBOR (STD 94, RFC 8949) defines the concept of "Deterministically
   Encoded CBOR" in its Section 4.2, determining one specific way to
   encode each particular CBOR value.  This definition is instantiated
   by "core requirements", providing some flexibility for application
   specific decisions; this makes it harder than necessary to offer
   Deterministic Encoding as a selectable feature of generic CBOR
   encoders.

   The present specification 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
   application requirements.

   The document also discusses the desire for partial implementations,
   which can be another reason for constraining CBOR encoders, and
   singles out the encoding constraint "definite-length-only" as a
   likely constraint to be used in application protocol and media type
   definitions.

   This specification updates RFC 8949 in that it provides
   clarifications and definitions of additional terms as well as more
   examples and explanatory text; it does not make technical changes to
   RFC 8949.


   // This revision -13 merges all active pull requests in preparation
   // for the 2025-cbor-17 interim on 2025-10-15.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-cde-13"/>
        </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="19" month="October" 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-03"/>
        </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 1626?>

<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,
   ? &(kid: 4) ^ => bstr,
   ? &(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) ^ => num,  ; 1883000000
    ? &(nbf: 5) ^ => num,  ; 1683000000
    ? &(iat: 6) ^ => num,  ; 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) ^ => num,  ; 1883000000
    ? &(nbf: 5) ^ => num,  ; 1683000000
      &(iat: 6) ^ => num,  ; 1683000000
    ? &(cnonce: 39) ^ => bstr,
    * key => any
}

salted-array = [ *bstr-encoded-salted ]
bstr-encoded-salted = bstr .cbor salted-entry
salted-entry = 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
]

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
]

num = int / float
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 : -7, /ES256/
  /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="relationship-between-rats-architecture-and-verifiable-credentials">
      <name>Relationship between RATS Architecture and Verifiable Credentials</name>
      <t>This appendix describes the relationship between the Remote ATtestation procedureS (RATS) architecture defined in <xref target="RFC9334"/> and the three-party model used in verifiable credentials.</t>
      <section anchor="three-party-verifiable-credentials-model">
        <name>Three-Party Verifiable Credentials Model</name>
        <t>The verifiable credentials model involves three distinct parties:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Issuer</strong>: Creates and signs credentials containing claims about a subject</t>
          </li>
          <li>
            <t><strong>Holder</strong>: Controls the credential and presents it to verifiers (the holder is typically the subject of the credential)</t>
          </li>
          <li>
            <t><strong>Verifier</strong>: Receives and validates presented credentials to make authorization or access decisions. In this appendix we refer to this role as a <strong>Credential Verifier</strong></t>
          </li>
        </ul>
        <t>In SD-CWT, these roles are explicitly represented: the Issuer signs claims using an Assertion Key (<xref target="terminology"/>), the Holder controls the credential and creates presentations using a Confirmation Key, and the Verifier validates both the Issuer's signature over the credential and the Holder's signature over the presentation (key binding token).</t>
      </section>
      <section anchor="rats-architecture-roles">
        <name>RATS Architecture Roles</name>
        <t>The RATS architecture defines the following key roles:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Attester</strong>: Produces Evidence about its own trustworthiness and operational state</t>
          </li>
          <li>
            <t><strong>Endorser</strong>: Provides Endorsements about an Attester (typically a manufacturer)</t>
          </li>
          <li>
            <t><strong>Reference Value Provider</strong>: Supplies Reference Values used by Verifiers to evaluate Evidence</t>
          </li>
          <li>
            <t><strong>Verifier</strong>: Appraises Evidence and produces Attestation Results. In this appendix we refer to this role as a <strong>RATS Verifier</strong></t>
          </li>
          <li>
            <t><strong>Relying Party</strong>: Consumes Attestation Results to make authorization decisions</t>
          </li>
        </ul>
      </section>
      <section anchor="role-mappings-in-the-three-party-model">
        <name>Role Mappings in the Three-Party Model</name>
        <t>The mapping between RATS roles and verifiable credential roles can be understood as follows:</t>
        <section anchor="verifiable-credential-issuer-as-rats-endorser">
          <name>Verifiable Credential Issuer as RATS Endorser</name>
          <t>A verifiable credential Issuer functions as a RATS Endorser. The Endorser role in RATS produces Endorsements - secure statements about an Attester's capabilities, identity, or trustworthiness. Similarly, a credential Issuer produces signed credentials containing claims about a subject (the Holder). Both roles:</t>
          <ul spacing="normal">
            <li>
              <t>Make authoritative statements about another party's attributes or capabilities</t>
            </li>
            <li>
              <t>Use cryptographic signatures to ensure integrity and authenticity</t>
            </li>
            <li>
              <t>Are typically trusted third parties in their respective ecosystems</t>
            </li>
            <li>
              <t>Provide information that enables downstream authorization decisions</t>
            </li>
          </ul>
          <t>The credential issued by the Issuer serves the same function as an Endorsement in RATS: it is a signed assertion about the Holder's attributes that can be used by Credential Verifiers to make trust decisions.</t>
        </section>
        <section anchor="verifiable-credential-holder-as-rats-verifier">
          <name>Verifiable Credential Holder as RATS Verifier</name>
          <t>A verifiable credential Holder functions as a RATS Verifier. The RATS Verifier appraises Evidence and Endorsements and produces Attestation Results. In the credentials model, the Holder:</t>
          <ul spacing="normal">
            <li>
              <t>Receives credentials (analogous to Endorsements) from Issuers</t>
            </li>
            <li>
              <t>Evaluates which credentials to present and which claims to disclose</t>
            </li>
            <li>
              <t>Produces presentations (analogous to Attestation Results) that are sent to Credential Verifiers</t>
            </li>
            <li>
              <t>Uses their Confirmation Key to create key binding tokens that prove control</t>
            </li>
          </ul>
          <t>The Holder's presentation, which includes the Issuer's credential plus the Holder's signature over selected disclosures, functions as an Attestation Result - a processed, signed assertion derived from the original credential (Endorsement).</t>
        </section>
        <section anchor="verifiable-credential-verifier-as-rats-relying-party">
          <name>Verifiable Credential Verifier as RATS Relying Party</name>
          <t>A verifiable credential Credential Verifier functions as a RATS Relying Party. The Relying Party:</t>
          <ul spacing="normal">
            <li>
              <t>Consumes Attestation Results (credential presentations) to make authorization decisions</t>
            </li>
            <li>
              <t>Validates the cryptographic integrity of received assertions</t>
            </li>
            <li>
              <t>Makes access control or authorization decisions based on the claims received</t>
            </li>
            <li>
              <t>Does not directly interact with the original Endorsement source (the Issuer)</t>
            </li>
          </ul>
          <t>The Credential Verifier appraises the Holder's presentation in the same way a Relying Party appraises Attestation Results from a RATS Verifier.</t>
        </section>
        <section anchor="all-parties-can-be-attesters">
          <name>All Parties Can Be Attesters</name>
          <t>Importantly, any of these parties - Issuer, Holder, or Credential Verifier - can simultaneously function as a RATS Attester. The Attester role in RATS is about producing Evidence about one's own trustworthiness:</t>
          <ul spacing="normal">
            <li>
              <t>An <strong>Issuer</strong> may be an Attester when it needs to prove its own integrity, platform state, or authorization to issue certain credential types. For example, an Issuer might provide Evidence about its secure enclave or certified infrastructure when establishing trust with Holders or during credential issuance.</t>
            </li>
            <li>
              <t>A <strong>Holder</strong> may be an Attester when presenting credentials, particularly when the presentation itself requires proof of the Holder's platform integrity. For example, a Holder might provide Evidence about their device's secure boot state, firmware version, or trusted execution environment alongside their credential presentation.</t>
            </li>
            <li>
              <t>A <strong>Credential Verifier</strong> may be an Attester when it needs to prove its own trustworthiness to Holders or to upstream systems. For example, a Credential Verifier might provide Evidence about its data protection capabilities, compliance certifications, or secure processing environment before Holders agree to disclose sensitive claims.</t>
            </li>
          </ul>
          <t>The Attester role is orthogonal to the three primary roles - it represents the ability to produce evidence about one's own state, while the Issuer/Holder/Credential Verifier roles represent the flow of credentials and claims about subjects.</t>
        </section>
      </section>
      <section anchor="comparison-with-rats-interaction-models">
        <name>Comparison with RATS Interaction Models</name>
        <t>RATS defines two interaction models:</t>
        <t><strong>Passport Model</strong>: The Attester sends Evidence to a RATS Verifier, receives Attestation Results, and presents these results to Relying Parties. This maps to the three-party credentials model where the Holder obtains credentials from Issuers and presents them to Credential Verifiers.</t>
        <t><strong>Background-Check Model</strong>: The Attester sends Evidence to a Relying Party, which forwards it to a RATS Verifier. The RATS Verifier returns results directly to the Relying Party. This is a two-party model from the Attester's perspective and does not map well to the three-party credentials model, as it lacks Holder mediation and control over presentations.</t>
      </section>
      <section anchor="roles-that-dont-map-to-the-three-party-model">
        <name>Roles That Don't Map to the Three-Party Model</name>
        <t>The <strong>Reference Value Provider</strong> role from RATS does not have a direct equivalent in the three-party verifiable credentials model. This role supplies reference values (known-good measurements or configurations) that RATS Verifiers use to appraise Endorsements and Evidence. In credentials systems, equivalent functionality might be provided through:</t>
        <ul spacing="normal">
          <li>
            <t>Trust registries that list authorized Issuers</t>
          </li>
          <li>
            <t>Schema registries, or lists of valid claims that define credential formats</t>
          </li>
          <li>
            <t>Governance frameworks that specify validation rules</t>
          </li>
          <li>
            <t>Revocation registries</t>
          </li>
        </ul>
        <t>However, these are typically considered part of the trust infrastructure rather than a distinct party in the presentation protocol. The Reference Value Provider role is primarily relevant in scenarios where raw Evidence must be evaluated against known-good values - a pattern more common in the two-party background-check model than in the three-party credentials model where Issuers have already performed evaluation and produced credentials.</t>
      </section>
      <section anchor="application-to-sd-cwt">
        <name>Application to SD-CWT</name>
        <t>When applying RATS concepts to SD-CWT:</t>
        <ul spacing="normal">
          <li>
            <t>SD-CWT credentials function as Endorsements about the Holder (subject)</t>
          </li>
          <li>
            <t>The Holder's key binding token and selective disclosure act as the RATS Verifier's appraisal and production of Attestation Results</t>
          </li>
          <li>
            <t>The Credential Verifier consumes these presentations as a Relying Party consumes Attestation Results</t>
          </li>
          <li>
            <t>Any party can additionally provide Evidence about their own platform or operational state (act as an Attester)</t>
          </li>
          <li>
            <t>The three-party model with selective disclosure maps naturally to the RATS passport model</t>
          </li>
          <li>
            <t>Reference Value Provider functionality is addressed through trust infrastructure and out-of-band mechanisms rather than protocol-level roles</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sample-disclosure-matching-algorithm-for-verifier">
      <name>Sample Disclosure Matching Algorithm for Verifier</name>
      <t>The Verifier of an SD-CWT needs to decode disclosed claims match them with their redacted versions.
The following example algorithm describes a way to accomplish this.</t>
      <ol spacing="normal" type="1"><li>
          <t>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.</t>
        </li>
        <li>
          <t>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.</t>
        </li>
      </ol>
      <ul empty="true">
        <li>
          <t>One possible concrete representation of the intermediate data structure for the Digest To Disclosed Claim Map is a CBOR map with the hash of the <tt>bstr-encoded-salted</tt> data structure (from the CDDL) as the map key and its value as the contents of the corresponding <tt>salted-entry</tt> data structure.</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="3"><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 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.</t>
        </li>
        <li>
          <t>The Verifier repeats the fourth step if the previous iteration resulted in any new Presented Disclosed Claims.</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.
Likewise, if this algorithm results in any duplicate CBOR map keys, the entire SD-CWT <bcp14>MUST</bcp14> be considered invalid.</t>
        </li>
      </ol>
      <ul empty="true">
        <li>
          <t>Note: If there are remaining digests without corresponding disclosures, this means that either the holder intentionally did not disclose a claim, or that the digest is a decoy digest <xref target="decoys"/>.</t>
        </li>
      </ul>
    </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-05">
        <name>draft-ietf-spice-sd-cwt-05</name>
        <ul spacing="normal">
          <li>
            <t>Added this change log (PR#150)</t>
          </li>
          <li>
            <t>Moved non-normative validation algorithm to an appendix (PR#149)</t>
          </li>
          <li>
            <t>Added appendix describing mapping to RATS concepts (#147)</t>
          </li>
          <li>
            <t>Provided guidance on choice of AEAD algorithm (#148)</t>
          </li>
          <li>
            <t>Fixed algorithm in COSE key examples (#145)</t>
          </li>
          <li>
            <t>Updated contact information (PR#142, PR #150)</t>
          </li>
          <li>
            <t>Removed SPICE from the title of the document (PR#139)</t>
          </li>
          <li>
            <t>Made clear extent to which verifiers cannot process unknown claims (PR#138)</t>
          </li>
          <li>
            <t>Sorted CBOR map keys in examples to facilitate use as test vectors (PR#135)</t>
          </li>
          <li>
            <t>Consistently use term "tag" in context of AEAD algorithms (PR#134)</t>
          </li>
          <li>
            <t>Improved AASVG diagram in Terminology section (PR#129)</t>
          </li>
        </ul>
      </section>
      <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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
if1+4rquMwIOFgaOm0QO/JWCHJok6QC+h8U4cV94keg7K3K6H4awsFESAATt
UZyKFLcAm3Xs/mDopYk/EEOgT647SGz46t9Gbv8PWhho8a+U+/3/U+T+L5vr
S+V+795idH+oxOgDwtR9+wAx9XgPMfV4/xgw9cjf7x94e8EhSNh7/h7oBcF+
han7gKAHEkGP3b39I/94HxH04HDkHCGC7iGCHgdH+/vBwf7+8Z9SD75kX8Pj
4GBwdMD4f7B3CPh/0D/c25P4f0z4f3RwBP/s23vDI9Wtvwdov+c5x/uDY0T7
fYX2B4D2R4D2x4j2Rwrt/0laBIwMCgyQUiCdoCyA0hC4QBjjfhiM7NBxnFEU
973IHzhJ6ADdHQxdxwPFPE2CJIojqUWc6Kpqt2gRNR2i0iCAquHfUn+4By+t
VAbZFQXmq2vxc/FCnPw9eHn666D3LJ2WL15deE/FdJ5cL148K29+PYyn5xfD
3y6nPXt6/vsvz36dnsx/PP8QLcpi+QHHQSn6V/e6d+0ez5/9YHtnR+5v5/3k
+PX1+PjXwv85uPrt1eSH/Xf5dc/rnR4//945eHdSHP/iu2f9+G0fJNR3P+I4
sJGNOH738iR7epb+9vOpe30yGb58nYy8Z9+/2r9+9ar3Jvnpt4N89tMkPYg/
XCYvTgfDN2/7r0fvepOgyNI3yYtVRUPC+As0DAJTU8O4L8A66yH2IIB11kKs
XRkxtnuLFuIME1BtQAwP/ATUEA8YuDcauIkAvhGmfZEkoBa7Q2RqrkjjNBzZ
dhyEwFL63mDo19G3Tf14+vIsKa9AMD1++fe+H5eDWXh5VnrPrvK/D94sP7z+
7c3h0/nryaE43quN9eXqx7Ofr472aurH8Q/9o6O9g5PDn0H1qJ/bk5Vz65iY
/sQ8tx06tx04sCe3HViHT+yJ92TNgd2hoygA/CkdxWUdZa+mo+yfLvf39/ay
/ZOnAtpE8Nn+/uH+9fWPdnbyy8sn88nz6Ch7dtWxR54Xx+f9Z0f9gb/vhPkP
WRIeD7///cnIvn5+eb3/bLzj/D149tvN96N9+2byy97LbG/v7PDYz66u+5O0
kzs/vL7sJ09+sq+CKP4l+GnqPS2uhPfDi5c3P51GN789+fvg9Kezl+fi1Y/Z
9PT/re7atts2rui7vgJLfjDpkpQty02qrnRVjuw4qRWrkpyspg8hSEASIgpg
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
AA==

-->

</rfc>
