<?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.43 (Ruby 4.0.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spice-sd-cwt-09" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="SD-CWT">Selective Disclosure CBOR Web Tokens (SD-CWT)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-09"/>
    <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="October" day="30"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 83?>

<t>This specification describes a data minimization technique for use with CBOR Web Tokens (CWTs).
The approach is inspired by 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 89?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification creates a new format based on the CBOR Web Token (CWT) specification <xref target="RFC8392"/>.
It enables the Holder of a CWT to disclose or withhold special claims marked as selectively disclosable by the Issuer of a CWT, when presenting those claims to a Verifier.
The approach is inspired by SD-JWT <xref target="RFC9901"/>, with changes to align with conventions from CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/> and CWT.
Holders of SD-CWT credentials can prove the integrity and authenticity of Holder-chosen attributes asserted by an Issuer to a Verifier.
The Holder also proves possession of the confirmation method (defined in <xref target="RFC8747"/>) to prevent copy and paste attacks.</t>
      <t>This document defines a generic container format, not a specific credential type.
For example, a license to operate a vehicle and a license to import a product will contain different attributes.</t>
      <t>SD-CWT is unsuitable for use cases where preventing the Issuer from learning how credentials are used is a requirement.
SD-CWTs provide privacy improvements compared to regular CWTs, which can be further improved by the use of one-time use and batch issuance.</t>
      <section anchor="high-level-flow">
        <name>High-Level Flow</name>
        <figure anchor="fig-high-level-flow">
          <name>High-level SD-CWT Issuance and Presentation Flow</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="584" viewBox="0 0 584 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,48 L 24,464" fill="none" stroke="black"/>
                <path d="M 56,144 L 56,176" fill="none" stroke="black"/>
                <path d="M 288,48 L 288,464" fill="none" stroke="black"/>
                <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
                <path d="M 320,304 L 320,336" fill="none" stroke="black"/>
                <path d="M 320,368 L 320,400" fill="none" stroke="black"/>
                <path d="M 560,48 L 560,464" 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 56,144" fill="none" stroke="black"/>
                <path d="M 32,176 L 56,176" fill="none" stroke="black"/>
                <path d="M 24,208 L 280,208" fill="none" stroke="black"/>
                <path d="M 288,224 L 552,224" fill="none" stroke="black"/>
                <path d="M 296,256 L 560,256" fill="none" stroke="black"/>
                <path d="M 288,304 L 320,304" fill="none" stroke="black"/>
                <path d="M 296,336 L 320,336" fill="none" stroke="black"/>
                <path d="M 288,368 L 320,368" fill="none" stroke="black"/>
                <path d="M 296,400 L 320,400" fill="none" stroke="black"/>
                <path d="M 288,448 L 552,448" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="560,448 548,442.4 548,453.6" fill="black" transform="rotate(0,552,448)"/>
                <polygon class="arrowhead" points="560,224 548,218.4 548,229.6" fill="black" transform="rotate(0,552,224)"/>
                <polygon class="arrowhead" points="304,400 292,394.4 292,405.6" fill="black" transform="rotate(180,296,400)"/>
                <polygon class="arrowhead" points="304,336 292,330.4 292,341.6" fill="black" transform="rotate(180,296,336)"/>
                <polygon class="arrowhead" points="304,256 292,250.4 292,261.6" fill="black" transform="rotate(180,296,256)"/>
                <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(180,296,96)"/>
                <polygon class="arrowhead" points="288,208 276,202.4 276,213.6" fill="black" transform="rotate(0,280,208)"/>
                <polygon class="arrowhead" points="40,176 28,170.4 28,181.6" fill="black" transform="rotate(180,32,176)"/>
                <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="360" y="84">Key Gen</text>
                  <text x="148" y="100">Request SD-CWT</text>
                  <text x="128" y="164">Redact Claims</text>
                  <text x="448" y="212">Request Nonce</text>
                  <text x="148" y="228">Receive SD-CWT</text>
                  <text x="448" y="276">Receive Nonce</text>
                  <text x="432" y="324">Disclose some, none, or</text>
                  <text x="408" y="340">all of the Claims</text>
                  <text x="384" y="388">Demonstrate</text>
                  <text x="380" y="404">Possession</text>
                  <text x="452" y="436">Present SD-CWT</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
Issuer                           Holder                         Verifier
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Key Gen                     |
  |        Request SD-CWT          |<--+                             |
  |<-------------------------------+                                 |
  |                                |                                 |
  +---+                            |                                 |
  |   |  Redact Claims             |                                 |
  |<--+                            |                                 |
  |                                |                                 |
  +------------------------------->|             Request Nonce       |
  |        Receive SD-CWT          +-------------------------------->|
  |                                |                                 |
  |                                |<--------------------------------+
  |                                |             Receive Nonce       |
  |                                |                                 |
  |                                +---+                             |
  |                                |   |  Disclose some, none, or    |
  |                                |<--+  all of the Claims          |
  |                                |                                 |
  |                                +---+                             |
  |                                |   |  Demonstrate                |
  |                                |<--+  Possession                 |
  |                                |                                 |
  |                                |             Present SD-CWT      |
  |                                +-------------------------------->|
  |                                |                                 |
]]></artwork>
          </artset>
        </figure>
        <t>This diagram captures the flow to issue and present an SD-CWT.</t>
        <t>The parameters necessary to support these processes can be obtained using transports or protocols that are out of scope for this specification.</t>
      </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>The CBOR examples in this document are shown in CBOR Extended Diagnostic Notation (EDN) <xref target="I-D.ietf-cbor-edn-literals"/>.
EDN resembles JSON, but it can contain comments, and it can represent all native CBOR types, including byte strings, tagged values, and CBOR simple values.</t>
      <t>Data model constraints are described using the Concise Data Definition Language (CDDL) <xref target="RFC8610"/>.</t>
      <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>Key Binding Token (KBT):</dt>
        <dd>
          <t>A CWT used to demonstrate possession of a confirmation method, associated with an SD-CWT.</t>
        </dd>
        <dt>Redact:</dt>
        <dd>
          <t>In the context of this specification, to replace a Claim Value with its corresponding Redacted Claim Hash.</t>
        </dd>
        <dt>Disclose:</dt>
        <dd>
          <t>In the context of this specification, to provide a Salted Disclosed Claim whose hash matches a Redacted Claim Hash in the same SD-CWT.</t>
        </dd>
        <dt>Selective Disclosure:</dt>
        <dd>
          <t>In the context of this specification, the ability of the Holder to disclose a subset (all, some, or none) of the Redacted Claims in an SD-CWT.</t>
        </dd>
        <dt>Assertion Key:</dt>
        <dd>
          <t>A key used by the Issuer to sign an SD-CWT, including the enclosed Claim Values.</t>
        </dd>
        <dt>Confirmation Key:</dt>
        <dd>
          <t>A key used by the Holder to sign a KBT including the enclosed selected Salted Disclosed Claims.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>An entity that produces a SD-CWT, containing Claim Values, signed with an Assertion Key.</t>
        </dd>
        <dt>Holder:</dt>
        <dd>
          <t>An entity that presents a KBT, containing an SD-CWT 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>Salted Disclosed Claim:</dt>
        <dd>
          <t>A salted claim included in the unprotected header of an SD-CWT.</t>
        </dd>
        <dt>Redacted Claim Hash:</dt>
        <dd>
          <t>A hash digest of a Salted Disclosed Claim.</t>
        </dd>
        <dt>Redacted Claim:</dt>
        <dd>
          <t>Any Redacted Claim Key or Redacted Claim Element that has been replaced in the
CWT payload by a Redacted Claim Hash.</t>
        </dd>
        <dt>Non-redacted Claim:</dt>
        <dd>
          <t>A claim that was not replaced by the Issuer with a Redacted Claim Hash in the SD-CWT.</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 non-redacted claims that were signed by the Issuer and all selectively disclosed claims presented by the Holder; omitting all undisclosed instances of Redacted Claim Keys and Redacted Claim Element claims that are present in the original SD-CWT.</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview-of-selective-disclosure-cwt">
      <name>Overview of Selective Disclosure CWT</name>
      <t>SD-CWT operates on CWT Claims Sets as described in <xref target="RFC8392"/>.
CWT Claims Sets contain Claim Keys and Claim Values.
Issuers choose which Claim Keys and Claim Values to redact or include in unredacted form.
Holders choose to disclose none, some, or all of the Redacted Claim Keys and Claim Values, and whether to present an issued SD-CWT at all.
Holders present an SD-CWT and any disclosures to Verifiers in a Key Binding Token (KBT) that proves the Holder's control of the private key corresponding to the SD-CWT confirmation (public) key.</t>
      <t>Selective Disclosure CBOR Web Tokens (SD-CWTs) can be deployed in environments that are already using CWTs with minor changes, even if the tokens contain no optional-to-disclose claims.</t>
      <t>The following diagram explains the relationships between the three roles and the data each processes, using the terminology defined in this specification.</t>
      <figure anchor="f-role-inputs">
        <name>Inputs provided to each Role</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="672" width="496" viewBox="0 0 496 672" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,144 L 8,224" fill="none" stroke="black"/>
              <path d="M 8,368 L 8,496" fill="none" stroke="black"/>
              <path d="M 8,624 L 8,656" fill="none" stroke="black"/>
              <path d="M 24,32 L 24,64" fill="none" stroke="black"/>
              <path d="M 24,272 L 24,304" fill="none" stroke="black"/>
              <path d="M 24,544 L 24,576" fill="none" stroke="black"/>
              <path d="M 32,400 L 32,464" fill="none" stroke="black"/>
              <path d="M 72,64 L 72,136" fill="none" stroke="black"/>
              <path d="M 72,224 L 72,264" fill="none" stroke="black"/>
              <path d="M 72,304 L 72,360" fill="none" stroke="black"/>
              <path d="M 72,496 L 72,536" fill="none" stroke="black"/>
              <path d="M 72,576 L 72,616" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 144,544 L 144,576" fill="none" stroke="black"/>
              <path d="M 152,272 L 152,304" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,112" fill="none" stroke="black"/>
              <path d="M 192,544 L 192,576" fill="none" stroke="black"/>
              <path d="M 200,272 L 200,320" fill="none" stroke="black"/>
              <path d="M 296,160 L 296,224" fill="none" stroke="black"/>
              <path d="M 352,560 L 352,576" fill="none" stroke="black"/>
              <path d="M 352,640 L 352,656" fill="none" stroke="black"/>
              <path d="M 376,288 L 376,320" fill="none" stroke="black"/>
              <path d="M 416,416 L 416,464" fill="none" stroke="black"/>
              <path d="M 432,384 L 432,496" fill="none" stroke="black"/>
              <path d="M 488,48 L 488,112" fill="none" stroke="black"/>
              <path d="M 24,32 L 120,32" fill="none" stroke="black"/>
              <path d="M 168,32 L 472,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,112 L 488,112" fill="none" stroke="black"/>
              <path d="M 8,144 L 280,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 296,192" fill="none" stroke="black"/>
              <path d="M 8,224 L 296,224" fill="none" stroke="black"/>
              <path d="M 24,272 L 152,272" fill="none" stroke="black"/>
              <path d="M 200,272 L 360,272" fill="none" stroke="black"/>
              <path d="M 160,288 L 200,288" fill="none" stroke="black"/>
              <path d="M 24,304 L 152,304" fill="none" stroke="black"/>
              <path d="M 200,320 L 376,320" fill="none" stroke="black"/>
              <path d="M 8,368 L 416,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 400,400" fill="none" stroke="black"/>
              <path d="M 32,432 L 416,432" fill="none" stroke="black"/>
              <path d="M 32,464 L 416,464" fill="none" stroke="black"/>
              <path d="M 8,496 L 432,496" fill="none" stroke="black"/>
              <path d="M 24,544 L 144,544" fill="none" stroke="black"/>
              <path d="M 192,544 L 336,544" fill="none" stroke="black"/>
              <path d="M 152,560 L 192,560" fill="none" stroke="black"/>
              <path d="M 24,576 L 144,576" fill="none" stroke="black"/>
              <path d="M 192,576 L 352,576" fill="none" stroke="black"/>
              <path d="M 8,624 L 336,624" fill="none" stroke="black"/>
              <path d="M 8,656 L 352,656" fill="none" stroke="black"/>
              <path d="M 472,32 C 480.83064,32 488,39.16936 488,48" fill="none" stroke="black"/>
              <path d="M 280,144 C 288.83064,144 296,151.16936 296,160" fill="none" stroke="black"/>
              <path d="M 360,272 C 368.83064,272 376,279.16936 376,288" fill="none" stroke="black"/>
              <path d="M 416,368 C 424.83064,368 432,375.16936 432,384" fill="none" stroke="black"/>
              <path d="M 400,400 C 408.83064,400 416,407.16936 416,416" fill="none" stroke="black"/>
              <path d="M 336,544 C 344.83064,544 352,551.16936 352,560" fill="none" stroke="black"/>
              <path d="M 336,624 C 344.83064,624 352,631.16936 352,640" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="168,288 156,282.4 156,293.6" fill="black" transform="rotate(180,160,288)"/>
              <polygon class="arrowhead" points="160,560 148,554.4 148,565.6" fill="black" transform="rotate(180,152,560)"/>
              <polygon class="arrowhead" points="136,48 124,42.4 124,53.6" fill="black" transform="rotate(180,128,48)"/>
              <polygon class="arrowhead" points="80,616 68,610.4 68,621.6" fill="black" transform="rotate(90,72,616)"/>
              <polygon class="arrowhead" points="80,536 68,530.4 68,541.6" fill="black" transform="rotate(90,72,536)"/>
              <polygon class="arrowhead" points="80,360 68,354.4 68,365.6" fill="black" transform="rotate(90,72,360)"/>
              <polygon class="arrowhead" points="80,264 68,258.4 68,269.6" fill="black" transform="rotate(90,72,264)"/>
              <polygon class="arrowhead" points="80,136 68,130.4 68,141.6" fill="black" transform="rotate(90,72,136)"/>
              <g class="text">
                <text x="76" y="52">Issuer</text>
                <text x="256" y="52">Issuer Private Key,</text>
                <text x="252" y="68">Holder Public Key,</text>
                <text x="244" y="84">Full Claims Set,</text>
                <text x="328" y="100">Pre-issuance redaction/decoy requests</text>
                <text x="152" y="164">Issuer-Signed: Plaintext Claims +</text>
                <text x="112" y="180">Redacted Claim Hashes</text>
                <text x="128" y="212">All Salted Disclosed Claims</text>
                <text x="84" y="292">Holder</text>
                <text x="288" y="292">Holder Private Key,</text>
                <text x="284" y="308">Chosen Disclosures</text>
                <text x="148" y="388">Holder-Signed: Key Binding Token</text>
                <text x="224" y="420">Issuer-Signed: Claims + Redacted Claim Hashes</text>
                <text x="204" y="452">Holder-Selected: Salted Disclosed Claims</text>
                <text x="76" y="564">Verifier</text>
                <text x="272" y="564">Issuer Public Key</text>
                <text x="140" y="644">Validated Disclosed Claims Set</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
  +-----------+     +--------------------------------------.
  |   Issuer  |<----+ Issuer Private Key,                   |
  +-----+-----+     | Holder Public Key,                    |
        |           | Full Claims Set,                      |
        |           | Pre-issuance redaction/decoy requests |
        |           +---------------------------------------+
        v
