<?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-06" 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-06"/>
    <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="2026" month="January" day="13"/>
    <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 : 293, # application/sd-cwt
    / sd_alg / 170 : -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'536b3797c8f396d6dc4fedfa54fa605f
                      be897df02267ede5b40b257cba5eb2b3
                      cbf7d4f5733e0ca2e77783d860b8d74a
                      2b98878930be6c8e3d1de63df909d484
                      2a800f9d377fa41e9bd5f72743c06cfb
                      1e5d59892fac51a806cd4caf6cb30cce'
])
]]></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.
If the Holder does not disclose any claims, it <bcp14>MUST</bcp14> omit the <tt>sd_claims</tt> header parameter.</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:  294   # 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'67116f888eab35fe82c171db146262c9
                      922fb3d4fd769641c80569e3c6010f90
                      251fa2b1dd335bc6bd8314603f57fd03
                      af7ddb5eb4cce1e59ac07d11dfdce742'
])   / 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="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 293,
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.
The Issuer <bcp14>SHOULD</bcp14> use the value 293 instead of <tt>application/sd-cwt</tt>, as the CBOR representation is considerably smaller (3 bytes versus of 19).</t>
      <t>An SD-CWT is a format based on CWT, but it allows some additional types in maps to indicate values that were or should be redacted, and includes some additional constraints to improve robustness.