+----------------------------------.
| Issuer-Signed: Plaintext Claims + |
|  Redacted Claim Hashes            |
+-----------------------------------+
| All Salted Disclosed Claims       |
+-------+---------------------------+
        |
        v
  +---------------+     +--------------------.
  |    Holder     |<----+ Holder Private Key, |
  +-----+---------+     | Chosen Disclosures  |
        |               +---------------------+
        |
        v
+---------------------------------------------------.
| Holder-Signed: Key Binding Token                   |
|  +----------------------------------------------.  |
|  | Issuer-Signed: Claims + Redacted Claim Hashes | |
|  +-----------------------------------------------+ |
|  | Holder-Selected: Salted Disclosed Claims      | |
|  +-----------------------------------------------+ |
|                                                    |
+-------+--------------------------------------------+
        |
        v
  +--------------+     +------------------.
  |  Verifier    |<----+ Issuer Public Key |
  +-----+--------+     +-------------------+
        |
        v
+-----------------------------------------.
| Validated Disclosed Claims Set           |
+------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <t>The next diagram follows the steps of a specific Claim being redacted and then disclosed using the terminology specific to this document.</t>
      <figure anchor="f-roundtrip-claim">
        <name>Round trip journey of a Redacted Claim</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1008" width="448" viewBox="0 0 448 1008" 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,160 L 8,192" fill="none" stroke="black"/>
              <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
              <path d="M 8,640 L 8,672" fill="none" stroke="black"/>
              <path d="M 8,752 L 8,784" fill="none" stroke="black"/>
              <path d="M 8,848 L 8,880" fill="none" stroke="black"/>
              <path d="M 8,960 L 8,992" fill="none" stroke="black"/>
              <path d="M 24,304 L 24,632" fill="none" stroke="black"/>
              <path d="M 48,368 L 48,400" fill="none" stroke="black"/>
              <path d="M 48,464 L 48,592" fill="none" stroke="black"/>
              <path d="M 56,64 L 56,152" fill="none" stroke="black"/>
              <path d="M 56,192 L 56,264" fill="none" stroke="black"/>
              <path d="M 56,672 L 56,744" fill="none" stroke="black"/>
              <path d="M 56,784 L 56,840" fill="none" stroke="black"/>
              <path d="M 56,880 L 56,952" fill="none" stroke="black"/>
              <path d="M 72,512 L 72,560" fill="none" stroke="black"/>
              <path d="M 96,304 L 96,360" fill="none" stroke="black"/>
              <path d="M 96,400 L 96,456" fill="none" stroke="black"/>
              <path d="M 96,592 L 96,632" fill="none" stroke="black"/>
              <path d="M 112,32 L 112,64" fill="none" stroke="black"/>
              <path d="M 112,160 L 112,192" fill="none" stroke="black"/>
              <path d="M 112,640 L 112,672" fill="none" stroke="black"/>
              <path d="M 112,752 L 112,784" fill="none" stroke="black"/>
              <path d="M 352,288 L 352,304" fill="none" stroke="black"/>
              <path d="M 352,528 L 352,560" fill="none" stroke="black"/>
              <path d="M 352,864 L 352,880" fill="none" stroke="black"/>
              <path d="M 352,976 L 352,992" fill="none" stroke="black"/>
              <path d="M 392,384 L 392,400" fill="none" stroke="black"/>
              <path d="M 392,480 L 392,592" fill="none" stroke="black"/>
              <path d="M 8,32 L 112,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 112,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 112,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 112,192" fill="none" stroke="black"/>
              <path d="M 8,272 L 336,272" fill="none" stroke="black"/>
              <path d="M 8,304 L 352,304" fill="none" stroke="black"/>
              <path d="M 48,368 L 376,368" fill="none" stroke="black"/>
              <path d="M 48,400 L 392,400" fill="none" stroke="black"/>
              <path d="M 48,464 L 376,464" fill="none" stroke="black"/>
              <path d="M 72,512 L 336,512" fill="none" stroke="black"/>
              <path d="M 72,560 L 352,560" fill="none" stroke="black"/>
              <path d="M 48,592 L 392,592" fill="none" stroke="black"/>
              <path d="M 8,640 L 112,640" fill="none" stroke="black"/>
              <path d="M 8,672 L 112,672" fill="none" stroke="black"/>
              <path d="M 8,752 L 112,752" fill="none" stroke="black"/>
              <path d="M 8,784 L 112,784" fill="none" stroke="black"/>
              <path d="M 8,848 L 336,848" fill="none" stroke="black"/>
              <path d="M 8,880 L 352,880" fill="none" stroke="black"/>
              <path d="M 8,960 L 336,960" fill="none" stroke="black"/>
              <path d="M 8,992 L 352,992" fill="none" stroke="black"/>
              <path d="M 336,272 C 344.83064,272 352,279.16936 352,288" fill="none" stroke="black"/>
              <path d="M 376,368 C 384.83064,368 392,375.16936 392,384" fill="none" stroke="black"/>
              <path d="M 376,464 C 384.83064,464 392,471.16936 392,480" fill="none" stroke="black"/>
              <path d="M 336,512 C 344.83064,512 352,519.16936 352,528" fill="none" stroke="black"/>
              <path d="M 336,848 C 344.83064,848 352,855.16936 352,864" fill="none" stroke="black"/>
              <path d="M 336,960 C 344.83064,960 352,967.16936 352,976" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="104,632 92,626.4 92,637.6" fill="black" transform="rotate(90,96,632)"/>
              <polygon class="arrowhead" points="104,456 92,450.4 92,461.6" fill="black" transform="rotate(90,96,456)"/>
              <polygon class="arrowhead" points="104,360 92,354.4 92,365.6" fill="black" transform="rotate(90,96,360)"/>
              <polygon class="arrowhead" points="64,952 52,946.4 52,957.6" fill="black" transform="rotate(90,56,952)"/>
              <polygon class="arrowhead" points="64,840 52,834.4 52,845.6" fill="black" transform="rotate(90,56,840)"/>
              <polygon class="arrowhead" points="64,744 52,738.4 52,749.6" fill="black" transform="rotate(90,56,744)"/>
              <polygon class="arrowhead" points="64,264 52,258.4 52,269.6" fill="black" transform="rotate(90,56,264)"/>
              <polygon class="arrowhead" points="64,152 52,146.4 52,157.6" fill="black" transform="rotate(90,56,152)"/>
              <polygon class="arrowhead" points="32,632 20,626.4 20,637.6" fill="black" transform="rotate(90,24,632)"/>
              <g class="text">
                <text x="52" y="52">Holder</text>
                <text x="176" y="100">1. Communicates public key,</text>
                <text x="212" y="116">Optionally communicates Claim,</text>
                <text x="268" y="132">Optionally communicates Redaction preference</text>
                <text x="52" y="180">Issuer</text>
                <text x="200" y="228">2. Creates Salted Disclosed Claim</text>
                <text x="164" y="244">[salt, value, key]</text>
                <text x="108" y="292">Salted Disclosed Claim</text>
                <text x="184" y="340">3. Hashes to create</text>
                <text x="136" y="388">Redacted Claim Hash</text>
                <text x="220" y="436">4. Replaces Claim Value with</text>
                <text x="184" y="484">Redacted Claim (in CWT payload)</text>
                <text x="212" y="532">Original Claim Value is replaced</text>
                <text x="180" y="548">with Redacted Claim Hash</text>
                <text x="52" y="660">Holder</text>
                <text x="148" y="708">5. Presents selected</text>
                <text x="184" y="724">Salted Disclosed Claims</text>
                <text x="52" y="772">Verifier</text>
                <text x="196" y="820">6. Hashes Salted Disclosed Claim</text>
                <text x="140" y="868">Redacted Claim Hash (computed)</text>
                <text x="192" y="916">7. Matches with hash in payload</text>
                <text x="168" y="932">to recover original</text>
                <text x="112" y="980">Claim Value (recovered)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+------------+
|  Holder    |
+-----+------+
      |
      | 1. Communicates public key,
      |    Optionally communicates Claim,
      |    Optionally communicates Redaction preference
      v
+------------+
|  Issuer    |
+-----+------+
      |
      | 2. Creates Salted Disclosed Claim
      |    [salt, value, key]
      v
+-----------------------------------------.
| Salted Disclosed Claim                   |
+-+--------+-------------------------------+
  |        |
  |        | 3. Hashes to create
  |        v
  |  +-----------------------------------------.
  |  | Redacted Claim Hash                      |
  |  +-----+------------------------------------+
  |        |
  |        | 4. Replaces Claim Value with
  |        v
  |  +-----------------------------------------.
  |  | Redacted Claim (in CWT payload)          |
  |  |                                          |
  |  |  +---------------------------------.     |
  |  |  | Original Claim Value is replaced |    |
  |  |  | with Redacted Claim Hash         |    |
  |  |  +----------------------------------+    |
  |  |                                          |
  |  +-----+------------------------------------+
  |        |
  v        v
+------------+
|  Holder    |
+-----+------+
      |
      | 5. Presents selected
      |    Salted Disclosed Claims
      v
+------------+
| Verifier   |
+-----+------+
      |
      | 6. Hashes Salted Disclosed Claim
      v
+-----------------------------------------.
| Redacted Claim Hash (computed)           |
+-----+------------------------------------+
      |
      | 7. Matches with hash in payload
      |    to recover original
      v
+-----------------------------------------.
| Claim Value (recovered)                  |
+------------------------------------------+
]]></artwork>
        </artset>
      </figure>
      <section anchor="a-cwt-without-selective-disclosure">
        <name>A CWT without Selective Disclosure</name>
        <t>Below is the payload, or claims set, of a standard CWT not using selective disclosure.
It consists of standard CWT claims, the Holder confirmation key, and five fictitious example claims.
The payload is shown below in EDN <xref target="I-D.ietf-cbor-edn-literals"/>.
Note that the fictitious map keys shown in the examples do not have IANA registered integer keys.</t>
        <figure anchor="fig-cwt-claimset">
          <name>CWT Claims Set Without Selective Disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.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>
        </figure>
        <t>The fictitious 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 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://holder.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'12bdb0136ed93db0e3400660d5aee1ba
                      68ff24e743d613eea55d3bedff167ae4
                      d3c9c328ebfdc1793a178e754ce11432
                      f2e69a92eee6953d38d5a58830ece550
                      21951a83e4e30365828bb7918ceb187a
                      21da18c071ce2461ef642a9e7959299e'
])
]]></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 Value, and Claim Key.</t>
        <figure anchor="first-disclosure">
          <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, pretty-printed in hexadecimal</name>
          <sourcecode type="cbor-pretty"><![CDATA[
58 21                                     # bytes(33)
   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 Redacted 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, in hexadecimal</name>
          <artwork><![CDATA[
af375dc3fba1d082448642c00be7b2f7bb05c9d8fb61cfc230ddfdfb4616a693
]]></artwork>
        </figure>
        <t>Finally, since this redacted claim is a map key and value, the Redacted 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.</t>
        <figure>
          <name>redacted inspector_license_number claim in the issued CWT payload</name>
          <sourcecode type="cbor-diag"><![CDATA[
  / redacted_claim_keys / simple(59) : [
      / redacted inspector_license_number /
      h'af375dc3fba1d082448642c00be7b2f7
        bb05c9d8fb61cfc230ddfdfb4616a693',
      / ... next redacted claim at the same level would go here /  ],
]]></sourcecode>
        </figure>
        <t>Redacted claims that are array elements are handled slightly differently, as described in <xref target="blinded-claims"/>.</t>
      </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>
        <figure anchor="edn-chosen-disclosures">
          <name>The Holder's choice of the disclosures to present</name>
          <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>
        </figure>
        <t>When the Verifier requires freshness, it provides a nonce that the Holder signs in the KBT as the <tt>cnonce</tt> claim (<xref target="kbt-claims"/>).</t>
        <t>Finally, the Holder generates a Key Binding Token (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>As shown in the elided example below, the issued SD-CWT is placed in the <tt>kcwt</tt> (Confirmation Key CWT) protected header field (defined in <xref target="RFC9528"/>).
For the full example, see <xref target="minimal-spanning-example"/>.</t>
        <figure anchor="edn-elided-kbt">
          <name>Elided example of a Key Binding Token</name>
          <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'ca38c411693201ceb418ab75217745cc
                      f1d52f76c934ce2910a9f4ccc4293711
                      f9ee18347b51f6f815d89b77d407e494
                      5551118df8f9b662e5250fb1c5f070c8'
])   / end of kbt /
]]></sourcecode>
        </figure>
        <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 KBT, the Verifier has assurance that the Holder included the sent list of disclosures.</t>
      </section>
    </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> declare its content type, by including the protected header parameter <tt>typ</tt> <xref target="RFC9596"/> with one of the following values:</t>
      <ul spacing="normal">
        <li>
          <t>the unsigned integer Constrained Application Protocol (CoAP) <xref target="RFC7252"/> content-format value 293,</t>
        </li>
        <li>
          <t>the string content type value <tt>application/sd-cwt</tt>,</t>
        </li>
        <li>
          <t>or a value declaring that the object is a more specific kind of SD-CWT, such as a content type value using the <tt>+sd-cwt</tt> structured suffix.</t>
        </li>
      </ul>
      <t>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 19 bytes).</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 Redacted Claims (each expressed as a Redacted Claim Hash), at the root level or in any arrays or maps inside its Claims Set.
An SD-CWT is not required to contain any Redacted Claims.</t>
      <ul empty="true">
        <li>
          <t>An SD-CWT with no Redacted Claims is still valuable for its key binding properties.</t>
        </li>
      </ul>
      <t>Optionally the Salted Disclosed Claims (Claim Values and/or Claim Keys) for the corresponding Redacted Claim Hashes 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 Redacted 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 restore the original claim that was present before redaction.
However, a Verifier with the hash cannot reconstruct the corresponding Redacted Claim without disclosure of the Salted Disclosed Claim.</t>
      <section anchor="blinded-claims">
        <name>Types of Redacted Claims</name>
        <t>Salted Disclosed Claims for Claim Keys are structured as a 128-bit salt, the disclosed value, and the map key (the claim "name") of the redacted element.
For Salted Disclosed Claims of Claim Values (items in an array), the "name" of the claim is omitted.</t>
        <figure anchor="cddl-salted-disclosed">
          <name>CDDL of Salted Disclosed Claims</name>
          <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>
        </figure>
        <t>When a Redacted Claim is a key in a map, its Redacted 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 map key being redacted.
The <tt>redacted_claim_keys</tt> key is the CBOR simple value 59 registered for that purpose.
CBOR "simple values" <xref section="3.3" sectionFormat="of" target="RFC8949"/> are values (like <tt>false</tt> or <tt>undefined</tt>) that do need any additional content.
In this specification a simple value of 59 is used as the content of a map key to indicate that one or more map key/value pairs was redacted in this CBOR map.
The simple value 59 is represented in examples using the syntax <tt>simple(59)</tt>.
The simple value 59 in CDDL is represented using the syntax <tt>#7.59</tt>.</t>
        <t>When redacting 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.
CBOR tags <xref section="3.4" sectionFormat="of" target="RFC8949"/> annotate other values.
The tag 60 is represented in examples as <tt>60(</tt> <em>tagged value</em> <tt>)</tt>.
The tag 60 is represented in CDDL as <tt>#6.60(</tt> <em>tagged value</em> <tt>)</tt>.</t>
        <figure anchor="cddl-blinded">
          <name>CDDL of Redacted Claim Keys and Redacted Claim Elements</name>
          <sourcecode type="cddl"><![CDATA[
; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Redacted Claim Hashes whose corresponding unredacted 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>
        </figure>
        <t>Redacted 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 redacted.
An example nested Claims Set is shown in <xref target="nesting"/>.</t>
        <t>Finally, an Issuer <bcp14>MAY</bcp14> create decoy digests, which look like Redacted 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 KBT <bcp14>MUST NOT</bcp14> send indefinite length CBOR.
Decoders of SD-CWT and KBT <bcp14>MUST</bcp14> reject any SD-CWT or 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"/>) refer 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 numbers smaller than -(2^53) and larger than 2^53 is 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 unredacted value.
Neither, one, or both could be redacted.
If both are redacted they would have different disclosures, salts, and Redacted 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 KBTs:</t>
        <ul spacing="normal">
          <li>
            <t>The 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 KBT protected headers <bcp14>MUST NOT</bcp14> contain a <tt>CWT Claims</tt> Header Parameter.</t>
          </li>
          <li>
            <t>The 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 a 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>
        <figure anchor="cddl-legal-values">
          <name>CDDL of Safe Values in SD-CWTs</name>
          <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>(uint .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)

; exclude reserved simple values (24 through 31) from Table 4 of
; RFC 8949, and redacted keys array
safe_simple =  0..23 / 32..58 / 60..255
secs = int / float53
float53 = -9007199254740992.0..9007199254740992.0 ; from 2^53 to 2^53

]]></sourcecode>
        </figure>
        <ul empty="true">
          <li>
            <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>
          </li>
        </ul>
        <t>Tagged map keys are not registered in the CBOR Web Token Claims IANA registry, since tags are not valid map keys in <xref target="RFC8392"/>.
Instead, the tag provides additional information about the tagged Claim Key and the corresponding (untagged) value.
Issuers <bcp14>MUST NOT</bcp14> nest multiple levels of tags in a map key. Holders and Verifiers <bcp14>MUST</bcp14> reject SD-CWTs that contain multiple levels of tags in a map key.</t>
      </section>
      <section anchor="dup-map-key">
        <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 a 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 Claims 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>
        <figure anchor="edn-duplicate-map-key">
          <name>EDN Example considered a duplicate map key</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  500: "ABCD-123456",     # map key 500
  58(500): "DEFG-456789"  # to be redacted tag containing 500
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="level-of-nesting-of-claims">
        <name>Level of Nesting of Claims</name>
        <t>Selective disclosure of deeply nested structures could lead to resource exhaustion vulnerabilities. Issuers, Holders, and Verifiers <bcp14>MAY</bcp14> reject SD-CWT Claims Sets exceeding a depth of 16 levels.</t>
        <t>The individual map key / value pairs in a Claims 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 anchor="_table-depth-levels">
          <name>Levels of Depth in Below Example</name>
          <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>
        <figure anchor="edn-depth-levels">
          <name>EDN Example to demonstrate levels of depth</name>
          <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>
        </figure>
        <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 Redacted 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 redact or to 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 any 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 Redacted 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>The Issuer <bcp14>SHOULD</bcp14> confirm the Holder controls all confirmation key material before issuing credentials using the <tt>cnf</tt> claim.
If the Issuer does not, it may be communicating with an active attacker impersonating the Holder, instead of the actual Holder.</t>
      <t>CWT <xref target="RFC8392"/> and JWT <xref target="RFC7519"/> register claims and leave their applicability to profiles.
This document instead specifies claim requirements directly, because SD-CWT is a specific credential type whose selective-disclosure and key-binding semantics depend on a small set of claims being present, unredacted, and consistently interpreted across implementations.
The requirements in <xref target="sd-cwt-claims"/> and <xref target="kbt-claims"/> are the minimum needed for interoperable verification; profiles of this specification <bcp14>MAY</bcp14> add further constraints but <bcp14>MUST NOT</bcp14> relax these.</t>
      <t>The following table describes the claim requirements for an SD-CWT:</t>
      <table anchor="sd-cwt-claims">
        <name>SD-CWT Claim Requirements</name>
        <thead>
          <tr>
            <th align="left">Claim</th>
            <th align="left">Requirement</th>
            <th align="left">Never Redacted</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>iss</tt> / 1</td>
            <td align="left">
              <bcp14>MUST</bcp14> unless (see note)</td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>sub</tt> / 2</td>
            <td align="left">
              <bcp14>MUST</bcp14> be present (disclosed or redacted)</td>
            <td align="left">No</td>
          </tr>
          <tr>
            <td align="left">
              <tt>aud</tt> / 3</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>exp</tt> / 4</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>nbf</tt> / 5</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>iat</tt> / 6</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cti</tt> / 7</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cnf</tt> / 8</td>
            <td align="left">
              <bcp14>MUST</bcp14></td>
            <td align="left">Yes</td>
          </tr>
          <tr>
            <td align="left">
              <tt>cnonce</tt> / 39</td>
            <td align="left">
              <bcp14>OPTIONAL</bcp14></td>
            <td align="left">Yes</td>
          </tr>
        </tbody>
      </table>
      <t>The <tt>iss</tt> claim <bcp14>MUST</bcp14> be present unless the protected header contains a certificate or certificate-like entity that fully identifies the Issuer.</t>
      <t>Any claims not addressed in the tables above are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> be redacted in an SD-CWT, unless specified differently by a profile or more specific media type.</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, if the full public key is expected to be available to Verifiers out-of-band.</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 non-redacted claims about the subject that violate its privacy policies;</t>
          </li>
          <li>
            <t>any place where the cardinality of claims needs to be protected have sufficient decoys (<xref target="decoys"/>);</t>
          </li>
          <li>
            <t>every Redacted Claim Hash has a corresponding Salted Disclosed Claim, and vice versa;
a Salted Disclosed Claim (disclosure) <bcp14>MAY</bcp14> contain additional Redacted Claim Keys nested inside the disclosure;
if any of the Redacted Claim Hashes are nested, the Holder follows the procedure in <xref target="nesting-validation"/> (see also <xref target="nesting"/> for a worked example);</t>
          </li>
          <li>
            <t>the values of the Salted Disclosed Claims when placed in their unredacted 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>
        <figure anchor="cddl-issued-sd-cwt">
          <name>CDDL describing issued SD-CWT syntax</name>
          <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
   * label => safe_value
}

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

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://holder.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>
        </figure>
      </section>
    </section>
    <section anchor="nesting-validation">
      <name>Nesting Validation</name>
      <t>Both Holders and Verifiers validate the SD-CWTs they receive.
The Holder needs a Salted Disclosed Claim for every Redacted Claim in the document (at any level).
The Verifier just needs to match each Salted Disclosed Claim with a Redacted Claim (at any level of the document).
In other words, both Holder and Verifier require a Redacted Claim for every Salted Disclosed Claim; for the Verifier there can be Redacted Claims that do not have matching Salted Disclosed Claims, but for the Holder there needs to be a one-to-one correspondance.</t>
      <t>This matching becomes more involved when there are Redacted Claims inside disclosures.