Unlike CWT, SD-CWT requires key binding.</t>
      <t>An SD-CWT can contain blinded claims (each expressed as a Blinded Claim Hash), at the root level or in any arrays or maps inside that claim set.
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 is not present in the unprotected header.</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 value 59 registered for that purpose.</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 60.</t>
        <sourcecode type="cddl"><![CDATA[
; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Blinded Claim Hashes whose corresponding unblinded map keys
; and values are in the same map.
redacted_claim_keys = #7.59  ; CBOR simple value 59

; CBOR tag for wrapping a redacted element in an array
REDACTED_ELEMENT_TAGNUM = 60

; redacted_claim_element is used in CDDL payloads that contain
; array elements that are meant to be redacted.
redacted_claim_element = #6.<REDACTED_ELEMENT_TAGNUM>( 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="cwt-diffs">
      <name>Differences from the CBOR Web Token Specification</name>
      <t>The following subsections discuss differences between CWT and SD-CWT or clarify ambiguities in CWT.
Some of these changes are necessary to enable the new functionality of SD-CWT, while some constraints were made in the interest of more robustness.</t>
      <ul empty="true">
        <li>
          <t>Variability in serialization can also be exploited to impact privacy.
See <xref target="security"/> for more details on the privacy impact of serialization and profiling.</t>
        </li>
      </ul>
      <section anchor="definite-length-cbor-required">
        <name>Definite Length CBOR Required</name>
        <t>Encoders of SD-CWT and SD-KBT <bcp14>MUST NOT</bcp14> send indefinite length CBOR.
Decoders of SD-CWT and SD-KBT <bcp14>MUST</bcp14> reject any SD-CWT or SD-KBT received containing indefinite length CBOR.</t>
      </section>
      <section anchor="finite-values-for-standard-date-claims">
        <name>Finite values for standard date claims</name>
        <t>The standard CWT claims <tt>exp</tt>, <tt>nbf</tt>, and <tt>iat</tt> <bcp14>MUST</bcp14> be finite numbers.
For the avoidance of doubt, not a number (NaN) values and positive and negative infinity are not acceptable in those claims.</t>
        <ul empty="true">
          <li>
            <t>In <xref target="RFC8392"/>, these three claims are of type <tt>NumericDate</tt>.
Section 2 of the same spec refers to <tt>NumericDate</tt> as a JWT <tt>NumericDate</tt>, "except that it is represented as [an untagged] CBOR numeric date (from <xref section="2.4.1" sectionFormat="of" target="RFC7049"/>) instead of a JSON number".
In CBOR, a NumericDate can be represented as an unsigned integer, a negative integer, or a floating point value.
CBOR (both <xref target="RFC7049"/> and <xref target="RFC8949"/>) refers to floating-point values to include NaNs, and floating-point numbers that include finite and infinite numbers.
Neither JSON <xref target="RFC8259"/> nor JWT <xref target="RFC7519"/> can represent infinite values.</t>
          </li>
        </ul>
        <t>As IEEE double-precision floating point numbers smaller than -(2^53) and larger than 2^53 are no longer as precise as CBOR integers, use of floating point values outside this range are FORBIDDEN.</t>
      </section>
      <section anchor="allowed-types-of-cbor-map-keys">
        <name>Allowed types of CBOR map keys</name>
        <t>According to Section 1.1 of the CBOR Web Token Specification <xref target="RFC8392"/>, "CBOR uses text strings, negative integers, and unsigned integers as map keys."
Section 1.5 of CBOR Object Signing and Encryption (COSE): Structures and Process <xref target="RFC9052"/> states: "In COSE, we use text strings, negative integers, and unsigned integers as map keys."
While a CBOR map key can contain any CBOR type, this statement implies that CWT map keys only contain those types.</t>
        <t>An SD-CWT payload is typically its COSE payload.
<xref target="RFC9597"/> also defines the <tt>CWT Claims</tt> COSE Header Parameter (value 15) that can appear in the protected headers; if it exists, it contains a CBOR map with additional claims that are treated as if they were in the SD-CWT payload.
Both of these maps are described as SD-CWT Claims Maps.</t>
        <ul empty="true">
          <li>
            <t>Note that <tt>CWT Claims</tt> is a separate CBOR map from the COSE payload and can contain the same Claim Keys as the COSE payload CBOR map.</t>
          </li>
        </ul>
        <t>The same valid CWT claim keys could be present in both SD-CWT Claims Maps, but if so, they <bcp14>MUST</bcp14> have the same unblinded value.
Neither, one, or both could be redacted.
If both are redacted they would have different disclosures, salts, and Blinded Claim Hashes.</t>
        <t>In addition to map keys that are valid in CWT, SD-CWT Claims Maps <bcp14>MAY</bcp14> contain the CBOR simple value registered in this specification in <xref target="simple59"/>.
In SD-CWTs exchanged between the Holder and the Issuer prior to issuance, map keys <bcp14>MAY</bcp14> also consist of the To Be Redacted tag (defined in <xref target="tbr-tag"/>), containing an integer or text string; or a To Be Decoy tag (defined in <xref target="tb-decoy-tag"/>), containing a positive integer.
These two tags provide a way for the Holder to indicate specific claims to be redacted or decoys to be inserted.</t>
        <t>The following list summarizes the map key constraints on SD-CWTs and SD-KBTs:</t>
        <ul spacing="normal">
          <li>
            <t>The SD-KBT protected headers <tt>kcwt</tt> Header Parameter exclusively contains:
            </t>
            <ul spacing="normal">
              <li>
                <t>a single valid SD-CWT</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The SD-KBT protected headers <bcp14>MUST NOT</bcp14> contain a <tt>CWT Claims</tt> Header Parameter.</t>
          </li>
          <li>
            <t>The SD-KBT payload map; unprotected headers map; and protected headers map (excluding the <tt>kcwt</tt> Header Parameter) exclusively contain map keys (at any level of depth) with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers</t>
              </li>
              <li>
                <t>negative integers</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The SD-CWT unprotected headers map; and the protected headers map (excluding the <tt>CWT Claims</tt> Header Parameter) exclusively contain map keys (at any level of depth) with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers</t>
              </li>
              <li>
                <t>negative integers</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets</t>
              </li>
            </ul>
          </li>
          <li>
            <t>The SD-CWT Claims Maps at any level of depth, exclusively contain map keys with the following map key types:
            </t>
            <ul spacing="normal">
              <li>
                <t>unsigned integers;</t>
              </li>
              <li>
                <t>negative integers;</t>
              </li>
              <li>
                <t>text strings with a length no greater than 255 octets;</t>
              </li>
              <li>
                <t>the simple value 59; or</t>
              </li>
              <li>
                <t>when disclosable claims are communicated to the Issuer, prior to issuance:
                </t>
                <ul spacing="normal">
                  <li>
                    <t>the To Be Decoy tag 62 <xref target="tb-decoy-tag"/> containing a positive integer, or</t>
                  </li>
                  <li>
                    <t>the To Be Redacted tag 58 <xref target="tbr-tag"/> containing:
                    </t>
                    <ul spacing="normal">
                      <li>
                        <t>an unsigned integer,</t>
                      </li>
                      <li>
                        <t>a negative integer, or</t>
                      </li>
                      <li>
                        <t>a text strings with a length no greater than 255 octets.</t>
                      </li>
                    </ul>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <t>In other words, there are exactly three places that can contain map keys (including values that might contain nested maps) with the SD-CWT values that are not allowed in a CWT:</t>
        <ul spacing="normal">
          <li>
            <t>in the payload Claims Map of an SD-CWT</t>
          </li>
          <li>
            <t>in the <tt>CWT Claims</tt> Header Parameter Claims Map in the protected headers of an SD-CWT</t>
          </li>
          <li>
            <t>in the <tt>kcwt</tt> Header Parameter of an SD-KBT (in one of the embedded SD-CWT Claims Maps).</t>
          </li>
        </ul>
        <t>All the other Header Parameters, and the KBT payload need to contain values valid in a CWT.
These values are represented by the <tt>safe-value</tt> CDDL type.</t>
        <sourcecode type="cddl"><![CDATA[
; CWT claim legal values only
safe_map = { * label => safe_value }

safe_value =
  int / tstr / bstr /
  [ * safe_value ] /
  safe_map /
  #6.<safe_tag>(safe_value) / #7.<safe_simple> / float


; legal values in issued SD-CWT
issued_sd_cwt_map = {
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

issued_array_element = redacted_claim_element / issued_sd_cwt_value

issued_sd_cwt_value =
  int / tstr / bstr /
  [ * issued_array_element ] /
  issued_sd_cwt_map /
  #6.<safe_tag>(issued_sd_cwt_value) / #7.<safe_simple> / float


; legal values in claim set sent to Issuer
preissuance_label = label /
                    #6.<TO_BE_REDACTED_TAGNUM>(label) /
                    #6.<TO_BE_DECOY_TAGNUM>(int .gt 0)

preissuance_map = { * preissuance_label => preissuance_value }

preissuance_value =
  int / tstr / bstr /
  [ * preissuance_value ] /
  preissuance_map /
  #6.<safe_tag>(preissuance_value) / #7.<safe_simple> / float

; CBOR tag number for wrapping to-be-redacted keys or elements
TO_BE_REDACTED_TAGNUM = 58
; CBOR tag number for indicating a decoy value is to be inserted here
TO_BE_DECOY_TAGNUM = 62

label = int / tstr .size (1..255)
safe_tag = uint .ne (TO_BE_REDACTED_TAGNUM /
                     TO_BE_DECOY_TAGNUM /
                     REDACTED_ELEMENT_TAGNUM)
safe_simple =  0..23 / 32..58 / 60..255  ; exclude redacted keys array
secs = int / float53
float53 = -9007199254740992.0..9007199254740992.0 ; from 2^53 to 2^53
]]></sourcecode>
        <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 map key are not permitted.</t>
      </section>
      <section anchor="duplicate-map-key-detection">
        <name>Duplicate map key detection</name>
        <t>Implementations <bcp14>MUST NOT</bcp14> send multiple map keys inside the same CBOR map having the same CBOR Preferred Encoding (see <xref section="4.1" sectionFormat="of" target="RFC8949"/>).
This applies to any map anywhere in an SD-CWT or an SD-KBT.</t>
        <ul empty="true">
          <li>
            <t>Note that it is not necessary to actually encode the map keys using Preferred Encoding to satisfy this requirement.</t>
          </li>
        </ul>
        <t>Likewise, a single SD-CWT claim set <bcp14>MUST NOT</bcp14> contain a map (at any level of depth) with both a map key <tt>k</tt>, and <tt>k</tt> tagged with the To Be Redacted tag (see <xref target="tbr-tag"/>).
Map keys and their To Be Redacted tagged verison are considered duplicate map keys for the purposes of this specification.</t>
        <t>For example, if the map below is contained inside a payload, it is invalid because the map key 500 and the map key 58(500) cannot both be present.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  500: "ABCD-123456",     # map key 500
  58(500): "DEFG-456789"  # to be redacted tag containing 500
}
]]></sourcecode>
      </section>
      <section anchor="level-of-nesting-of-claims">
        <name>Level of Nesting of Claims</name>
        <t>Selective disclosure of deeply nested structures (exceeding a depth of 16 levels), is <bcp14>NOT RECOMMENDED</bcp14> as it could lead to resource exhaustion vulnerabilities.</t>
        <t>The individual map key / value pairs in a Claim Set are defined as the "top level", or level 1.