This "nesting" of Redacted Claims can occur at multiple levels of depth.</t>
      <t>Typically the validating party (Holder or Verifier) would create a lookup table of Salted Disclosed Claims indexed by the Redacted Claim Hash.</t>
      <t>The validating party looks for any Redacted Claim matching a Redacted Claim Hash of the disclosures it has received, and replaces the Redacted Claim with the corresponding disclosed value from the Salted Disclosed Claims.
The validating party then removes the matching Salted Disclosed Claim.
If there are any remaining Redacted Claims that were present before replacing the matching Redacted Claims with the corresponding disclosures, the extraneous claims at the current level are either deleted (in the case of Verifier validation), or the SD-CWT is considered invalid (in the case of Holder validation).</t>
      <t>The newly disclosed claims are then examined for Redacted Claims, and the process repeats.
When there are no Redacted Claims left anywhere in the document, and no Salted Disclosed Claims, the process is complete.</t>
      <t>For a walkthrough of a nested example, see <xref target="nesting"/>.</t>
    </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 Redacted Claims.
If the Holder wishes to disclose any Redacted 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>The Holder has flexibility in determining the order of disclosures when making presentations.
The order can be sorted, randomized, or optimized for performance based on the Holder's needs.</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 Token (KBT) for every presentation of an SD-CWT to a different Verifier.</t>
        <t>A 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 KBT contains the SD-CWT, including the Holder's choice of presented disclosures, in the <tt>kcwt</tt> protected header field in the KBT.</t>
        <t>The protected header of the KBT <bcp14>MUST</bcp14> include the <tt>typ</tt> header parameter with the unsigned integer value of 294, or the value <tt>application/kb+cwt</tt>.
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 19 bytes).</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 a KBT are implied from the <tt>cnf</tt> claim in the included SD-CWT, and <bcp14>MUST NOT</bcp14> be present in the 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 KBT payload <bcp14>MUST</bcp14> contain either the <tt>iat</tt> (issued at) claim, or the <tt>cti</tt> (CWT ID) claim.
If the Holder has access to an accurate clock, use of the <tt>iat</tt> is preferred.
The KBT <bcp14>MUST NOT</bcp14> be valid for any time period when its contained SD-CWT is invalid.</t>
        <t>The KBT payload <bcp14>MAY</bcp14> include a <tt>cnonce</tt> claim.
If included, the <tt>cnonce</tt> is a <tt>bstr</tt> provided by the Verifier and <bcp14>MUST</bcp14> be treated as opaque to the Holder.</t>
        <t>The following table describes the claim requirements for a KBT:</t>
        <table anchor="kbt-claims">
          <name>KBT Claim Requirements</name>
          <thead>
            <tr>
              <th align="left">Claim</th>
              <th align="left">Requirement</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>iss</tt> / 1</td>
              <td align="left">
                <bcp14>MUST NOT</bcp14> be present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>sub</tt> / 2</td>
              <td align="left">
                <bcp14>MUST NOT</bcp14> be present</td>
            </tr>
            <tr>
              <td align="left">
                <tt>aud</tt> / 3</td>
              <td align="left">
                <bcp14>MUST</bcp14></td>
            </tr>
            <tr>
              <td align="left">
                <tt>iat</tt> / 6</td>
              <td align="left">
                <bcp14>MUST</bcp14> (unless <tt>cti</tt> present)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cti</tt> / 7</td>
              <td align="left">
                <bcp14>MUST</bcp14> (unless <tt>iat</tt> present)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cnonce</tt> / 39</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
            </tr>
          </tbody>
        </table>
        <t>Any claims not addressed in the tables above are <bcp14>OPTIONAL</bcp14> in a KBT, unless specified differently by a profile or more specific media type.</t>
        <t>The 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>if there are any time claims, the Holder's disclosure is linked to the creation time (<tt>iat</tt>) of the key binding; otherwise the Holder's disclosure is linked to a CWT ID (<tt>cti</tt>), which is expected to be unique per KBT.</t>
          </li>
        </ul>
        <t>The 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 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>
        <t>The snippet of CDDL below corresponds to the rules above.</t>
        <figure anchor="cddl-kbt">
          <name>CDDL describing KBT syntax</name>
          <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"
      time-or-cti-claims,
    ? &(cnonce: 39) ^ => bstr,
    * label => safe_value
}

time-or-cti-claims = (
  ; Requires either time claims that include an iat OR a cti claim.
  ; Note that in CDDL, the // operator has very low precedence (see
  ; Section 2.2.2 of RFC 8610)
  ;
  ; It is possible to have both a cti and time claims, but
  ; time-or-cti-claims insures at least cti or iat is present
  ? &(exp: 4) ^ => secs,
  ? &(nbf: 5) ^ => secs,
    &(iat: 6) ^ => secs  //
    &(cti: 7) ^ => bstr
)
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="binding-validation">
      <name>KBT and SD-CWT Verifier Validation</name>
      <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) in the KBT.
This guidance can be ignored in cases where replay attacks are mitigated at another layer.</t>
      <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 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"/>. Verifiers <bcp14>MUST</bcp14> treat an <tt>sd_claims</tt> or <tt>sd_aead_encrypted_claims</tt> unprotected Header Parameter with an empty array as invalid.</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 KBT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.</t>
        </li>
        <li>
          <t>If a <tt>cnonce</tt> is present in the KBT it <bcp14>MUST</bcp14> be acceptable to the Verifier.
A <tt>cnonce</tt> <bcp14>MAY</bcp14> be present in SD-CWT, but its validity is considered by the holder, and it <bcp14>MUST NOT</bcp14> be disclosed to the verifier.</t>
        </li>
        <li>
          <t>The Verifier checks the time claims in the KBT to enforce the following logical constraints:</t>
        </li>
      </ol>
      <ul spacing="normal">
        <li>
          <t>if no <tt>cti</tt> claim is present in the KBT, there <bcp14>MUST</bcp14> be an <tt>iat</tt> in the KBT;</t>
        </li>
        <li>
          <t>if there is no <tt>iat</tt> claim in the KBT, there <bcp14>MUST NOT</bcp14> be an <tt>exp</tt> claim or an <tt>nbf</tt> claim in the KBT;</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &lt;= <tt>iat</tt> in the KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &lt;  <tt>exp</tt> in the KBT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-CWT &lt;= <tt>iat</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the SD-CWT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the SD-CWT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>exp</tt> in the KBT &lt;= <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &gt;= <tt>iat</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>nbf</tt> in the KBT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &lt;  <tt>exp</tt> in the SD-CWT (if both exist)</t>
        </li>
        <li>
          <t><tt>iat</tt> in the KBT &gt;= <tt>nbf</tt> in the SD-CWT (if both exist)</t>
        </li>
      </ul>
      <ol spacing="normal" type="1" start="8"><li>
          <t>If there are any values in the <tt>sd_aead_encrypted_claims</tt> header parameter (see <xref target="encrypted-disclosures"/>) for which the Verifier has keys, and the Verifier supports the encryption algorithm used, the Verifier decrypts them and verifies the tag.
If the Verifier does not have a suitable key for a value in the <tt>sd_aead_encrypted_claims</tt> header field, that item is ignored.
If the Verifier has a key for a specific claim, but decryption fails, the entire SD-CWT is invalid.
If decryption succeeds, the Verifier treats each decrypted claim as if it were a disclosure present in the <tt>sd_claims</tt> header parameter.</t>
        </li>
        <li>
          <t>The Verifier <bcp14>MUST</bcp14> extract and decode the disclosed claims from the <tt>sd_claims</tt> header parameter in the unprotected header of the SD-CWT.
Each decoded disclosure is treated as if it is a claim key or claim element at the location corresponding to its Redacted Claim Hash in the payload.
If there are any disclosures that do not have a corresponding Redacted 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.
A Salted Disclosed Claim (disclosure) <bcp14>MAY</bcp14> contain additional Redacted Claim Keys.
If any Redacted Claim Hashes are nested inside a disclosure, the Verifier follows the procedure in <xref target="nesting-validation"/> (see also <xref target="nesting"/> for a worked example).
A disclosed value could appear before the disclosure of its parent.</t>
            </li>
          </ul>
        </li>
      </ol>
      <ol spacing="normal" type="1" start="10"><li>
          <t>A Verifier <bcp14>MUST</bcp14> reject the SD-CWT if the audience claim in either the SD-CWT or the 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 containing 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="11"><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 claim present in the original Claims Set.
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.
Each salt <bcp14>MUST</bcp14> be unique.</t>
      <figure anchor="edn-decoy-disc">
        <name>EDN showing a sample decoy salt</name>
        <sourcecode type="cbor-diag"><![CDATA[
<<[ h'C1069BC056E234D64F58BAFF8A7B776B' ]>>
]]></sourcecode>
      </figure>
      <t>The Redacted 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>
      <figure anchor="edn-decoys">
        <name>EDN showing a SD-CWT containing decoys</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'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://holder.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'a96d92f340e37ab56586c74f237a50ef
                      bf176f7326a88a5429084a283b82a514
                      27753805febd98987c13f8a41586feda
                      df507e98d6d26af6f09eb01d0f4a5644
                      fdd05e7bac083338c7a8770a68896df3
                      c2f79e5450fd19f5dbbd1868898e984b'
])
]]></sourcecode>
      </figure>
      <t>As with regular Redacted Claims, the Holder needs to receive the disclosure for every decoy so it can be sure the Issuer is not communicating unwanted information to Verifiers (see <xref target="disclosure-of-decoys"/>).</t>
    </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 the Holder would like to be redacted in a Claims Set, this specification defines a new CBOR tag "To Be Redacted".
The tag can be used by a library to automatically convert a Claims Set with "To Be Redacted" tags into a) a new Claims 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>
        <figure anchor="edn-to-be-blinded">
          <name>EDN example requesting redaction of license number and two inspection dates</name>
          <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>
        </figure>
        <t>As discussed in <xref target="dup-map-key"/>, a map key <tt>k</tt> and a map key 58 containing the value <tt>k</tt> are considered duplicate map keys.
An Issuer <bcp14>MUST NOT</bcp14> issue an SD-CWT if the pre-issued Claims Set contains duplicate map keys.</t>
      </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 <em>value</em> is always <tt>null</tt>.</t>
        <aside>
          <t>Note: Requiring an integer that is unique per decoy within the entire CWT ensures that there are no duplicate map keys in the Claims Set (see <xref section="5.6" sectionFormat="of" target="RFC8949"/>).</t>
        </aside>
        <t>An Issuer <bcp14>MUST NOT</bcp14> issue an SD-CWT if the pre-issued Claims Set contains duplicate map keys.</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>
        <figure anchor="edn-to-be-decoy">
          <name>EDN example requesting two decoys</name>
          <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>
        </figure>
      </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 KBT, which secures the entire Issuer-signed SD-CWT including its unprotected headers that include its disclosures.</t>
      <t>The Issuer <bcp14>MUST</bcp14> make the plaintext Salted Disclosed Claims of all Redacted Claims available to the Holder by placing them in the unprotected header in the <tt>sd_claims</tt> header parameter.
The Holder <bcp14>MAY</bcp14> then chose to encrypt some of these Salted Disclosed Claims, omit the plaintext versions from the <tt>sd_claims</tt> unprotected header field, and add the corresponding encrypted disclosures to the <tt>sd_aead_encrypted_claims</tt> unprotected header field.
The Holder finally signs the KBT containing all intended disclosures of either type.</t>
      <t>The initial Verifier of the KBT 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 unprotected 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 <xref target="first-disclosure"/>:</t>
        <figure anchor="edn-aead-disclosure">
          <name>EDN example of plaintext disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,
]]></sourcecode>
        </figure>
        <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 nonce of N_MIN octets.
The associated (authenticated) data <tt>A</tt> is zero-length.
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.</t>
        <t>Optionally an AEAD key context <bcp14>MAY</bcp14> be added to the array.
The key context can be an unsigned integer, a text string, or a byte string of the COSE Key Thumbprint (<xref target="RFC9679"/>) of the decryption key.</t>
        <t>The resulting array is placed in the <tt>sd_aead_encrypted_claims</tt> header parameter in the unprotected headers of the SD-CWT.</t>
        <t>Given the AEAD encryption key (in hexadecimal):</t>
        <artwork><![CDATA[
a061c27a3273721e210d031863ad81b6
]]></artwork>
        <t>A valid AEAD encrypted disclosure for that first disclosure is:</t>
        <figure anchor="edn-aead-claim">
          <name>EDN Example of an AEAD Encrypted Disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ sd_aead_encrypted_claims / 171 : [ / AEAD encrypted disclosures /
[
    / nonce /      h'95d0040fe650e5baf51c907c',
    / ciphertext / h'563a7d9f0f65d40b751fbc3fcc408e8f
                     e27c375b60a4727b1f1e9572c07992eb
                     5ec5a9',
    / tag /        h'9f4d37da32187528416ed7ee95e0625f'
],
    ...
]
]]></sourcecode>
        </figure>
        <t>The Redacted Claim Hash is still over the unencrypted disclosure.