For each value that is an array, a map, or a tagged item, each of the elements of the array, each value corresponding to each map key in the map, and the tagged item are at the next level of depth.</t>
        <t>For example, considering the following abbreviated document, the following table shows the level of depth of the corresponding values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Level</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">https://issuer.example</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">1549560720</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">DCBA-101777</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">us</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">27315</td>
            </tr>
          </tbody>
        </table>
        <sourcecode type="cbor-diag"><![CDATA[
{                                   # contents are level 1
  1: "https://issuer.example",
  ...
  502: 1(1549560720),               # tagged value is level 2
  504: [                            # contents are level 2
    {                               # contents are level 3
      ...
      501: "DCBA-101777",
      503: {                        # contents are level 4
        1: "us",
        ...
      },
      505: 4(                       # decimal fraction tag
        [                           #   273.15
          -2,
          27315                     # level 5
        ]
      )
    },
    ...
  ]
}
]]></sourcecode>
        <t>The contents of the top-level claims map are level 1.
The contents of the array for map key 504 are level 2.
The contents of the map inside that array are level 3 (ex: the value of map key 505).
The value of tag 4 is at level 4.
The values in the array inside tag 4 are at level 5.</t>
      </section>
      <section anchor="use-of-structured-suffixes">
        <name>Use of Structured Suffixes</name>
        <t>Any type which contains the <tt>+sd-cwt</tt> structured suffix <bcp14>MUST</bcp14> be a legal SD-CWT.