The receiver of an AEAD encrypted disclosure determines the appropriate decryption key by local configuration, using the <tt>aead-key-context</tt> if present, or by looking up the nonce or authentication tag.</t>
        <ul empty="true">
          <li>
            <t>Which key determination mechanism to use is the responsibility of the relevant profile or enclosing protocol.</t>
          </li>
        </ul>
        <t>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>
        <figure anchor="cddl-aead">
          <name>CDDL describing syntax of AEAD Encrypted disclosures</name>
          <sourcecode type="cddl"><![CDATA[
aead-encrypted-array = [ +aead-encrypted ]
aead-encrypted = [
  bstr,              ; nonce of N_MIN octets
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr,              ; the corresponding authentication tag
  ?aead-key-context  ; optional context to select the correct key
]
aead-key-context = uint / tstr / thumbprint
thumbprint = bstr    ; a COSE key thumprint
]]></sourcecode>
        </figure>
        <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>A minimal, full 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://holder.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'12bdb0136ed93db0e3400660d5aee1ba
                          68ff24e743d613eea55d3bedff167ae4
                          d3c9c328ebfdc1793a178e754ce11432
                          f2e69a92eee6953d38d5a58830ece550
                          21951a83e4e30365828bb7918ceb187a
                          21da18c071ce2461ef642a9e7959299e'
    ]),
    / 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'ca38c411693201ceb418ab75217745cc
                      f1d52f76c934ce2910a9f4ccc4293711
                      f9ee18347b51f6f815d89b77d407e494
                      5551118df8f9b662e5250fb1c5f070c8'
])   / 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 redacted at multiple levels of the claims set hierarchy.</t>
        <figure anchor="edn-nested-unblinded">
          <name>EDN example of Nested Claims Set before redaction</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.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>
        </figure>
        <t>For example, looking at the nested disclosures below, the first disclosure reveals the entire January 2023 inspection record.
However, when the record is disclosed, the inspector license number and inspection location are still redacted inside the record.
The fifth disclosure reveals the inspector_license_number, and the fourth
disclosure reveals the inspection location record, but the region and postcode claims inside the location record are also individually redacted.
The second disclosure reveals the inspection region.</t>
        <t>The last disclosure reveals the earliest inspection record, and the sixth disclosure reveals the inspector_license_number for that record.</t>
        <t>Verifiers start replacing each Redacted Claim Hash whose hash matches a Salted Disclosed Claim, with the unredacted Claim Key or Claim Value from that Salted Disclosed Claim.
They continue descending until there are no Redacted Claim Hashes at any level of the hierarchy for which they have a corresponding disclosure.
A walkthrough of processing an example with nested disclosures is in <xref target="nesting-walkthrough"/>.</t>
        <figure anchor="edn-nested-blinded">
          <name>EDN Example of SD-CWT with Nested Redacted Claims</name>
          <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
    ]
]]></sourcecode>
        </figure>
        <t>After applying the disclosures of the nested structure above, the disclosed Claims Set visible to the Verifier would look like the following:</t>
        <figure anchor="edn-validated">
          <name>EDN of validated nested claims</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.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>
        </figure>
      </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-and-linkability">
        <name>Correlation and Linkability</name>
        <t>The term linkability or unlinkability applies to presentations of SD-CWT in the same ways that it applies to SD-JWT as described in <xref section="10.1" sectionFormat="of" target="RFC9901"/>.</t>
        <t>SD-CWT cannot prevent Issuer-Verifier linkability.
Any presentation of an SD-CWT can be correlated with its issuance if an Issuer and Verifier cooperate.
In cases where the Issuer is part of the privacy threat model, a different mechanism than SD-CWT is needed.</t>
        <t>Presentations of the same SD-CWT to multiple Verifiers can be correlated by matching on the signature component of the COSE_Sign1.
That is, SD-CWT does not naturally provide Verifier-Verifier unlinkability.
Verifier-Verifier unlinkability can be achieved by requesting a fresh, uncorrelated copy of the credential for each presentation, at a credential management complexity cost.
This assumes that the revealed claims do not contain information that could enable Verifiers to correlate presentations.
If the claims, or the timing or structure of their presentation, leak correlatable information, then fresh copies of credentials may be insufficient.
SD-CWT is designed to mitigate such leakage; however, implementers must ensure that no leakage occurs (for example, by appropriately using decoy digests, see <xref target="decoys"/>).</t>
        <t>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 for the Issuer 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, by choosing different numeric encodings for certain data elements, or by incorporating fewer or more decoys (see <xref target="decoys"/>).
Likewise the Holder can encode information in the KBT.
<xref section="B" sectionFormat="of" target="I-D.ietf-cbor-serialization"/> provides guidance for constructing application profiles that further constrain CBOR encoding.
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 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 non-redacted 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 disclosure of a subset of its claims can have significant privacy implications:</t>
        <ul spacing="normal">
          <li>
            <t>Revealing citizenship status may expose an individual to discrimination</t>
          </li>
          <li>
            <t>Date of birth combined with any other attribute enables age-based profiling</t>
          </li>
          <li>
            <t>Biometric data, even if selectively disclosed, presents irreversible privacy risks</t>
          </li>
          <li>
            <t>The mere possession of a passport from certain countries can be sensitive information</t>
          </li>
        </ul>
        <t>In contrast, a legal entity certificate has fundamentally different privacy considerations:</t>
        <ul spacing="normal">
          <li>
            <t>The entity's legal name and registration number are often public information</t>
          </li>
          <li>
            <t>Business addresses and contact details may already be in public registries</t>
          </li>
          <li>
            <t>Authorized signatories' names might be required for legal validity</t>
          </li>
          <li>
            <t>The primary concern is often business confidentiality rather than personal privacy</t>
          </li>
        </ul>
        <t>These differences mean that:</t>
        <ul spacing="normal">
          <li>
            <t>Passport credentials should minimize non-redacted claims and maximize holder control over optional elements</t>
          </li>
          <li>
            <t>Legal entity certificates might reasonably require disclosure of more fields to establish business legitimacy</t>
          </li>
          <li>
            <t>The granularity of selective disclosure should match the credential type's privacy sensitivity</t>
          </li>
          <li>
            <t>Default disclosure sets must be carefully calibrated to each credential's risk profile</t>
          </li>
        </ul>
        <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:</t>
        <ul spacing="normal">
          <li>
            <t>The sensitivity spectrum of contained attributes</t>
          </li>
          <li>
            <t>Likely disclosure scenarios and their privacy impacts</t>
          </li>
          <li>
            <t>Correlation risks when attributes are combined</t>
          </li>
          <li>
            <t>Long-term privacy implications of disclosed information</t>
          </li>
          <li>
            <t>Cultural and jurisdictional privacy expectations</t>
          </li>
        </ul>
      </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, an attacker might seek to attack the process by which a Verifier obtains the public keys of Issuers.
An attacker who can manipulate the process by which a Verifier obtains information about Issuer public keys could substitute their own keys, enabling credential forgery while appearing to be a trusted Issuer.</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="RFC9901"/> apply, with additional attention to disclosure coercion risks.
Holders can be pressured to disclose more claims than are necessary for a given transaction.
This risk is heightened when a Verifier does not provide adequate data protection practices, when disclosed attributes derive from highly trusted authorities (for example, government-issued credentials), and because disclosure is effectively irreversible once data has been shared.</t>
        <t>Mitigations include mechanisms by which Verifiers demonstrate eligibility to receive sensitive claims, Holder-side evaluation of Verifier compliance posture and certifications, and use of trust lists curated by trusted parties to identify responsible Verifiers.
In the absence of such safeguards, including Verifier trust lists, Holders remain exposed to over-identification and long-term misuse of disclosed information.</t>
        <t>Implementers deploying SD-CWT in credential systems should review <xref target="W3CTAG-Credential-Abuse"/>,
which discusses broader risks of credential abuse including surveillance, exclusion, and overuse.</t>
      </section>
      <section anchor="disclosure-of-decoys">
        <name>Disclosure of Decoys</name>
        <t>Issuers control the claimset and may include decoy digests to obscure the number of claims in a credential.
Unless all decoy disclosures are made available to Holders, an Issuer could use this mechanism to hide claims from Holders without their knowledge.
A Holder receiving a credential with undisclosed decoys cannot distinguish between a digest that conceals a real claim and one that is genuinely a decoy.
This creates a severe privacy risk: an Issuer could embed hidden claims — such as behavioral flags, risk scores, or sensitive attributes — that Verifiers can later be given selective access to, without the Holder's awareness or consent.</t>
      </section>
      <section anchor="random-numbers">
        <name>Random Numbers</name>
        <t>Each salt used to protect disclosed claims <bcp14>MUST</bcp14> be generated independently.
Identical salt values, or values that can be correlated, might allow a Verifier to recover redacted values that were not disclosed.</t>
        <t>The salts <bcp14>MUST</bcp14> be generated using fresh randomness or from a source that has outputs cannot be predicted by any potential Verifier.
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 needs to be evaluated in terms of the confidential and privacy constraints associated with the credential type.
Conceptually, the Holder is both the Issuer and subject of the KBT, and the subject of the SD-CWT.
Presence of an "iss" or "sub" claim in the KBT would be superfluous, so they <bcp14>MUST NOT</bcp14> be present.</t>
        <t>As with any self-assigned identifiers, Verifiers need to take care to verify that the KBT "iss" and "sub" claims match the subject in the 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.</t>
        <t>Likewise, Holders and Verifiers need to 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.
If the Holder does not verify the "iss" claim in the SD-CWT, an active attacker could be inserted between the Issuer and the Holder.
If the Verifier does not verify the "iss" claim in the SD-CWT, there is no assurance that the Holder is authentic.</t>
        <t>Finally, the Verifier needs to verify that the time claims in both the SD-CWT and KBT are self-consistent and that the 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"/>.</t>
      </section>
      <section anchor="revocation-and-status-lists">
        <name>Revocation and Status Lists</name>
        <t>Currently, CWTs do not have a standard notion of revocation in the same way that <xref target="RFC5280"/> has Certificate Revocation Lists to invalidate X.509 certificates.
CWTs and JWTs do have a notion of status lists <xref target="I-D.ietf-oauth-status-list"/>.
If an SD-CWT is using <xref target="I-D.ietf-oauth-status-list"/>, the status check should be confirmed after the KBT is verified, to protect the verifier from accessing network resources specified in forged tokens.
It does not make sense to apply status lists to KBTs.</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="use-of-authenticated-encryption-for-encrypted-disclosures">
        <name>Use of authenticated encryption for encrypted disclosures</name>
        <t>This section provides justification of the choice of AEAD (or generally authenticated) algorithms for encrypted disclosures in SD-CWT versus unauthenticated encryption.</t>
        <ol spacing="normal" type="1"><li>
            <t>AEAD algorithms (especially AES_GCM) are among the most widely available cryptographic algorithms.
Implementations of these algorithms are generally well tested and documented across a wide range of environments and programming environments, and often benefit from hardware accelleration.
Unauthenticated algorithms are less widely available and are often only available in "subtle" cryptographic interfaces.
Use of a mainstream AEAD algorithm is less likely to trigger false alarms in security audits than unauthenticated encryption algorithms.</t>
          </li>
          <li>
            <t>Since SD-CWTs support nested disclosures, a Verifier may need to decrypt and process disclosures from an honest Holder at multiple depths to find the Salted Disclosed Claim and Redacted Claim Hash associated with a specific Redacted Claim.
Using an authenticated algorithm allows the Verifier to determine immediately if a specific decryption succeeded or failed.
It also prevents the Verifier from keeping state for encrypted disclosures that were not correctly decrypted.
Knowing exactly when decryption fails makes troubleshooting easier, and error handling more straightforward to implement.</t>
          </li>
          <li>
            <t>The amount of time</t>
          </li>
          <li>
            <t>In the target environments (ex: RATS), the performance penalty of using authenticated encryption is minor compared the other cryptographic operations already in use in those environments.
Reuse of cryptographic algorithms compatible with existing profiles and cipher suites was considered more important than the performance gain of using unauthenticated encryption.</t>
          </li>
          <li>
            <t>If desired by the community, it is possible to add an unauthenticated encryption mode (with appropriate guidance) as a future extension.</t>
          </li>
        </ol>
      </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 relevant to the integrity of encrypted disclosures in SD-CWT before the corresponding plaintext can be hashed and matched to a Redacted Claim.
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,?(uint/tstr/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 from RFC8126</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="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="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="I-D.ietf-cbor-edn-literals">
          <front>
            <title>Concise Diagnostic Notation (CDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="29" month="September" year="2026"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Concise Diagnostic Notation (CDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

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

   It also specifies registry-based extension points and uses them to
   support text representations such as of epoch-based dates/times and
   of IP addresses and prefixes.


   // (This cref will be removed by the RFC editor:) This revision -28
   // attempts to reflect various feature removals that have been
   // discussed on the mailing list, as a delta to -27.  Note that, with
   // the focus on the delta, this text is necessary somewhat
   // inconsistent.  The chairs decided not to include further editorial
   // improvements that could achieve a greater degree of consistency.
   // The text may be misleading as some of the explanatory sections no
   // longer fully reflect the technical content.  The text also does
   // not have WG input yet on any renaming decisions (CDN name, b1/t1
   // name).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-28"/>
        </reference>
        <reference anchor="RFC8610" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8610.xml">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="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="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="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="RFC9901">
          <front>
            <title>Selective Disclosure for JSON Web Tokens</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="November" 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="RFC" value="9901"/>
          <seriesInfo name="DOI" value="10.17487/RFC9901"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-sd-jwt-vc">
          <front>
            <title>SD-JWT-based Verifiable Digital 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="27" month="October" year="2026"/>
            <abstract>
              <t>   This specification describes data formats as well as validation and
   processing rules to express Verifiable Digital Credentials with JSON
   payloads with and without selective disclosure based on the SD-JWT
   format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-sd-jwt-vc-22"/>
        </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="5" month="July" year="2026"/>
            <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-05"/>
        </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="W3CTAG-Credential-Abuse" target="https://w3ctag.github.io/prevent-credential-abuse/">
          <front>
            <title>Preventing the Abuse of Digital Credentials</title>
            <author>
              <organization>W3C Technical Architecture Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </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>
        <reference anchor="I-D.ietf-cbor-serialization">
          <front>
            <title>CBOR Serialization and Determinism</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="23" month="October" year="2026"/>
            <abstract>
              <t>   RFC 8949 defines CBOR, a standard for serializing data types such as
   integers, strings, and arrays into encoded bytes.  CBOR serialization
   is flexible, allowing data types to be encoded in multiple ways to
   accommodate deployment in constrained environments.  This document
   normatively defines one particular serialization, called "preferred-
   plus serialization," that is suitable for the majority of CBOR-based
   protocols.  Protocol designers and implementers who choose it need
   not understand or specify serialization details themselves.  This
   document also normatively defines a deterministic serialization.
   These serializations are largely compatible with those widely
   implemented by the CBOR community.

   This document updates RFC 8949 with a new rule that limits how new
   tag definitions can affect the CBOR data model.

   This document provides clarifications to RFC 8949 regarding bignums
   and floating-point NaN handling, along with general background
   information on serialization, determinism, and CBOR byte-string
   wrapping.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-serialization-11"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-status-list">
          <front>
            <title>Token Status List (TSL)</title>
            <author fullname="Tobias Looker" initials="T." surname="Looker">
              <organization>MATTR</organization>
            </author>
            <author fullname="Paul Bastian" initials="P." surname="Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <author fullname="Christian Bormann" initials="C." surname="Bormann">
              <organization>SPRIND</organization>
            </author>
            <date day="21" month="June" year="2026"/>
            <abstract>
              <t>   This specification defines a status mechanism called Token Status
   List (TSL), data structures and processing rules for representing the
   status of tokens secured by JSON Object Signing and Encryption (JOSE)
   or CBOR Object Signing and Encryption (COSE), such as JWT, SD-JWT,
   CBOR Web Token, and ISO mdoc.  It also defines an extension point and
   a registry for future status mechanisms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-status-list-21"/>
        </reference>
      </references>
    </references>
    <?line 2217?>

<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-preissued

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
   * label => safe_value
}

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

sd-payload = {
    ; standard claims
      &(iss: 1) ^ => tstr, ; "https://issuer.example"
    ? &(sub: 2) ^ => tstr, ; "https://holder.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-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"
      time-or-cti-claims,
    ? &(cnonce: 39) ^ => bstr,
    * label => safe_value
}

time-or-cti-claims = (
  ; Requires either time claims that include an iat OR a cti claim.
  ; Note that in CDDL, the // operator has very low precedence (see
  ; Section 2.2.2 of RFC 8610)
  ;
  ; It is possible to have both a cti and time claims, but
  ; time-or-cti-claims insures at least cti or iat is present
  ? &(exp: 4) ^ => secs,
  ? &(nbf: 5) ^ => secs,
    &(iat: 6) ^ => secs  //
    &(cti: 7) ^ => bstr
)
sd-cwt-preissued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor preissuance_map,
   signature: bstr
])

; 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>(uint .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)

; exclude reserved simple values (24 through 31) from Table 4 of
; RFC 8949, and redacted keys array
safe_simple =  0..23 / 32..58 / 60..255
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,              ; nonce of N_MIN octets
  bstr,              ; the encryption ciphertext output of a
                     ;   bstr-encoded-salted
  bstr,              ; the corresponding authentication tag
  ?aead-key-context  ; optional context to select the correct key
]
aead-key-context = uint / tstr / thumbprint
thumbprint = bstr    ; a COSE key thumprint
; redacted_claim_keys is used as a map key. The corresponding value is
; an array of Redacted Claim Hashes whose corresponding unredacted 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>
      </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 KBT then includes the issued SD-CWT, including the Holder-selected disclosures.
Because the entire SD-CWT is included as a claim in the KBT, the disclosures are covered by the Holder's signature in the 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 Key Thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
8343d73cdfcb81f2c7cd11a5f317be8eb34e4807ec8c9ceb282495cffdf037e0
]]></artwork>
        <t>The COSE Key Thumbprint URI:</t>
        <artwork><![CDATA[
urn:ietf:params:oauth:ckt:g0PXPN_LgfLHzRGl8xe-jrNOSAfsjJzrKCSVz_3wN-A
]]></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 Key Thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
554550a611c9807b3462cfec4a690a1119bc43b571da1219782133f5fd6dbcb0
]]></artwork>
        <t>The COSE Key Thumbprint URI:</t>
        <artwork><![CDATA[
urn:ietf:params:oauth:ckt:VUVQphHJgHs0Ys_sSmkKERm8Q7Vx2hIZeCEz9f1tvLA
]]></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="nesting-walkthrough">
      <name>Nesting Example Walkthrough</name>
      <section anchor="issuer-1">
        <name>Issuer</name>
        <t>How the Issuer decides which claims to include in an SD-CWT Claims Set, and which claims in a Claims Set to redact is a local policy matter outside of the scope of this specification.</t>
        <t>Here we will start with the example Claims Set from <xref target="edn-nested-unblinded"/>.</t>
        <t>The Holder or the administrator of the Issuer could use the To Be Redacted tag (see <xref target="tbr-tag"/>) and the To Be Decoy tag (see <xref target="tb-decoy-tag"/>) as a hint to the Issuer to indicate claims to be redacted or locations for decoys.
The examples in this document were produced using this method.</t>
        <t>Below is the nested Claims Set example from <xref target="edn-nested-unblinded"/> with To Be Redacted tags wrapping the claims that are actually redacted in our nested example.</t>
        <figure>
          <name>EDN example of Nested Claims Set tagged with desired redactions</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://holder.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 /
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 1549560720,        / 2019-02-07T17:32:00 /
            58(501): "DCBA-101777", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "co",        / region=Colorado ; REDACT /
                58(3): "80302"      / postcode ; REDACT /
            }
        }),
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 1612560720,        / 2021-02-04T20:14:00 /
            58(501): "EFGH-789012", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "nv",        / region=Nevada ; REDACT /
                58(3): "89155"      / postcode ; REDACT /
            }
        }),
        58({                        / REDACT /
            500: true,              / inspection passed /
            502: 17183928,          / 2023-01-17T17:19:00 /
            58(501): "ABCD-123456", / inspector license ; REDACT /
            58(503): {              / REDACT /
                1: "us",            / United States /
                58(2): "ca",        / region=California ; REDACT /
                58(3): "94188"      / postcode ; REDACT /
            }
        })
    ]
}
]]></sourcecode>
        </figure>
        <t>The Issuer in our example respects the hints and produces the following issued SD-CWT.
The Issuer has generated 15 disclosures.</t>
        <ul empty="true">
          <li>
            <t>Note that the Issuer can list the issued disclosures (if any) in any order.</t>
          </li>
        </ul>
        <figure>
          <name>The Issued CWT containing nested redacted claims</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'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'e70e23e77176fa59beb0b2559943a079',
            /value/  "co",
            /claim/  2   / region=Colorado /
        ]>>,         / Redacted Claim Hash begins 1b897171 /
        <<[
            /salt/   h'cbbf1cd3d1a5da83e1d92c08d566a481',
            /value/  "80302",
            /claim/  3   / postcode=80302 /
        ]>>,         / Redacted Claim Hash begins 49412884 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
        <<[
            /salt/   h'9a3bc899090435650b377199450c1fa1',
            /value/  "EFGH-789012",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 98d15f82 /
        <<[
            /salt/   h'5e852d2eef59c0ebeab8c08fca252cc5',
            /value/  "nv",
            /claim/  2   / region=Nevada /
        ]>>,         / Redacted Claim Hash begins da268d9b /
        <<[
            /salt/   h'3dd46bd7dea09c9ee7dfe4e0d510129b',
            /value/  "89155",
            /claim/  3   / postcode=89155 /
        ]>>,         / Redacted Claim Hash begins 61dcdb8c /
        <<[
            /salt/   h'c225607427e01072bbafcce7e48049e3',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'da268d9b81c19c02fcea7c4cadc2e23f
                           0454a4550a380cde8b0842463ed034da',
                         h'61dcdb8cbae7b66c3e36b2510daf61ba
                           9168a50f20f4cad4213ed231e33d5b7b'
                     ]
                     },
            /claim/  503   / Las Vegas location /
        ]>>,         / Redacted Claim Hash begins 5dec8f26 /
        <<[
            /salt/   h'1b248d469cf00b8dfa896f069f04697b',
            /value/  {
                         500: true,
                         502: 1612560720,
                         simple(59): [
                         h'98d15f82dfadc18f5700582ff47b286c
                           d7ca047bb1e0529a5374c59d6dc5057d',
                         h'5dec8f268d3b9735936740c91b9baf00
                           43de8ee42357a414e3e8d4ab098fae5d'
                     ]
                     }   / inspection 4-Feb-2021 /
        ]>>,         / Redacted Claim Hash begins 0dfdc69d /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'a965de35aa599d603fe1b7aa89490eb0',
            /value/  "94188",
            /claim/  3   / postcode=94188 /
        ]>>,         / Redacted Claim Hash begins cf397a08 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
    ]
  },
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://holder.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'
      }
    },
    /inspection history log/ 504: [
      / inspection 7-Feb-2019 /
      60(h'ca6b851688236744ff0cf0814508e4f1
           81d3811bfec4ed5bb8ace7823132dbc0'),
      / inspection 4-Feb-2021 /
      60(h'0dfdc69d0efb65eec14bf28af78cd8f0
           6cabfe8e2b1a0611ef8bca869ce35b61'),
      / inspection 17-Jan-2023 /
      60(h'20d9bb11363bae49851cfd4a3f166539
           d0aa00433c30aede18380bfa98d781dc')
    ]
  } >>,
  / CWT signature / h'8c1e9957b573191c47a9f4244abc4be2
                      7c9944c2a992e015a86e19c24b041195
                      51ee920061066edb22823114f96dac2a
                      1bfa9c7a503e3033a0cd5aad6d9165f7
                      5483e9a79eb31f9bfdfb07df5fb7b8e5
                      0da8acbabad974999d12096f4ae8b420'
])
]]></sourcecode>
        </figure>
        <t>Now the issued SD-CWT is provided to the Holder for processing.</t>
      </section>
      <section anchor="holder">
        <name>Holder</name>
        <t>Once it receives an issued SD-CWT from the Issuer, the Holder validates all of the disclosures as described in <xref target="holder-validation"/>.