A type that is a legal CWT and does not contain any blinded claims <bcp14>SHOULD</bcp14> use the <tt>+cwt</tt> structure suffix instead, unless the CBOR map being secured contains claim keys with different semantics than those registered in the CBOR Web Token Claims IANA registry.</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>If no Salted Disclosed Claims or Decoys are present, 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 omitted.
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) ^ => 293 / "application/sd-cwt",
   &(alg: 1) ^ => int,
   ? &(kid: 4) ^ => bstr,
   ? &(CWT_Claims: 15) ^ => issued_sd_cwt_map,
   ? &(sd_alg: 170) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: 172) ^ => uint .size 2,
   * label => safe_value
}

sd-unprotected = {
   ? &(sd_claims: 17) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: 171) ^ => aead-encrypted-array,
   * label => safe_value
}

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) ^ => secs, ; 1883000000
    ? &(nbf: 5) ^ => secs, ; 1683000000
    ? &(iat: 6) ^ => secs, ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => safe_map, ; key confirmation
    ? &(vct: 11) ^ => bstr,
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}
]]></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.
If there is nothing to be disclosed, the <tt>sd_claims</tt> header parameter is omitted.</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 294.
The Holder <bcp14>SHOULD</bcp14> use the value 294 instead of <tt>application/kb+cwt</tt>, as the CBOR representation is considerably smaller (3 bytes versus of 19).</t>
        <t>The SD-KBT <bcp14>MUST NOT</bcp14> be valid for any time period when its contained SD-CWT is invalid.</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) ^ => 294 / "application/kb+cwt",
   &(alg: 1) ^ => int,
   &(kcwt: 13) ^ => sd-cwt-issued,
   * label => safe_value
}

kbt-unprotected = {
   * label => safe_value
}

kbt-payload = {
      &(aud: 3) ^ => tstr, ; "https://verifier.example/app"
    ? &(exp: 4) ^ => secs, ; 1883000000
    ? &(nbf: 5) ^ => secs, ; 1683000000
      &(iat: 6) ^ => secs, ; 1683000000
    ? &(cnonce: 39) ^ => bstr,
    * label => safe_value
}
]]></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="binding-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 checks the time claims in the SD-CWT as follows:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><tt>nbf</tt> &lt;= <tt>iat</tt> (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> &lt;  <tt>exp</tt> (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> &lt;  <tt>exp</tt> (if both exist)</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="4"><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 checks the time claims in the SD-KBT as follows:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t><tt>nbf</tt> in the SD-KBT &lt;= <tt>iat</tt> in the SD-KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-KBT &lt;  <tt>exp</tt> in the SD-KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>exp</tt> in the SD-KBT &lt;= <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-KBT &gt;= <tt>iat</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-KBT &lt;= <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-KBT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="7"><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="8"><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.
Once any remaining redacted elements (either redacted claims or decoys) are deleted, the Validated Disclosed Claims Set is now a CWT Claims Set with no claims marked for redaction.  </t>
          <ul empty="true">
            <li>
              <t>Note: Undisclosed Redacted Claim Elements will be removed from the Validated Disclosed Claims Set, changing the length of the array.
If the semantics of the position of items in the array is important, the issuer should instead disclose or redact the entire array.</t>
            </li>
          </ul>
        </li>
      </ol>
      <ol spacing="normal" type="1" start="10"><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>An Issuer <bcp14>MAY</bcp14> add additional digests to the SD-CWT payload (including nested maps and arrays within the payload) that are not associated with any unblinded claim.
The purpose of such "decoy" digests is to make it more difficult for an adversarial Verifier to infer private information based on the number of Redacted Claim Keys or Redacted Claim Elements.</t>
      <t>The list of disclosures sent by the Issuer to the Holder contains one disclosure for each decoy digest.
Each disclosure contains a single element array with a per-decoy salt.</t>
      <sourcecode type="cbor-diag"><![CDATA[
<<[ h'C1069BC056E234D64F58BAFF8A7B776B' ]>>
]]></sourcecode>
      <t>The Blinded Claim Hash for each disclosure is calculated using the same algorithm for decoys as for Redacted Claim Keys and Redacted Claim Elements.
An example issued SD-CWT containing decoy digests is shown below.</t>
      <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 : 293, # application/sd-cwt
    / sd_alg / 170 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'2bfeab9315829fe0c82a15b2c57a47b2',
            /value/  "fr"   / France /
        ]>>,
        <<[
            /salt/   h'c1069bc056e234d64f58baff8a7b776b',
        ]>>,
        <<[
            /salt/   h'b0392772caefd08178218f86f3e2b3a9',
            /value/  true,
            /claim/  500   / inspection result /
        ]>>,
        <<[
            /salt/   h'89c41c270dd06cd3517d371c9ddf2bab',
        ]>>,
    ]
  },
  / 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'
      }
    },
    /countries array/ 98: [
        /redacted country == "fr" /
        60(h'dc5f753b66acd89d78481039934a86cc
             14f9959c64c4037dea3f872b9a8453f1')
        /decoy country #1 /
        60(h'3f80963a1246b412d6567f2a5ca446fd
             19a01dd8cfc291bed69e8c575c5abfb8')
    ],
    / redacted_claim_keys / simple(59) : [
        / redacted claim 500 (== true) /
        h'bd0fd88127b3071ff5433eef59a5e3c5
          f18341f25c5bd119c41fd34802a9797b'
        / decoy claim #2 /
        h'eeec970897a5b9108f24f44751baedab
          b53a1f3d241ab6b60c9f309f114ecf88'
    ]
  } >>,
  / CWT signature / h'fd0b7edae0fa5bd429f07809762a32c5
                      c160c089091a5c3abbee91710fa388d8
                      3c1ad6a5a3d219c4265b9f89aef1f511
                      ff362cbbea6f46bae08978822b672aa5
                      75cd6fc519394af2a883c394faf16ac1
                      781afb01f626bdd6fee1205a29dcc203'
])
]]></sourcecode>
    </section>
    <section anchor="tags-used-before-sd-cwt-issuance">
      <name>Tags Used Before SD-CWT Issuance</name>
      <t>This section describes the semantics of two CBOR tags that are (optionally) only used to convey information to the Issuer about disclosures to create.</t>
      <section anchor="tbr-tag">
        <name>To Be Redacted Tag Definition</name>
        <t>In order to indicate specific claims that must be redacted in a Claim Set, this specification defines a new CBOR tag "To Be Redacted".
The tag 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>
        <t>When used on an element in an array, the value to be redacted is present inside the tag.
When used on a map key and value, the tag is placed around the map key, while the map value remains.</t>
        <t>Examples in this draft use the To Be Redacted tag in order to distinguish their pre-issued, post-issued, and post-presented representations in EDN and CDDL.
The snippet of EDN shown below shows one mechanism to communicate to the Issuer to redact the inspector license number claim, and two of the inspection dates in our primary example.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  ...
  58(501): "ABCD-123456",   # redact inspector license number claim
  /inspection dates/ 502: [
    58(1549560720),         # redact 07-Feb-2019
    58(1612560720),         # redact 04-Feb-2021
    1674004740              # don't redact 17-Jan-2023
  ]
  ...
}
]]></sourcecode>
      </section>
      <section anchor="tb-decoy-tag">
        <name>To Be Decoy</name>
        <t>In order to indicate a location that should contain a decoy digest <xref target="decoys"/> in the issued SD-CWT, this specification defines a new CBOR tag "To Be Decoy".
This tag can be used by a library to automatically a) add a decoy digest at a particular location in an array, or at a particular level in a map; and b) create the corresponding Salted Disclosed Claims.
The value inside is a positive integer that <bcp14>MUST</bcp14> be unique for each decoy location within the SD-CWT.
The integer could be used to look up the salt for the decoy deterministically, but does not impose any ordering.
When a decoy digest is requested in a map, the map value is always <tt>null</tt>.</t>
        <t>In the example fragment below, the transit countries claim contains an array of countries.
The Claim Elements array contains Germany (de) and the Philippines (ph).
The Holder wants to redact each country, but add decoys to obfuscate the number of component origin countries.
The example fragment also shows two decoy digests in the same map.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  ...
  /component origin countries/ 607: [
    58("de"),
    58("ph"),
    62(1),      # add two decoys in this array
    62(2)
  ],
  62(3): null,  # add a decoy in this map
  62(4): null,  # add a second decoy in the same map
  ...
}
]]></sourcecode>
      </section>
    </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>), if present, contains a non-empty 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 / 171 : [ / 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 : 293, # application/sd-cwt
        / sd_alg / 170 : -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'536b3797c8f396d6dc4fedfa54fa605f
                          be897df02267ede5b40b257cba5eb2b3
                          cbf7d4f5733e0ca2e77783d860b8d74a
                          2b98878930be6c8e3d1de63df909d484
                          2a800f9d377fa41e9bd5f72743c06cfb
                          1e5d59892fac51a806cd4caf6cb30cce'
    ]),
    / end of issuer SD-CWT /
    / typ /   16:  294   # 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'67116f888eab35fe82c171db146262c9
                      922fb3d4fd769641c80569e3c6010f90
                      251fa2b1dd335bc6bd8314603f57fd03
                      af7ddb5eb4cce1e59ac07d11dfdce742'
])   / 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="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>
        <t>Finally, the Verifier <bcp14>MUST</bcp14> verify that the time claims in both the SD-CWT and SD-KBT are self-consistent and that the SD-KBT is not valid for any period of time when the SD-CWT is not.