The Holder needs to unwrap all nested claims starting with the top level and proceeding deeper, to insure that there are no unmatched Redacted Claim Hashes anywhere in the document, and no unmatched disclosures.</t>
        <t>Once the issued CWT is validated, the Holder can create multiple presentations, generating different KBTs (as described in <xref target="kbt"/>) for each presentation by changing, for example, the audience and the choice of disclosures.
The privacy issues in <xref target="privacy"/> apply.</t>
        <t>In our example, the Holder chooses to disclose two of the inspections (from 2019 and 2023), the inspector license numbers and partially redacted location maps from both of these inspections, and the region (California) in the location map of the 2023 inspection.
In our example, the Holder sorts these disclosures in ascending order of the Redacted Claim Hash corresponding to each disclosure. (It could have used <em>any</em> order.)</t>
        <figure>
          <name>The Holder's choice of nested disclosures, sorted</name>
          <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'cd99b3858f1d659f9d16039abf8c5fba',
            /value/  {
                         500: true,
                         502: 1674004740,
                         simple(59): [
                         h'af375dc3fba1d082448642c00be7b2f7
                           bb05c9d8fb61cfc230ddfdfb4616a693',
                         h'9d151abeb800adcc11ff10ff61fbd3d7
                           5944c134b40a24abef1787d3ae6583aa'
                     ]
                     }   / inspection 17-Jan-2023 /
        ]>>,         / Redacted Claim Hash begins 20d9bb11 /
        <<[
            /salt/   h'52da9de5dc61b33775f9348b991d3d78',
            /value/  "ca",
            /claim/  2   / region=California /
        ]>>,         / Redacted Claim Hash begins 2470fb91 /
        <<[
            /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
            /value/  "DCBA-101777",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins 7257a869 /
        <<[
            /salt/   h'483e4b3c194df6073a9c41ca9f274067',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'2470fb9175b062c347ab3c3a19776d02
                           476112a17cd7cfc9416664bc058c220b',
                         h'cf397a08917528624ca3b332c9edcc54
                           a72c9411dd5983f68017ce160f709f52'
                     ]
                     },
            /claim/  503   / San Francisco location /
        ]>>,         / Redacted Claim Hash begins 9d151abe /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /value/  "ABCD-123456",
            /claim/  501   / inspector_license_number /
        ]>>,         / Redacted Claim Hash begins af375dc3 /
        <<[
            /salt/   h'c23a4d192be75dbd583be570482de8dd',
            /value/  {
                         1: "us",
                         simple(59): [
                         h'1b89717167f39d51eec08b13baeda570
                           eff5d0aedaa1d7d0821185c33634a5a0',
                         h'49412884fa1e3787c17d1320bdd48f6e
                           0e5365da010cde0571d4a7effd13cc2a'
                     ]
                     },
            /claim/  503   / Denver location /
        ]>>,         / Redacted Claim Hash begins c24c646b /
        <<[
            /salt/   h'2df7d2c105b5bf3acf9c698f3658552f',
            /value/  {
                         500: true,
                         502: 1549560720,
                         simple(59): [
                         h'7257a8697dfa40221079b00fb65fe587
                           c310e6ca3da1aa33b090335de66ec810',
                         h'c24c646b52fecd773c6ea01c6caa5a73
                           422b85d3afa5900fa998336d83a88025'
                     ]
                     }   / inspection 7-Feb-2019 /
        ]>>,         / Redacted Claim Hash begins ca6b8516 /
    ]
]]></sourcecode>
        </figure>
        <t>Due to the way the claims are nested, disclosing the region of the 2023 inspection would not have been useful without disclosing the enclosing location map and its enclosing 2023 inspection array element.
In other words, the Holder needs to make sure that any intermediate levels of nested claims it wishes to disclose are also disclosed, otherwise the Verifier will not be able to validate them.
At best, such "orphaned" disclosures will be discarded by the Verifier, and at worst, the Verifier could reject the entire SD-CWT.</t>
        <t>The Holder then presents its KBT to the Verifier.</t>
      </section>
      <section anchor="verifier">
        <name>Verifier</name>
        <t>The Verifier receives the Holder's KBT, which contains an SD-CWT with the Holder's choice of (nested) disclosures.
The example does not show the KBT for brevity; it is always used in an actual presentation.
In the example the disclosures are sorted in the order of the Redacted Claim Hash corresponding to each disclosure.
(The Holder can present its disclosures in any order.)</t>
        <t>The Verifier needs to match the disclosures to their corresponding Redacted Claims in the Claims Set in the payload of our example SD-CWT.
The Verifier needs to calculate the Redacted Claim Hash for each of the disclosures it receives.</t>
        <t>Typically the Verifier would create a lookup table of disclosures indexed by the Redacted Claim Hash.