Specific tests for time claims are described in steps 3 and 6 of <xref target="binding-validation"/>.
Likewise, if there is a notion of SD-CWT revocation, an SD-KBT containing a revoked SD-CWT is not valid.</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: 17</t>
            </li>
            <li>
              <t>Value Type: <tt>[ +bstr ]</tt></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: 170</t>
            </li>
            <li>
              <t>Value Type: <tt>int</tt></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: 171</t>
            </li>
            <li>
              <t>Value Type: <tt>[ +[bstr,bstr,bstr] ]</tt></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: 172</t>
            </li>
            <li>
              <t>Value Type: <tt>uint .size 2</tt></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: 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: 58</t>
            </li>
            <li>
              <t>Data Item: (any)</t>
            </li>
            <li>
              <t>Semantics: An array claim element intended to be redacted, or a map key whose key and value are 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: 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 anchor="to-be-decoy-tag">
          <name>To Be Decoy Tag</name>
          <t>The positive integer inside the tag is a unique number to indicate a specific decoy instance among all the instances in the document.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: 62 (requested)</t>
            </li>
            <li>
              <t>Data Item: <tt>uint .gt 0</tt></t>
            </li>
            <li>
              <t>Semantics: A marker of a location in a map or an array where a decoy is intended to be inserted.</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="tb-decoy-tag"/> 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: 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">293</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">294</td>
              <td align="left">
                <xref target="kbt"/> of this specification</td>
            </tr>
          </tbody>
        </table>
      </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 can be initiated by the party requesting registration
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="6" month="November" 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-13"/>
        </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="RFC7049">
          <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="October" year="2013"/>
            <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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7049"/>
          <seriesInfo name="DOI" value="10.17487/RFC7049"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC9597">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author fullname="T. Looker" initials="T." surname="Looker"/>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document describes how to include CBOR Web Token (CWT) claims in the header parameters of any CBOR Object Signing and Encryption (COSE) structure. This functionality helps to facilitate applications that wish to make use of CWT claims in encrypted COSE structures and/or COSE structures featuring detached signatures, while having some of those claims be available before decryption and/or without inspecting the detached payload. Another use case is using CWT claims with payloads that are not CWT Claims Sets, including payloads that are not CBOR at all.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9597"/>
          <seriesInfo name="DOI" value="10.17487/RFC9597"/>
        </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 2015?>

<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) ^ => 293 / "application/sd-cwt",
   &(alg: 1) ^ => int,
   ? &(kid: 4) ^ => bstr,
   ? &(CWT_Claims: 15) ^ => issued_sd_cwt_map,
   ? &(sd_alg: 170) ^ => int,        ; -16 for sha-256
   ? &(sd_aead: 172) ^ => uint .size 2,
   * label => safe_value
}

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

sd-unprotected = {
   ? &(sd_claims: 17) ^ => salted-array,
   ? &(sd_aead_encrypted_claims: 171) ^ => aead-encrypted-array,
   * label => safe_value
}

kbt-unprotected = {
   * label => safe_value
}

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) ^ => secs, ; 1883000000
    ? &(nbf: 5) ^ => secs, ; 1683000000
    ? &(iat: 6) ^ => secs, ; 1683000000
    ? &(cti: 7) ^ => bstr,
      &(cnf: 8) ^ => safe_map, ; key confirmation
    ? &(vct: 11) ^ => bstr,
    ? &(cnonce: 39) ^ => bstr,
    ;
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

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

; CWT claim legal values only
safe_map = { * label => safe_value }

safe_value =
  int / tstr / bstr /
  [ * safe_value ] /
  safe_map /
  #6.<safe_tag>(safe_value) / #7.<safe_simple> / float


; legal values in issued SD-CWT
issued_sd_cwt_map = { 
    ? redacted_claim_keys ^ => [ * bstr ],
    * label => issued_sd_cwt_value
}

issued_array_element = redacted_claim_element / issued_sd_cwt_value

issued_sd_cwt_value =
  int / tstr / bstr /
  [ * issued_array_element ] /
  issued_sd_cwt_map /
  #6.<safe_tag>(issued_sd_cwt_value) / #7.<safe_simple> / float


; legal values in claim set sent to Issuer
preissuance_label = label /
                    #6.<TO_BE_REDACTED_TAGNUM>(label) /
                    #6.<TO_BE_DECOY_TAGNUM>(int .gt 0)

preissuance_map = { * preissuance_label => preissuance_value }

preissuance_value =
  int / tstr / bstr /
  [ * preissuance_value ] /
  preissuance_map /
  #6.<safe_tag>(preissuance_value) / #7.<safe_simple> / float


label = int / tstr .size (1..255)
safe_tag = uint .ne (TO_BE_REDACTED_TAGNUM /
                     TO_BE_DECOY_TAGNUM / 
                     REDACTED_ELEMENT_TAGNUM)