Comments in all the examples show the first 4 bytes of the Redacted Claim Hash of each disclosure.
The comments are only present in the diagnostic (text) notation to make it easier for the reader; comments are not included in CWTs or in SD-CWT in their native form.</t>
        <t>Our example document only contains three Redacted Claims that are currently visible.</t>
        <figure>
          <name>Redacted Claims at Level 1</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  / inspection 7-Feb-2019 /
  60(h'ca6b851688236744ff0cf0814508e4f1
       81d3811bfec4ed5bb8ace7823132dbc0'),
  / inspection 4-Feb-2021 /
  60(h'0dfdc69d0efb65eec14bf28af78cd8f0
       6cabfe8e2b1a0611ef8bca869ce35b61'),
  / inspection 17-Jan-2023 /
  60(h'20d9bb11363bae49851cfd4a3f166539
       d0aa00433c30aede18380bfa98d781dc')
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier looks for matching Redacted Claim Hashes among the disclosures it has received.
In this example it finds two matching hashes (the first and last hash in the inspection history log claim array).
The Verifier replaces the two matching Redacted Claim Hashes with their disclosed values (in this case, the last and first disclosures, which are both replacing Redacted Claim Elements) and removes the second Redacted Claim Hash.
The Verifier no longer considers the matched disclosures; each disclosure cannot match more than one Redacted Claim Hash.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 1</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    simple(59): [
      h'7257a8697dfa40221079b00fb65fe587
        c310e6ca3da1aa33b090335de66ec810',
      h'c24c646b52fecd773c6ea01c6caa5a73
        422b85d3afa5900fa998336d83a88025'
    ]
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    simple(59): [
      h'af375dc3fba1d082448642c00be7b2f7
        bb05c9d8fb61cfc230ddfdfb4616a693',
      h'9d151abeb800adcc11ff10ff61fbd3d7
        5944c134b40a24abef1787d3ae6583aa'
    ]
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier then repeats the process again at the next "level" of nesting.
In this example, all the visible Redacted Claims happen to be Redacted Claim Keys.
The second, third, fourth, and sixth disclosures match.
The Verifier replaces these Redacted Claims with the corresponding Claim Keys from the disclosures.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 2</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    501: "DCBA-101777",
    503: {
      1: "us",
      simple(59): [
        h'1b89717167f39d51eec08b13baeda570
          eff5d0aedaa1d7d0821185c33634a5a0',
        h'49412884fa1e3787c17d1320bdd48f6e
          0e5365da010cde0571d4a7effd13cc2a'
      ]
    }
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    501: "ABCD-123456",
    503: {
      1: "us",
      simple(59): [
        h'2470fb9175b062c347ab3c3a19776d02
          476112a17cd7cfc9416664bc058c220b',
        h'cf397a08917528624ca3b332c9edcc54
          a72c9411dd5983f68017ce160f709f52'
      ]
    }
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier then repeats the process again at the next "level" of nesting.
The Verifier finds a single matching disclosure (the second disclosure).
The Verifier replaces the matching Redacted Claim Hash and removes the others.</t>
        <figure>
          <name>Claims after revealing disclosures at Level 3</name>
          <sourcecode type="cbor-diag"><![CDATA[
...
/inspection history log/ 504: [
  {
    500: true,
    502: 1549560720,
    501: "DCBA-101777",
    503: {
      1: "us"
    }
  }   / inspection 7-Feb-2019 /,
  {
    500: true,
    502: 1674004740,
    501: "ABCD-123456",
    503: {
      1: "us",
      2: "ca" / region=California /
    }
  }   / inspection 17-Jan-2023 /
]
...
]]></sourcecode>
        </figure>
        <t>The Verifier has no more Redacted Claim Hashes to process.
Assuming the other validation steps pass, the Verifier can pass the Validated Claims Set on to the application.</t>
        <t>If there were remaining disclosures, the SD-CWT is invalid.
The Verifier could decide to ignore the extra disclosures, or to reject the entire SD-CWT depending on its local policy.
Extra disclosures cannot be verified and indicate incorrect behavior by the Holder.</t>
      </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 non-redacted 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-08">
        <name>draft-ietf-spice-sd-cwt-08</name>
        <t>Normative changes:</t>
        <ul spacing="normal">
          <li>
            <t>Add more text about nesting validation in new section after Section 6.2 on Holder Validation (PR#292).</t>
          </li>
          <li>
            <t>Add optional key context to AEAD encrypted disclosures (PR#285).</t>
          </li>
          <li>
            <t>Use clearer normative language around CBOR tags and nesting (PR#262).</t>
          </li>
          <li>
            <t>Fix AEAD nonce length and mention that AAD is empty (PR#260).</t>
          </li>
        </ul>
        <t>Non-normative changes:</t>
        <ul spacing="normal">
          <li>
            <t>PR#290 / Issue #284
            </t>
            <ul spacing="normal">
              <li>
                <t>Clarify cnonce in SD-CWT is intended for 2-party model.</t>
              </li>
              <li>
                <t>Clarify Verifier behavior when extra disclosures are present.</t>
              </li>
              <li>
                <t>In elided KBT description point to fully worked example</t>
              </li>
              <li>
                <t>Remove incorrect compatibility discussion</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Rename device.example to holder.example (PR#289).</t>
          </li>
          <li>
            <t>Globally use KBT instead of KBT (PR#288).</t>
          </li>
          <li>
            <t>Add Appendix walking through nested disclosure handling (PR#286).</t>
          </li>
          <li>
            <t>Clean up AEAD encrypted disclosures section and justify used of AEAD (PR#285).</t>
          </li>
          <li>
            <t>Heavy editing pass (PR#283).
            </t>
            <ul spacing="normal">
              <li>
                <t>Renumber Section 4 to Section 3.3 as it is part of the Overview.</t>
              </li>
              <li>
                <t>Move normative statement from Section 3 to Section 6.</t>
              </li>
              <li>
                <t>Improve Figures 2 and 3</t>
              </li>
              <li>
                <t>Remove unused terms or terms used only once.</t>
              </li>
              <li>
                <t>Rearrange order of discussion in Section 7.1</t>
              </li>
              <li>
                <t>Clarify use of <tt>cnonce</tt></t>
              </li>
              <li>
                <t>Remind about special definition of duplicate map keys in To Be Redacted section</t>
              </li>
              <li>
                <t>Miscellaneous typo, minor rewordings, cleanups, and clarifications</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Update references (PR#280 and PR#281).</t>
          </li>
          <li>
            <t>Add change log for -07 and -08 (PR#279).</t>
          </li>
          <li>
            <t>Add COSE key thumbprint URIs to Appendix C (PR#278).</t>
          </li>
          <li>
            <t>Explain why SD-CWT specifies claim requirements (PR#276).</t>
          </li>
          <li>
            <t>Reframe nonce/freshness text (PR#275).</t>
          </li>
          <li>
            <t>Reword discussion of Verifier use of Issuer keys (PR#274).</t>
          </li>
          <li>
            <t>Justify linkage between KBT and CWT; move revocation discussion to its own section (PR#273).</t>
          </li>
          <li>
            <t>Replace blind with redact and unblind with disclose or reveal (PR#272).</t>
          </li>
          <li>
            <t>Remove redundant Section 16.7 (PR#271).</t>
          </li>
          <li>
            <t>Explain why Issuer should verify Holder key (PR#266).</t>
          </li>
          <li>
            <t>Reword applicability and linkability discussions (PR#265).</t>
          </li>
          <li>
            <t>Reword disclosure threats and mitigations (PR#264).</t>
          </li>
          <li>
            <t>Improve Determinism section (PR#261).</t>
          </li>
          <li>
            <t>Better explain To Be Decoy integer uniqueness requirements (PR#259).</t>
          </li>
          <li>
            <t>Temporarily remove Rust CDDL tool from cargo.txt to solve a CI issue (PR#267).</t>
          </li>
          <li>
            <t>Remove Mike Jones from Acknowledgments (except in list of SD-JWT contributors) since he is already listed as a Contributor.</t>
          </li>
          <li>
            <t>Allowed then Reverted that media types can omit <tt>application/</tt> (PR#283 then PR#287).</t>
          </li>
        </ul>
      </section>
      <section anchor="draft-ietf-spice-sd-cwt-07">
        <name>draft-ietf-spice-sd-cwt-07</name>
        <ul spacing="normal">
          <li>
            <t>Replace claim requirements with tables (PR#258).</t>
          </li>
          <li>
            <t>Explain To Be Decoy integer uniqueness requirements (PR#257).</t>
          </li>
          <li>
            <t>Note that Holder needs to verify disclosure of all decoys (PR#256).</t>
          </li>
          <li>
            <t>Discuss security considerations of decoys to Holders (PR#254).</t>
          </li>
          <li>
            <t>Remove discussion of Certificate and Key Transparency (PR#253).</t>
          </li>
          <li>
            <t>Remove Threat Model section and add reference to W3C TAG credential doc (PR#252).</t>
          </li>
          <li>
            <t>Address several issues in PR#251:
            </t>
            <ul spacing="normal">
              <li>
                <t>Modify introduction to remove "mandatory to disclose";</t>
              </li>
              <li>
                <t>Note the confirmation keys are mandatory early;</t>
              </li>
              <li>
                <t>Replace "based on" with "inspired by" SD-JWT;</t>
              </li>
              <li>
                <t>Move text from the Introduction into the Overview;</t>
              </li>
              <li>
                <t>Move Figures 2 and 3 into the Overview;</t>
              </li>
              <li>
                <t>Use rounded corners in Figure 3;</t>
              </li>
              <li>
                <t>Clarify opening sections;</t>
              </li>
              <li>
                <t>Add "generic container format, not a specific credential type" language;</t>
              </li>
              <li>
                <t>Move normative language out of Introduction;</t>
              </li>
              <li>
                <t>Represent no disclosure by omitting sd_claims;</t>
              </li>
              <li>
                <t>Reword discussion of typ protected header;</t>
              </li>
              <li>
                <t>Clarify language about claim "name";</t>
              </li>
              <li>
                <t>Replace a lowercase must.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Allow Holder to use cti instead of iat (PR#250).</t>
          </li>
          <li>
            <t>Add Figure descriptions throughout (PR#246).</t>
          </li>
          <li>
            <t>Improve Figures 2 and 3 (PR#245).</t>
          </li>
          <li>
            <t>Remove the description of "custom" claims (PR#244).</t>
          </li>
          <li>
            <t>Add note about Holder choice of order in relevant section (PR#243).</t>
          </li>
          <li>
            <t>Explain CBOR-specific terms and concepts: EDN, CDDL, tags, simple values (PR#242).</t>
          </li>
          <li>
            <t>Add Holder check for sufficient number of decoys (PR#241).</t>
          </li>
          <li>
            <t>Explain why legal CBOR simple values have a gap (PR#240).</t>
          </li>
          <li>
            <t>Clarify legal range of floating-point dates (PR#239).</t>
          </li>
          <li>
            <t>Make CDDL consistent with IANA section: use uint for To Be Decoy value (PR#238).</t>
          </li>
          <li>
            <t>Split the CDDL into individual fragments; add sd-cwt-preissued type (PR#235).</t>
          </li>
          <li>
            <t>Rewrite the Makefile to automatically run validation against the combined CDDL (PR#185).</t>
          </li>
          <li>
            <t>Move note about redacted array elements (PR#196).</t>
          </li>
          <li>
            <t>Expand discussion of random numbers (PR#231).</t>
          </li>
          <li>
            <t>Fix a few places where lists missed an initial blank line (PR#225).</t>
          </li>
          <li>
            <t>Remove assumption of claim keys being used often (PR#200).</t>
          </li>
          <li>
            <t>Remove extraneous trailing dot in references Section (PR#228).</t>
          </li>
          <li>
            <t>Distinguish Verifier-Verifier and Verifier-Issuer unlinkability (PR#223).</t>
          </li>
        </ul>
      </section>
      <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>
    </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:
H4sIAAAAAAAAA+y96XYbR5Iw+h9PUUOdMyJtgqy9CpTtHmpxWz22rGvJ3ac/
X41YSxZZLRDFQQGU2JLmWb5nuU92Y8m1UABJ9XLnu2fYpy0SyDUyMjL2mE6n
k+sTL5qs2tVcnHh7r8RcVKv2WnhP276ad/16Kbwnj3/+xfuTKL3X3Tux6L39
V0+nT/70+mBvUpTlUlxjP/pkb1IVK3HeLW9OvH5VT+quWhSXMG69LJrVtBWr
ZtpftZWY9vW0er+a+rNJv1qK4vLEe/7s9fee98Ar5n0HA7aLWlwJ+M9itXfo
7Ym6XXXLtpjjH89PH8M/3RJ+++X193uTxfqyFMuTSQ2Tn0yqbtHDKtf9ibda
rsWkgPFpZ9V62a5u9ibvu+W782W3vlKfCu9lsVqJJWytgVGfL/B3sfKeLJ/h
/DBrvzd5J26gY30y8aZe1fWC/n2/wn96DbRaA21yLRZrWI3n3X8qz1vdXOFp
/AlW2i7Ovd/jEPj5ZdHO4XOC4b8hOI+65Tl+USyrC/jiYrW66k+Oj7EdfgRr
OlLNjvGD43LZve/FMY1wjD3P29XFukSI4+m8P+cDOt5yYthjDmDuV9ZsTs8j
HvCo7baNse3zo4vV5XxvMinWq4tuiaCbwv89r1nP54xGez+11UUh5t7LZbfs
qnd79D3srVi0fy1Wbbc48S4FgB9mp6+EBNjlFXf4N/Xt3tjoPy9b4b1aCTjO
sZFfL4taXItl29zUzuiAmOLfumUQ0cB65HYBKPjDkfe4Xb676OZ/pQ95qh/E
4p37OUx14n2/LNaLi64RS+/V89f0ubphI1/J6S9grKNSjsVIAVdgVVQraoX3
S8Bp/XIhYEGrZdH3wssS+q7qaljMwzQOZ8lD/gRuyIn3tFhe9quiXslW68UK
r/TvxfKyWNwMdvjLkfdTcXEzAOYv3UWxMF84kHSAt8SGhKT/do4fweIvAYi4
hWVbrlc2JtB8Px15f+gWoh9MqFDjsf21e4BA3Jrp875fi9p7AlRiPV/B7XL3
+OuiXcHXr1aI5PZCL3n8t+Xbv+Dw/3bRrdRyqRkQFzgLeSN6nKmlmY7aRdMd
TyaLDoCHRAK388v3T/JZPMNfHz95GfrJyWSC7QZNgjCVv6azLJK/zmZ+AHt5
Ov3DnxAPnk+fHlkXqsPbgxfqL0BeryvVcPrHJ7J3kIYn3pORnkDgADsW/RTu
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
iTF5IvwJrHXhwTiKJcExrAB5LlbAZO342CMn3FXHzBfJbYirmAQYXZWRWvZC
0BgmNTT8jzTrmJMjDXwMLntETZ6TKxHelVa6ExDplwHtuCbiwm3qWq5X1HUE
ACBNcHZc5ViGA6DzMEc1ySd+ss00ONlmC5xIo+fQ+OcBPOR3Gwa/yaC0glUb
dGgjo7Kp2jI2ecDCgsmkr18ox8NMvg2ui9nrTl17rzhHcXTF2ukbScP7QVVN
KZiZRJaEiUqNT2KQ9JFzzT4WBlneINLJjtH5wBFPiDSer2Xedam/AgLSySAt
VDT30vXIXTFXvgCB5ZyZWxTM2CAGjTRXS4nWjEbNZWxAxpQZUktVaqAm0RKT
WJP2CkMeLoSaTarMkN1mDT9GZ9LT0zaOpstTPP/HkxMuXq1ch95287eU9+/b
vQCmApF+zzuGAwqOvO/bZb9yj+ESLYlwsXakTlOvEyUbb13R1NXaDbQHpCyA
JYZH3gvxYXU4MvOIbZXUSTqPMLmcqOuc8WW2cqsM85OQIIKAsnV2WCxpm4fD
maOy28gFpyJCxOXV6kYFadoiV8R1aPSu5FkSf20RPzeNMipo2RuL2Fv2T/zm
Wy2Yyoy/lNL5wDTwpP/iSAPquLUBIAmwM8vVt3sx3PN4sGSy+lSrESYauZBd
6oJhVuhJcuT92htlpDvU4PzV0Rv25z4HP5mkR97zLe6O1v0n3ysVerrhPWZ0
B6dmHHlbrbGUNoTrmMq7R6p1x4QlpYwLqXpWnl+WWGlVVeMFXBt9YnYvTMKt
UZESoBJS92wl6+3O0R5sx5tw5kUOzSNxVB7kGMxUGkkNt4VSYegmjihCGm7Z
xMGP4VgSCjieccSVkamM48PujzT2W/vWN8X6bNudsLup67G7mz2bRPDhhPLj
W+ZUnQfTbu88NvOdOw93hmu+/7TY87tvR5dyBwh/d2c4bRzpnfd526neb7V3
2KchnjkQz5yojiuCuzH2O56aDZ23DPY0XnWWlIr1QCi5H8nPDulE/hedqYwZ
26gS2Dmc6YYwlRyMG/paWxd1J2AysB11umQXZ9u5f1Wca/Wn6aMC84ltLmDi
lkkrPRpW2ew7g4XYhUPJ+su6eZJP25yefbbNXG6ecybVcltUewRLH0knBy7Z
NaI/fd7YXfp1hdl+hnwrcRg9e1vJ1spGJ4sntNJXo7CVJEMOabdJcTZ4C4h6
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
3+azt8/eTq7fzWY/vjq7eXp2cDp99/rbe7Ur50hSfcUD4ryPpuc6Ouy3r2b8
beu6+PRTSSd7ml3bVwzZVErxHuSRkaDtzIRsc3TFShUMdvGXXiLnbPEE526h
P5p9zFgIYOpcZnAtMPd9gc7TbLmgYp26QHSS6cIb1SzQNiwc0zavFaeB54to
vrAdjwwLa3ppva7SWYub2rSWM6k2Sm3eTgpjiy5WkGJeMWVaZvMKJbKbFKtq
rVzynOdK2UVft4x71i5bWnrSrsEpvTPOJkUOvsxsVystjscunguL1VUW2FvH
LY3ZySmQkRRJTH7X2XvX3H6Y2nqldvrthVqcZSl1aMVI+wn7RaUzkAVhDfQ7
Ic1ntAqw3IogPStnC3DHJm4YWuwSs4CXc70Mmbtdp8M5HP0M/4JQvVas4NwP
DBBcxvCvX3q0koKkH1U3l/BvBx/1QA4OArfruqAR+q7fabmDluufeIOdwN1x
3R+35Z1ZPIZ/Q/2O3wGGXHrHw3f80H4H8we2nW7xTsd3V98pz5PMcJ4+vvOb
0263nU+86tDt7Dh/Wy9Gb2M47aVkTsDxY+ddwKdTK4417G/+tv51jmSqhL2G
rruDnd5Vs/q4NdtlRN1bqm/6mLPXGYRdt+e7zeJN3/UQxC23d+L1dgIfdl99
t78Zut4WHOTeaHfY8lyv1+ttNItZ8apMEmr593jNwnGIAKunPmif+OPBfMt8
o1l+/O1sgoiKvSPh9q2+BRP5uNIk27D2iMmj2ezbUTbN5lGarVulDIDr3Oi7
getv6AEwIRhjIde9+cn89Wmr+V95wl3Przlh36MT7pz47o7XueuE9w+ePG31
+gPX8//FT3h2VXPCR+oqSqMHne/AC8P/fufb87DcZb9pvwnnGwDxanl0g4GE
3XG+w93RXsvzgw66Zv6lzzeJ6m5wNJ0AL55NHnTGg47X73/RGdOvP4nCiIGi
mgdX8jIkZhTNn5pvY3z2ClMH1nyqA3Z097C5Dm+kKnInhWwiPFkPOKdGk9Le
7mxi9W1EGSOv1AQsBVq17WEx0Y+rt+DivLAcZtX4q5UsaIto2PB+ki/sKC47
omoTq/TMbrdYpL3l4MIVAQIYaZarFhrnPJQg+pt/c3Q2lYmDIuMvJbYVKZ7b
zl/+4mjxI5oC/yTMQn7cCkLEYDJ3OJpfn09SfoTEiUfrbB+4GFChOCgH31vc
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
RPGSZYIXINhE8PxuW+sD/w+1v7j+KoQCAA==

-->

</rfc>