safe_simple =  0..23 / 32..58 / 60..255  ; exclude redacted keys array
secs = int / float53
float53 = -9007199254740992.0..9007199254740992.0 ; from 2^53 to 2^53

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
]

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
]

; CBOR tag number for wrapping to-be-redacted keys or elements
TO_BE_REDACTED_TAGNUM = 58
; CBOR tag number for indicating a decoy value is to be inserted here
TO_BE_DECOY_TAGNUM = 62
; CBOR tag for wrapping a redacted element in an array
REDACTED_ELEMENT_TAGNUM = 60

; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Blinded Claim Hashes whose corresponding unblinded map keys
; and values are in the same map.
redacted_claim_keys = #7.59  ; CBOR simple value 59

; redacted_claim_element is used in CDDL payloads that contain
; array elements that are meant to be redacted.
redacted_claim_element = #6.<REDACTED_ELEMENT_TAGNUM>( bstr )
]]></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>
        <t>In SD-CWT, all decoy digests are disclosed between the Issuer and the Holder.
In SD-JWT, no disclosure is sent for a decoy digest.</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 anchor="python-prototype">
        <name>Python Prototype</name>
        <t>Organization: Tradeverifyd</t>
        <t>Name: <eref target="https://github.com/tradeverifyd/sd-cwt">github.com/tradeverifyd/sd-cwt</eref></t>
        <t>Description: An open-source Python implementation of this specification.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version does not implement decoys, but does verify the test vectors in draft-ietf-spice-sd-cwt-05.</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>
    <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-06">
        <name>draft-ietf-spice-sd-cwt-06</name>
        <ul spacing="normal">
          <li>
            <t>Refactored deterministic draft generation code (PR#152).</t>
          </li>
          <li>
            <t>Added pointer to a Python implementation (PR#155).</t>
          </li>
          <li>
            <t>Added decoy digests (PR#157).</t>
          </li>
          <li>
            <t>Addressed early IANA feedback about the escalation process (PR#160).</t>
          </li>
          <li>
            <t>Used the CoAP Content Type in the examples instead of the text strings "application/sd-cwt" and "application/kb+cwt" (PR#162).</t>
          </li>
          <li>
            <t>Added a section on specific CBOR encoding and data model considerations (PR#163).</t>
          </li>
          <li>
            <t>Swapped the order of Sections 5 and 6 (PR#167).</t>
          </li>
          <li>
            <t>Split the CDDL definitions for payload maps in Issued CWT and pre-issued (PR#168).</t>
          </li>
          <li>
            <t>Used the IANA early assigned values in the draft (PR#169).</t>
          </li>
          <li>
            <t>Defined the To Be Decoy tag (PR#171).</t>
          </li>
          <li>
            <t>Made use of the CoAP Content Type a <bcp14>SHOULD</bcp14> (PR#172).</t>
          </li>
          <li>
            <t>Made the draft generation code agnostic to hash algorithm (PR#173)</t>
          </li>
          <li>
            <t>Added time claim verification rules and security considerations (PR#175)</t>
          </li>
          <li>
            <t>Instead of an empty array, <tt>sd_claims</tt> is now omitted if empty (PR#176)</t>
          </li>
          <li>
            <t>Update the COSE header values to use their newly assigned values (also PR#176)</t>
          </li>
          <li>
            <t>Fix some kramdown-xml bracket errors (PR#177)</t>
          </li>
          <li>
            <t>Add IANA Considerations for To Be Decoy tag (PR#180)</t>
          </li>
          <li>
            <t>Clarify that remaining redacted claims are removed in validated claim set (PR#181)</t>
          </li>
          <li>
            <t>Restrict floating point dates to -2^53 to 2^53 (PR#182)</t>
          </li>
          <li>
            <t>Rename CDDL production using a standard prelude name (PR#183)</t>
          </li>
        </ul>
      </section>
      <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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
ity/aQu9iiFmhXAC1mj8G1cnyzRIysiPkioRcV2HdSJkOIeLm+ZRmcsbAVyK
m+C6h2R3tWRPXf792ydi0QD9WzbipnXrghKf+yg44n/KX97dB5Xb390Pldt/
uS8q9/9yf1S1vy/2SeX+Y36p6ptdvqn89W3+qWqQW3xUudXv4KeKP/fwVeV5
fwd/Vfy5q88q/nw2v3920Oh81XbvUSZfdu+tz8j7C4Hy7BGX2uo7gzuuJe+t
a0nPj5P36LiZ9XxRdtMJ8kcNiqyGO17WcRGEcz8LwhjIaximpQ+w9aNtcBSx
EAF8n/pAHKIC4BACSS4jOICojurq4cEQ/DuXZt1YxpaWxqIuyyrCY61E7CdR
OBfVHMiUDOoiSreXlqPHZ5zXVV1lcxmJwM9lnSc5ULNABnE6XJr1mzmkhaJn
zNQPpkH2NsiOgzlcIlcX7NID51iMnwUeTbR1hfaUqX/PU/V++sD5edlQrq6O
1C/DG3Mvh94RiDPNHSm1efbQr+Iih0MLozrMMxGk8xxof1UESZbCcxmPXAQB
96QusjhM/VQCmH1fhkHsp0laCL+qexdgaynoZyYW7ylIemw9pV9kWZzV89Sv
y1ACwpZxFWdAE9DvNB5zUi2yHE65yNIc7m6M6rOqzOeABHmd5EFSu+t5N3oh
7w/gbXS+jVs4eyjqCOlcVBciqPwcaHeexmHp+4XMirDOBlsrCj8p51VeF2mA
nt+RXwFG10WcBqlI5w6YzSu5xav1nZuTKC0i4JvKvI6A6KVVCUCtapHEtUj9
pL6B6BUyB4JQA8lNM2DmkyL2izDJykIkQL6LEQJhfsqizqq4TrIokn4pQpll
WQ7EM/WLvMriHQoh+gmLeQ5Edh4BiFKgT1EVVBKOt5778yrOx5DTdBW579fz
KsqyWsSBnBdVUmdhFkeln5Z1cUPXQAILNM/nYS3KJIBx0rKKS1GnJTBuZSmV
5vfABKgsKXXSmGhg2fIgBSkC0wF5A7ac8wEdar90rzdmX35RypMjI9oMWHEV
oePmsemLPJuKf+Eqc8e35PPR+0Omg7ul3E1zHhFJTVucR5QpzsOz4TDKWhDN
eQR4+Eu/TuokjIp5UkgRx2IuYiBE8TyM/dwn7LYAGUBEb85st4/naRYEaZ3n
uRRFlNQyD8sgC4CmxWmYAl+x4+znwE8UEaBqlaVz4EHK3E9SeEDgjQsAlfwd
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
dlBrw++dXk/+vRzsdnfKS2e51+2cnFyn50Zu/eT4dHPaOex1Omfbl0dR+ItX
ub8/fWg83O582//Q/7LX22/3zzu3ubnT+vzQeriZXX5o7F9Ud2ejh3A4dU9+
2/vwxR//cnQ7vzw5rpxMjz8Hu7+c1uu/3frLnYvDvtE16UZR32iqwpwQWmYY
ww+SAdgHgymcECP34UT2YnmwrQovN6pA38FFNJ7WBABsecvbKrn5SdWYVnW9
Qmb1cbVVSxloNhlo6rppoHkwu9ott+w1W6360KnW7dbQHbbAmKq7Na/qNHyw
rJy6AwZcw62Wm2lzym3aLa/ahJXLbgxtxw3qQ7fWbtQ8v10JYAq3nHqtXR02
AtdteK47XDXgWsOGB6tJs1FptGEy+9Vmzav5jtOutpq1ehVMwHK9BVYt/M8t
O60gXYNWzSnX6061MnSbw7ZdqaG5WW7Xbdur1NtBs1GD5lQqQaXSgKv12qpd
3qx49Zpv23alDSuY06jYvluBX0OwQ31/2IT7UJmKVwuqblCrrNjpdceBirX9
BvRgue0NgyE2ARpbKdearerQrzeDFugn2276Zbj1v8Zu/z+xMMTif9Lur/+r
2P1/7lt/1u6vvtiMrrWUGd0jSe2Weyip2x2U1O3uNkjqoN6t9aqdRh8s7E69
A/uCRjeW1C4IaE8EdNvudAf17S4KaK/frgxQQDsooNuNQbfb6HW7239pe/Bn
2tXabvSagx7Lf6/TB/nv1fqdjsj/Nsn/oDeA/3XLndZAvVbrgNh3qpXtbnMb
xb6rxL4HYj8Asd9GsR8osf9v2kVAybCBAVUKqhM2C7BpaNigGL2a02iXnUql
0na9WtWtNyu+UwG922zZlSpszId+w3c9V3YRe5ro9YldRGIPEe8gQKvhb9k/
vGAtjbcM8ioazMuH4HN0EOz90jg8+7VZ2h2O5wdHd9WdYDz1H2YHu/PHX/ve
+Pau9e1+XCqPb3/7svvreG96cfvVnc2jxVcsB63oX+2H0oO9Pd39WK6eD+xv
tzV/+/jhevvXqP65sfx2dPOxezl5KFVLZ9v7Hyq9y71o+0vdPq95pzWwUC8v
sBxoyIbnXR7ujXbOh98+n9kPezetw2O/Xd39cNR9ODoqnfifvvUm4aebYc/7
eu8fnDVbJ6e14/Zl6aYRjYYn/sHqRkP6+E/sMKib0juMl3ZYbn2P/VCH5db2
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
tcUZzWLAGbUWr+aav8utfvu/AOuaHCKk6wEA

-->

</rfc>
