<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spice-sd-cwt-03" category="std" consensus="true" submissionType="IETF" updates="RFC8392" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title>SPICE SD-CWT</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-03"/>
    <author fullname="Michael Prorock">
      <organization>mesur.io</organization>
      <address>
        <email>mprorock@mesur.io</email>
      </address>
    </author>
    <author fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="March" day="03"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 74?>

<t>This document describes a data minimization technique for use with CBOR Web Token (CWT).
The approach is based on Selective Disclosure JSON Web Token (SD-JWT), with changes to align with CBOR Object Signing and Encryption (COSE).</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 80?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document updates the CBOR Web Token (CWT) specification <xref target="RFC8392"/>, enabling the holder of a CWT to disclose or redact special claims marked disclosable by the issuer of a CWT.
The approach is modeled after SD-JWT <xref target="I-D.draft-ietf-oauth-selective-disclosure-jwt"/>, with changes to align with conventions from CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>.
This specification enables Holders of CWT based credentials to prove the integrity and authenticity of selected attributes asserted by an Issuer about a Subject to a Verifier.
Although techniques such as one time use and batch issuance can improve the confidentiality and security characteristics of CWT based credential protocols, CWTs remain traceable.
Selective Disclosure CBOR Web Tokens (SD-CWTs) are CWTs and can be deployed in protocols that are already using CWTs, even if they contain no optional to disclose claims.
Credential types are distinguished by their attributes, for example a license to operate a vehicle and a license to import a product will contain different attributes.
The specification of credential types is out of scope for this document, and the examples used in this document are informative.
SD-CWT operates on CWT Claims Sets as described in <xref target="RFC8392"/>.
CWT Claims Sets contain Claim Keys and Claim Values.
SD-CWT enables Issuers to mark certain Claim Keys or Claim Values mandatory or optional for a holder of a CWT to disclose.
A holder cannot send redacted claim keys to a verifier who does not understand selective disclosure at all.
However, Claim Keys and Claim Values which are not understood remain ignored as described in <xref section="3" sectionFormat="of" target="RFC8392"/>.</t>
      <section anchor="high-level-flow">
        <name>High level flow</name>
        <t>Figure 1: High level SD-CWT Issuance and Presentation Flow</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="584" viewBox="0 0 584 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,48 L 24,384" fill="none" stroke="black"/>
              <path d="M 288,48 L 288,384" fill="none" stroke="black"/>
              <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
              <path d="M 320,224 L 320,256" fill="none" stroke="black"/>
              <path d="M 320,288 L 320,320" fill="none" stroke="black"/>
              <path d="M 560,48 L 560,384" fill="none" stroke="black"/>
              <path d="M 288,64 L 320,64" fill="none" stroke="black"/>
              <path d="M 296,96 L 320,96" fill="none" stroke="black"/>
              <path d="M 32,112 L 280,112" fill="none" stroke="black"/>
              <path d="M 24,144 L 280,144" fill="none" stroke="black"/>
              <path d="M 288,160 L 552,160" fill="none" stroke="black"/>
              <path d="M 296,192 L 560,192" fill="none" stroke="black"/>
              <path d="M 288,224 L 320,224" fill="none" stroke="black"/>
              <path d="M 296,256 L 320,256" fill="none" stroke="black"/>
              <path d="M 288,288 L 320,288" fill="none" stroke="black"/>
              <path d="M 296,320 L 320,320" fill="none" stroke="black"/>
              <path d="M 288,368 L 552,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="560,368 548,362.4 548,373.6" fill="black" transform="rotate(0,552,368)"/>
              <polygon class="arrowhead" points="560,160 548,154.4 548,165.6" fill="black" transform="rotate(0,552,160)"/>
              <polygon class="arrowhead" points="304,320 292,314.4 292,325.6" fill="black" transform="rotate(180,296,320)"/>
              <polygon class="arrowhead" points="304,256 292,250.4 292,261.6" fill="black" transform="rotate(180,296,256)"/>
              <polygon class="arrowhead" points="304,192 292,186.4 292,197.6" fill="black" transform="rotate(180,296,192)"/>
              <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(180,296,96)"/>
              <polygon class="arrowhead" points="288,144 276,138.4 276,149.6" fill="black" transform="rotate(0,280,144)"/>
              <polygon class="arrowhead" points="40,112 28,106.4 28,117.6" fill="black" transform="rotate(180,32,112)"/>
              <g class="text">
                <text x="28" y="36">Issuer</text>
                <text x="292" y="36">Holder</text>
                <text x="548" y="36">Verifier</text>
                <text x="344" y="84">Key</text>
                <text x="376" y="84">Gen</text>
                <text x="120" y="100">Request</text>
                <text x="180" y="100">SD-CWT</text>
                <text x="424" y="148">Request</text>
                <text x="480" y="148">Nonce</text>
                <text x="120" y="164">Receive</text>
                <text x="180" y="164">SD-CWT</text>
                <text x="424" y="212">Receive</text>
                <text x="480" y="212">Nonce</text>
                <text x="356" y="244">Redact</text>
                <text x="412" y="244">Claims</text>
                <text x="376" y="308">Demonstrate</text>
                <text x="368" y="324">Posession</text>
                <text x="424" y="356">Present</text>
                <text x="484" y="356">SD-CWT</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
Issuer                           Holder                         Verifier
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Key Gen                     |
  |        Request SD-CWT          |<--+                             |
  |<-------------------------------|                                 |
  |                                |                                 |
  +------------------------------->|             Request Nonce       |
  |        Receive SD-CWT          +-------------------------------->|
  |                                |                                 |
  |                                |<--------------------------------+
  |                                |             Receive Nonce       |
  |                                +---+                             |
  |                                |   | Redact Claims               |
  |                                |<--+                             |
  |                                |                                 |
  |                                +---+                             |
  |                                |   | Demonstrate                 |
  |                                |<--+ Posession                   |
  |                                |                                 |
  |                                |             Present SD-CWT      |
  |                                +-------------------------------->|
  |                                |                                 |
]]></artwork>
        </artset>
        <t>This diagram captures the essential details necessary to issue and present an SD-CWT.
The parameters necessary to support these processes can be obtained using transports or protocols which are out of scope for this specification.
However the following guidance is generally recommended, regardless of protocol or transport.</t>
        <ol spacing="normal" type="1"><li>
            <t>The issuer <bcp14>SHOULD</bcp14> confirm the holder controls all confirmation material before issuing credentials using the <tt>cnf</tt> claim.</t>
          </li>
          <li>
            <t>To protect against replay attacks, the verifier <bcp14>SHOULD</bcp14> provide a nonce, and reject requests that do not include an acceptable an nonce (cnonce). This guidance can be ignored in cases where replay attacks are mitigated at another layer.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document uses terms from CWT <xref target="RFC8392"/>, and COSE <xref target="RFC9052"/>
        <xref target="RFC9053"/>.</t>
      <t>The terms Claim Name, Claim Key and Claim Value are defined in <xref target="RFC8392"/>.</t>
      <t>This document defines the following new terms:</t>
      <dl>
        <dt>Selective Disclosure CBOR Web Token (SD-CWT):</dt>
        <dd>
          <t>A CWT with claims enabling selective disclosure with key binding.</t>
        </dd>
        <dt>Selective Disclosure Key Binding Token (SD-CWT-KBT):</dt>
        <dd>
          <t>A CWT used to demonstrate possession of a confirmation method, associated to an SD-CWT.</t>
        </dd>
        <dt>Issuer:</dt>
        <dd>
          <t>An entity that produces a Selective Disclosure CBOR Web Token.</t>
        </dd>
        <dt>Holder:</dt>
        <dd>
          <t>An entity that presents a Selective Disclosure CBOR Web Token which includes a Selective Disclosure Key Binding Token.</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>An entity that validates a Partial or Full Disclosure by a holder.</t>
        </dd>
        <dt>Partial Disclosure:</dt>
        <dd>
          <t>When a subset of the original claims protected by the Issuer, are disclosed by the Holder.</t>
        </dd>
        <dt>Full Disclosure:</dt>
        <dd>
          <t>When the full set of claims protected by the Issuer, is disclosed by the Holder. An SD-CWT with no blinded claims (all claims are marked mandatory to disclose by the Issuer) is considered a Full Disclosure.</t>
        </dd>
        <dt>Salted Disclosed Claim:</dt>
        <dd>
          <t>A salted claim disclosed in the unprotected header of an SD-CWT.</t>
        </dd>
        <dt>Digested Salted Disclosed Claim / Blinded Claim Hash:</dt>
        <dd>
          <t>A hash digest of a Salted Disclosed Claim.</t>
        </dd>
        <dt>Blinded Claim:</dt>
        <dd>
          <t>Any Redacted Claim Key or Redacted Claim Element which has been replaced in the
CWT payload by a Blinded Claim Hash.</t>
        </dd>
        <dt>Redacted Claim Key:</dt>
        <dd>
          <t>The hash of a claim redacted from a map data structure.</t>
        </dd>
        <dt>Redacted Claim Element:</dt>
        <dd>
          <t>The hash of an element redacted from an array data structure.</t>
        </dd>
        <dt>Presented Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing zero or more Redacted Claim Keys or Redacted Claim Elements.</t>
        </dd>
        <dt>Validated Disclosed Claims Set:</dt>
        <dd>
          <t>The CBOR map containing all mandatory to disclose claims signed by the issuer, all selectively disclosed claims presented by the holder, and omitting all undisclosed instances of Redacted Claim Keys and Redacted Claim Element claims that are present in the original SD-CWT.</t>
        </dd>
      </dl>
    </section>
    <section anchor="overview-of-selective-disclosure-cwt">
      <name>Overview of Selective Disclosure CWT</name>
      <section anchor="a-cwt-without-selective-disclosure">
        <name>A CWT without Selective Disclosure</name>
        <t>Below is the payload of a standard CWT without selective disclosure.
It consists of standard CWT claims, the holder confirmation key, and five specific custom claims. The payload is shown below in CBOR Extended Diagnostic
Notation (EDN) <xref target="I-D.ietf-cbor-edn-literals"/>. Note that some of the CWT claim map keys shown in the examples have been invented for this example and do not have registered integer keys.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    /inspector_license_number/ 501: "ABCD-123456",
    /inspection_dates/ 502 : [
        1549560720,   / 2019-02-07T17:32:00 /
        1612498440,   / 2021-02-04T20:14:00 /
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    /inspection_location/ 503: {
        "country": "us",            / United States /
        "region": "ca",             / California /
        "postal_code": "94188"
    }
}
]]></sourcecode>
        <t>The custom claims deal with attributes of an inspection of the subject: the pass/fail result, the inspection location, the license number of the inspector, and a list of date when the subject was inspected.</t>
      </section>
      <section anchor="holder-gets-an-sd-cwt-from-the-issuer">
        <name>Holder gets an SD-CWT from the Issuer</name>
        <t>Alice would like to selectively disclose some of these (custom) claims to different verifiers.
Note that some of the claims may not be selectively disclosable.
In our next example the pass/fail status of the inspection, the most recent inspection date, and the country of the inspection will be fixed claims (always present in the SD-CWT).
After the Holder requests an SD-CWT from the issuer, the issuer generates an SD-CWT as follows:</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 /
    / typ /    16 : "application/sd+cwt",
    / kid /    4  : 'https://issuer.example/cwt-key3',
    / sd_alg / 18 : -16  / SHA256 /
  } >>,
  / CWT unprotected / {
    / sd_claims / 17 : [ / these are all the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /claim/  501,   / inspector_license_number /
            /value/  "ABCD-123456"
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'7af7084b50badeb57d49ea34627c7a52',
            /value/  1612560720   / inspected 4-Feb-2021 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /claim/  "region",   / region=California /
            /value/  "ca"
        ]>>,
        <<[
            /salt/   h'37c23d4ec4db0806601e6b6dc6670df9',
            /claim/  "postal_code",
            /value/  "94188"
        ]>>,
    ]
  }
  / CWT payload / << {
    / iss / 1   : "https://issuer.example",
    / sub / 2   : "https://device.example",
    / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
    / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
    / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
    / cnf / 8   : {
      / cose key / 1 : {
        / kty /  1: 2,  / EC2   /
        / crv / -1: 1,  / P-256 /
        / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                      2022fd0d3024b5af18c7cc61ad527a2d',
        / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                      503f54293d87875d1e79ce4770194343'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    / redacted_claim_keys / 59(0) : [
        / redacted inspector_license_number /
        h'0ad0f76dcb7fd812ca64c3ada3f543be
          96d0e351e1e576fbab5cb659b49e599e'
    ],
    /inspection_dates/ 502 : [
        / redacted inspection date 7-Feb-2019 /
        60(h'f468b68dd7432030d7f33a8783acb3a4
             d6afc215bbc184dce8831c64b539f335'),
        / redacted inspection date 4-Feb-2021 /
        60(h'0839dcbdd9ed55c8aac3e573ccf59c81
             0fa8d9f6ec551cb9737621faf3584e1f'),
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    / inspection_location / 503 : {
        "country" : "us",            / United States /
        / redacted_claim_keys / 59(0) : [
            / redacted region /
            h'dff0cb7a6ff555544554c527d5e32eed
              ee6a9d80a1dae2e0ac611796674ce281'
            / redacted postal_code /
            h'5f5e6bfc2de598c80df58ff84090125a
              f8bb1ada795a37e5cfcf8f480e445755'
      ]
    }
  } >>,
  / CWT signature / h'd6b1f5143a3f6b2e54a1ea29ed98e9ed
                      7abb2927b34ba100fe91ed493d66062b
                      d71716eed6b209b9d6c6861a6886ad47
                      5716220bcb3a0276a205002c3f6d3e86
                      a52d3e990f869bd38c5a476f73ee3319
                      64dee2cb51321b7bf2e64e62811a9b22'
])
]]></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> key.
For example, the <tt>inspector_license_number</tt> claim is a Salted Disclosed Claim, consisting of a per-disclosure random salt, the claim name, and claim value.</t>
        <figure>
          <name>CBOR extended diagnostic notation representation of inspector_license_number disclosure</name>
          <sourcecode type="cbor-diag"><![CDATA[
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /claim/  501,   / inspector_license_number /
            /value/  "ABCD-123456"
        ]>>,
]]></sourcecode>
        </figure>
        <t>This is represented in CBOR pretty printed formal as follows (end of line comments and spaces inserted for clarity):</t>
        <figure>
          <name>CBOR encoding of inspector_license_number disclosure</name>
          <sourcecode type="cbor-pretty"><![CDATA[
83                                     # array(3)
   50                                  # bytes(16)
      18d27ca1148990c3c999ed914a1b73c6 # 16-byte salt
   19 01f5                             # unsigned(501)
   6b                                  # text(11)
      414243442d313233343536           # "ABCD-123456"
]]></sourcecode>
        </figure>
        <t>The SHA-256 hash (the hash algorithm identified in the <tt>sd_alg</tt> protected header field) of that bytes string is the Digested Salted Disclosed Claim (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 (ex: for a redacted claim element of <tt>inspection_dates</tt>).</t>
        <figure>
          <name>SHA-256 hash of inspector_license_number disclosure</name>
          <artwork><![CDATA[
e7d2ca13738de42ebfe3d72af06756314940ac1b129e5ecf0ed08af379ae98f8
]]></artwork>
        </figure>
        <t>Finally, since this redacted claim is a map key and value, the Digested Salted Disclosed Claim is placed in a <tt>redacted_claim_keys</tt> array in the SD-CWT payload at the same level of hierarchy as the original claim.
Redacted claims which are array elements are handled slightly differently, as described in <xref target="types-of-blinded-claims"/>.</t>
        <figure>
          <name>redacted inspector_license_number claim in the issued CWT payload</name>
          <sourcecode type="cbor-diag"><![CDATA[
  / redacted_claim_keys / 59(0) : [
      / redacted inspector_license_number /
      h'e7d2ca13738de42ebfe3d72af0675631
        4940ac1b129e5ecf0ed08af379ae98f8',
      / ... next redacted claim at the same level would go here /  ],
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="holder-prepares-an-sd-cwt-for-a-verifier">
      <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> in the unprotected header.</t>
      <t>For example, Alice decides to disclose to a verifier the <tt>inspector_license_number</tt> claim (ABCD-123456), the <tt>region</tt> claim (California), and the earliest date element in the <tt>inspection_dates</tt> array (7-Feb-2019).</t>
      <sourcecode type="cbor-diag"><![CDATA[
    / sd_claims / 17 : [ / these are the disclosures /
        <<[
            /salt/   h'bae611067bb823486797da1ebbb52f83',
            /claim/  501,   / inspector_license_number /
            /value/  "ABCD-123456"
        ]>>,
        <<[
            /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
            /value/  1549560720   / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
            /claim/  "region",   / region=California /
            /value/  "ca"
        ]>>,
    ]
]]></sourcecode>
      <t>The Holder <bcp14>MAY</bcp14> fetch a nonce from the Verifier to prevent replay, or obtain a nonce acceptable to the verifier through a process similar to the method described in <xref target="I-D.ietf-httpbis-unprompted-auth"/>.</t>
      <t>Finally, the Holder generates a Selective Disclosure Key Binding Token (SD-KBT) that ties together the SD-CWT generated by the Issuer (with the disclosures the Holder chose for the Verifier in its unprotected header), the Verifier target audience and optional nonces, and proof of possession of the Holder's private key.</t>
      <t>The issued SD-CWT is placed in the <tt>kcwt</tt> (Confirmation Key CWT) protected header field (defined in <xref target="RFC9528"/>).</t>
      <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / typ /   16:  "application/kb+cwt",
    / 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 /
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803',
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
  } >>,      / end of KBT payload /
  / KBT signature / h'feb37bac837b25d3510962ac706297cd
                      2ef1ace1b47a382e911124c9a4c32287
                      280f48931c2988d71b297d57dd9d392f
                      5792d8f87a95166c5ea5110a81c1bfc7'
])   / end of kbt /
]]></sourcecode>
      <t>Together 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 by the Verifier to confirm the disclosed claims.
Since the unprotected header of the included SD-CWT is covered by the signature in the SW-KBT, the Verifier has assurance the Holder included the sent list of disclosures.</t>
    </section>
    <section anchor="cwt-update">
      <name>Update to the CBOR Web Token Specification</name>
      <t>The CBOR Web Token Specification (Section 1.1 of <xref target="RFC8392"/>), uses strings, negative integers, and unsigned integers as map keys.
This specification relaxes that requirement, by also allowing CBOR tagged integers and text strings as map keys.
CBOR maps used in a CWT cannot have duplicate keys.
(An integer or string map key is distinct key from a tagged map key which wraps the corresponding integer or string value).</t>
      <ul empty="true">
        <li>
          <t>When sorted, map keys in CBOR are arranged in bytewise lexicographic order of the key's deterministic encodings (see Section 4.2.1 of <xref target="RFC8949"/>).
So an integer key of 3 is represented in hex as <tt>03</tt>, an integer key of -2 is represented in hex as <tt>21</tt>, and a tag of 60 wrapping a 3 is represented in hex as <tt>D8 3C 03</tt></t>
        </li>
      </ul>
      <t>Note that holders presenting to a verifier that does not support this specification would need to present a CWT without tagged map keys.</t>
      <t>Tagged keys are not registered in the CBOR Web Token Claims IANA registry.
Instead the tag provides additional information about the tagged claim key and the corresponding (untagged) value.
Multiple levels of tags in a key are not permitted.</t>
      <t>Variability in serialization requirements impacts privacy.</t>
      <t>See the security considerations section for more details on the privacy impact of serialization and profiling.</t>
    </section>
    <section anchor="sd-cwt-definition">
      <name>SD-CWT definition</name>
      <t>SD-CWT is modeled after SD-JWT, with adjustments to align with conventions in CBOR and COSE. An SD-CWT <bcp14>MUST</bcp14> include the protected header parameter <tt>typ</tt> <xref target="RFC9596"/> with either a text value "application/sd-cwt" or an uint value of "C-F-TBD" in the SD-CWT.</t>
      <t>An SD-CWT is a CWT that can contain blinded claims (each expressed as a Blinded Claim Hash) in the CWT payload, at the root level or in any arrays or maps inside that payload.
It is not required to contain any blinded claims.</t>
      <t>Optionally the salted claim values (and often claim names) for the corresponding Blinded Claim Hash are actually disclosed in the <tt>sd_claims</tt> field in the unprotected header of the CWT (the disclosures).
If there are no disclosures (and when no Blinded Claims Hash is present in the payload) the <tt>sd_claims</tt> field in the unprotected header is an empty array.</t>
      <t>Any party with a Salted Disclosed Claim can generate its hash, find that hash in the CWT payload, and unblind the content.
However a Verifier with the hash cannot reconstruct the corresponding blinded claim without disclosure of the Salted Disclosed Claim.</t>
      <section anchor="types-of-blinded-claims">
        <name>Types of blinded claims</name>
        <t>Salted Disclosed Claims for named claims are structured as a 128-bit salt, the name of the redacted element, and the disclosed value.
For Salted Disclosed Claims of items in an array, the name is omitted.</t>
        <sourcecode type="cddl"><![CDATA[
salted = salted-claim / salted-element / decoy
salted-claim = [
  bstr .size 16,     ; 128-bit salt
  (int / text),      ; claim name
  any                ; claim value
]
salted-element = [
  bstr .size 16,     ; 128-bit salt
  any                ; claim value
]
decoy = [
  bstr .size 16,     ; 128-bit salt
]

; a collection of Salted Disclosed Claims
salted-array = [ +bstr .cbor salted ]
]]></sourcecode>
        <t>When a blinded claim is a key in a map, its blinded claim hash is added to a <tt>redacted_claim_keys</tt> array claim in the CWT payload that is at the same level of hierarchy as the key being blinded.
The <tt>redacted_claim_keys</tt> key is the integer 0 (which is reserved for top-level CWT claim keys), wrapped with a CBOR tag (requested tag number 59).</t>
        <t>When blinding an individual item in an array, the value of the item is replaced with the digested salted hash as a CBOR binary string, wrapped with a CBOR tag (requested tag number 60).</t>
        <sourcecode type="cddl"><![CDATA[
redacted_claim_element = #6.60( bstr .size 16 )
]]></sourcecode>
        <t>Blinded claims can be nested. For example, both individual keys in the <tt>inspection_location</tt> claim, and the entire <tt>inspection_location</tt> element can be separately blinded.
An example nested claim is shown in <xref target="nesting"/>.</t>
        <t>Finally, an issuer may create "decoy digests" which look like a blinded claim hash but have only a salt.
Decoy digests are discussed in <xref target="decoys"/>.</t>
      </section>
    </section>
    <section anchor="sd-cwt-issuance">
      <name>SD-CWT Issuance</name>
      <t>How the Holder communicates to the Issuer to request a CWT or an SD-CWT is out-of-scope of this specification.
Likewise, how the Holder determines which claims to blind or to always disclose is a policy matter which is not discussed in this specification.
This specification defines the format of an SD-CWT communicated between an Issuer and a Holder in this section, and describes the format of a Key Binding Token containing that SD-CWT communicated between a Holder and a Verifier in <xref target="sd-cwt-presentation"/>.</t>
      <t>The protected header <bcp14>MUST</bcp14> contain the <tt>sd_alg</tt> field identifying the algorithm (from the COSE Algorithms registry) used to hash the Salted Disclosed Claims.
The unprotected header <bcp14>MUST</bcp14> contain an <tt>sd_claims</tt> section with a Salted Disclosed Claim for <em>every</em> blinded claim hash present anywhere in the payload, and any decoys (see <xref target="decoys"/>).
If there are no disclosures, the <tt>sd_claims</tt> header is an empty array.
The payload <bcp14>MUST</bcp14> also include a key confirmation element (<tt>cnf</tt>) <xref target="RFC8747"/> for the Holder's public key.</t>
      <t>In an SD-CWT, either the subject <tt>sub</tt>/ 2 claim is present, or the redacted form of the subject is present.
The issuer <tt>iss</tt> / 1 standard claim <bcp14>SHOULD</bcp14> be present, unless the protected header contains a certificate or certificate-like entity which fully identifies the issuer.
All other standard CWT claims (<tt>aud</tt>/ 3, <tt>exp</tt> / 4, <tt>nbf</tt> / 5, <tt>iat</tt> / 6, and <tt>cti</tt> / 7) are <bcp14>OPTIONAL</bcp14>.
The <tt>cnonce</tt> / 39 claim is <bcp14>OPTIONAL</bcp14>.
The <tt>cnf</tt> claim, the <tt>cnonce</tt> claim, and the standard claims other than the subject <bcp14>MUST NOT</bcp14> be redacted.
Any other claims are <bcp14>OPTIONAL</bcp14> and <bcp14>MAY</bcp14> be redacted.</t>
      <section anchor="issuer-generation">
        <name>Issuer generation</name>
        <t>The Issuer follows all the requirements of generating a valid CWT as updated by <xref target="cwt-update"/>.
The Issuer <bcp14>MUST</bcp14> implement COSE_Sign1 using an appropriate asymmetric signature algorithm / curve combination (for example ES256/P-256 or EdDSA/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>SHOULD</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 in the <tt>sd_alg</tt> protected header is supported by the Holder;</t>
          </li>
          <li>
            <t>if a <tt>cnonce</tt> is present, it was provided by the Holder to this Issuer and is still "fresh";</t>
          </li>
          <li>
            <t>there are no unblinded claims about the subject which violate its privacy policies;</t>
          </li>
          <li>
            <t>every blinded claim hash (some of which may be nested as in <xref target="nesting"/>) has a corresponding Salted Disclosed Claim, and vice versa;</t>
          </li>
          <li>
            <t>all the Salted Disclosed Claims are correct in their unblinded context in the payload.</t>
          </li>
        </ul>
        <t>The following informative CDDL is provided to describe the syntax for an SD-CWT issuance. A complete CDDL schema is in <xref target="cddl"/>.</t>
        <sourcecode type="cddl"><![CDATA[
sd-cwt-issued = #6.18([
   protected: bstr .cbor sd-protected,
   sd-unprotected,
   payload: bstr .cbor sd-payload,
   signature: bstr
])

sd-protected = {
   &(typ: 16) ^ => "application/sd+cwt" / TBD1,
   &(alg: 1) ^ => int,
   &(sd_alg: 18) ^= int,             ; -16 for sha-256
   * key => any
}

sd-unprotected = {
   ? &(sd_claims: 17) ^ => salted-array,
   * key => any
}

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

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

kbt-unprotected = {
   * key => any
}

kbt-payload = {
      &(aud: 3) ^ => tstr, ; "https://verifier.example"
    ? &(exp: 4) ^ => int,  ; 1883000000
    ? &(nbf: 5) ^ => int,  ; 1683000000
      &(iat: 6) ^ => int,  ; 1683000000
    ? &(cnonce: 39) ^ => bstr,
    * key => any
}
]]></sourcecode>
        <t>The SD-KBT payload <bcp14>MAY</bcp14> include a <tt>cnonce</tt> claim.
If included, the <tt>cnonce</tt> is a <tt>bstr</tt> and <bcp14>MUST</bcp14> be treated as opaque to the Holder.
All other claims are <bcp14>OPTIONAL</bcp14> in an SD-KBT.</t>
      </section>
    </section>
    <section anchor="sd-kbt-and-sd-cwt-verifier-validation">
      <name>SD-KBT and SD-CWT Verifier Validation</name>
      <t>The exact order of the following steps <bcp14>MAY</bcp14> be changed, as long as all checks are performed before deciding if an SD-CWT is valid.
First the Verifier must open the protected headers of the SD-KBT and find the issuer SD-CWT present in the <tt>kcwt</tt> field.
Next the Verifier must validate the SD-CWT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.
The Verifier extract the confirmation key from the <tt>cnf</tt> claim in the SD-CWT payload.
Using the confirmation key, the Verifier validates the SD-KBT as described in <xref section="7.2" sectionFormat="of" target="RFC8392"/>.</t>
      <t>Finally, the Verifier <bcp14>MUST</bcp14> extract and decode the disclosed claims from the <tt>sd_claims</tt> in the unprotected header of the SD-CWT.
The decoded <tt>sd_claims</tt> are converted to an intermediate data structure called a Digest To Disclosed Claim Map which is used to transform the Presented Disclosed Claimset, into a Validated Disclosed Claimset.
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 Claimset.</t>
      <t>One possible concrete representation of the intermediate data structure for the Digest To Disclosed Claim Map could be:</t>
      <sourcecode type="cddl-ish"><![CDATA[
{
  &(digested-salted-disclosed-claim) => salted
}
]]></sourcecode>
      <t>The Verifier constructs an empty cbor map called the Validated Disclosed Claimset, and initializes it with all mandatory to disclose claims from the verified Presented Disclosed Claimset.
Next the Verifier performs a breadth first or depth first traversal of the Presented Disclosed Claimset, Validated Disclosed Claimset, using the Digest To Disclosed Claim Map to insert claims into the Validated Disclosed Claimset when they appear in the Presented Disclosed Claimset.
By performing these steps, the recipient can cryptographically verify the integrity of the protected claims and verify they have not been tampered with.
If there remain unused Digest To Disclosed Claim Map at the end of this procedure the SD-CWT <bcp14>MUST</bcp14> be considered invalid, as if the signature had failed to verify.</t>
      <t>Otherwise the SD-CWT is considered valid, and the Validated Disclosed Claimset is now a CWT Claimset with no claims marked for redaction.
Further validation logic can be applied to the Validated Disclosed Claimset, as it might normally be applied to a validated CWT claimset.</t>
    </section>
    <section anchor="decoys">
      <name>Decoy Digests</name>
      <t><strong>TODO</strong></t>
    </section>
    <section anchor="encrypted-disclosures">
      <name>Encrypted Disclosures</name>
      <t>Some uses of SD-CWT involve verifiers which have internal structure.
In these cases, encrypted disclosures allow more fine-grained disclosure inside a single presentation.</t>
      <ul empty="true">
        <li>
          <t>In the Remote Attestation Procedures (RATS) architecture <xref target="RFC9334"/>, an SD-CWT is a RATS conceptual message that represents evidence.
Different evidence claims could be processed by different attesters within the same Verifier.
For example, one SD-KBT could include an SD-CWT with one set of claims about the workload, and one set of claims about the platform.
It would be desirable to have each RATS appraiser see a different subset of disclosures in the SD-CWT / SD-KBT.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>In the Messaging Layer Security (MLS) protocol <xref target="RFC9420"/>, an SD-CWT credential <xref target="I-D.mahy-mls-sd-cwt-credential"/> could present one subset of its disclosures to the MLS Distribution Service, and a different subset of those disclosures to the other members of the MLS group.</t>
        </li>
      </ul>
      <t>Taking the first example disclosure from above:</t>
      <sourcecode type="cbor-diag"><![CDATA[
<<[
    /salt/   h'2008c50a62d9b59813318abd06df8a89',
    /claim/  501,   / inspector_license_number /
    /value/  "ABCD-123456"
]>>
]]></sourcecode>
      <t>The corresponding bstr is encrypted with an IANA registered Authenticated Encryption with Additional Data (AEAD) algorithm <xref target="RFC5116"/> such as AEAD_AES_128_GCM, using the salt as the nonce.
The <tt>salt</tt>, the algorithm used (<tt>alg</tt>), and the resulting <tt>ciphertext</tt> and <tt>mac</tt> are put in an array.
The bstr encoding of the array is placed in the <tt>sd_encrypted_claims</tt> unprotected header field array of the SD-CWT.
The entire SD-CWT is included in the protected header of the SD-KBT, which integrity protects both encrypted and regular disclosures alike.
Neither encrypted nor regular disclosures can appear in the unprotected header of a SD-KBT.</t>
      <sourcecode type="cbor-diag"><![CDATA[
/ sd_encrypted_claims / 19 : [ / encrypted disclosures /
    <<[
        /salt/        h'2008c50a62d9b59813318abd06df8a89',
        /alg/         1, / AEAD_AES_128_GCM /
        /ciphertext/  h'b8cf6ed5905b6b0d9c1e7f274ecee4cb
                         ac8f5ad4dac6ba88e7673e70bafa87b5
                         9a61c7',
        /mac/         h'4ea90eef6b3d05d632e6f19b49aa9de5'
    ]>>,
    ...
]
]]></sourcecode>
      <ul empty="true">
        <li>
          <t>In the example above the key in hex is '1eb2d67081ee9950fb3a14c6e8896203'.</t>
        </li>
      </ul>
      <t>The blinded claim hash is still over the unencrypted disclosure.
The receiver of an encrypted disclosure locates the appropriate key by looking up the unique salt.
If the verifier is able to decrypt and verify an encrypted disclosure, the decrypted disclosure is then processed as if it where in the <tt>sd_claims</tt> unprotected header in the SD-CWT.</t>
      <t>Details of key management are left to the specific protocols which make use of encrypted disclosures.</t>
      <t>The CDDL for encrypted disclosures is described below.</t>
      <sourcecode type="cddl"><![CDATA[
encrypted-array = [ +bstr .cbor encrypted ]
encrypted = [
  bstr .size 16,     ; 128-bit salt
  uint16,            ; IANA AEAD Algorithm number
  bstr,              ; the ciphertext output of a bstr-encoded-salted
                     ;   with a matching salt
  bstr               ; the corresponding MAC
]
;bstr-encoded-salted = bstr .cbor salted
]]></sourcecode>
      <ul empty="true">
        <li>
          <t><strong>TODO</strong>: consider moving the AEAD algorithm for all encrypted disclosures into a new protected header field.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Note: because the algorithm is in a registry which contains only AEAD algorithms, an attacker cannot replace the algorithm or the message, without a decryption verification failure.</t>
        </li>
      </ul>
    </section>
    <section anchor="credential-types">
      <name>Credential Types</name>
      <t>This specification defines the CWT claim vct (for verifiable credential type). The vct value <bcp14>MUST</bcp14> be a case-sensitive StringOrURI (see <xref target="RFC7519"/>) value serving as an identifier for the type of the SD-CWT claimset. The vct value <bcp14>MUST</bcp14> be a Collision-Resistant Name as defined in Section 2 of <xref target="RFC7515"/>.</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>
      <t>Profiles built on this specification are also encouraged to use more specific media types, as described in <xref target="RFC9596"/>.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="minimal-spanning-example">
        <name>Minimal spanning example</name>
        <t>The following example contains claims needed to demonstrate redaction of key-value pairs and array elements.</t>
        <figure anchor="example-edn">
          <name>An EDN Example</name>
          <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18( / sd_kbt / [
  / KBT protected / << {
    / alg /    1:  -7, / ES256 /
    / typ /   16:  "application/kb+cwt",
    / kcwt /  13:  18([  / issuer SD-CWT /
      / CWT protected / << {
        / alg /    1  : -35, / ES384 /
        / typ /    16 : "application/sd+cwt",
        / kid /    4  : 'https://issuer.example/cwt-key3',
        / sd_alg / 18 : -16  / SHA256 /
      } >>,
      / CWT unprotected / {
        / sd_claims / 17 : [ / these are the disclosures /
            <<[
                /salt/   h'bae611067bb823486797da1ebbb52f83',
                /claim/  501,   / inspector_license_number /
                /value/  "ABCD-123456"
            ]>>,
            <<[
                /salt/   h'8de86a012b3043ae6e4457b9e1aaab80',
                /value/  1549560720   / inspected 7-Feb-2019 /
            ]>>,
            <<[
                /salt/   h'ec615c3035d5a4ff2f5ae29ded683c8e',
                /claim/  "region",   / region=California /
                /value/  "ca"
            ]>>,
        ]
      }
      / CWT payload / << {
        / iss / 1   : "https://issuer.example",
        / sub / 2   : "https://device.example",
        / exp / 4   : 1725330600,  /2024-09-03T02:30:00+00:00Z/
        / nbf / 5   : 1725243900,  /2024-09-02T02:25:00+00:00Z/
        / iat / 6   : 1725244200,  /2024-09-02T02:30:00+00:00Z/
        / cnf / 8   : {
          / cose key / 1 : {
            / kty /  1: 2,  / EC2   /
            / crv / -1: 1,  / P-256 /
            / x /   -2: h'8554eb275dcd6fbd1c7ac641aa2c90d9
                          2022fd0d3024b5af18c7cc61ad527a2d',
            / y /   -3: h'4dc7ae2c677e96d0cc82597655ce92d5
                          503f54293d87875d1e79ce4770194343'
          }
        },
        /most_recent_inspection_passed/ 500: true,
        / redacted_claim_keys / 59(0) : [
            / redacted inspector_license_number /
            h'0ad0f76dcb7fd812ca64c3ada3f543be
              96d0e351e1e576fbab5cb659b49e599e'
        ],
        /inspection_dates/ 502 : [
            / redacted inspection date 7-Feb-2019 /
            60(h'f468b68dd7432030d7f33a8783acb3a4
                 d6afc215bbc184dce8831c64b539f335'),
            / redacted inspection date 4-Feb-2021 /
            60(h'0839dcbdd9ed55c8aac3e573ccf59c81
                 0fa8d9f6ec551cb9737621faf3584e1f'),
            1674004740,   / 2023-01-17T17:19:00 /
        ],
        / inspection_location / 503 : {
            "country" : "us",            / United States /
            / redacted_claim_keys / 59(0) : [
                / redacted region /
                h'dff0cb7a6ff555544554c527d5e32eed
                  ee6a9d80a1dae2e0ac611796674ce281'
                / redacted postal_code /
                h'5f5e6bfc2de598c80df58ff84090125a
                  f8bb1ada795a37e5cfcf8f480e445755'
          ]
        }
      } >>,
      / CWT signature / h'd6b1f5143a3f6b2e54a1ea29ed98e9ed
                          7abb2927b34ba100fe91ed493d66062b
                          d71716eed6b209b9d6c6861a6886ad47
                          5716220bcb3a0276a205002c3f6d3e86
                          a52d3e990f869bd38c5a476f73ee3319
                          64dee2cb51321b7bf2e64e62811a9b22'
    ])
     / end of issuer SD-CWT /
  } >>,     / end of KBT protected header /
  / KBT unprotected / {},
  / KBT payload / << {
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803',
    / aud    /  3    : "https://verifier.example/app",
    / iat    /  6    : 1725244237, / 2024-09-02T02:30:37+00:00Z /
  } >>,      / end of KBT payload /
  / KBT signature / h'feb37bac837b25d3510962ac706297cd
                      2ef1ace1b47a382e911124c9a4c32287
                      280f48931c2988d71b297d57dd9d392f
                      5792d8f87a95166c5ea5110a81c1bfc7'
])   / end of kbt /
]]></sourcecode>
        </figure>
      </section>
      <section anchor="nesting">
        <name>Nested example</name>
        <t>Instead of the structure from the previous example, imagine the payload contains an inspection history log with the following structure. It could be blinded at multiple levels of the claim set hierarchy.</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: True,          / inspection passed /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            501: "DCBA-101777", / inspector license /
            503: {
                1: "us",        / United States /
                2: "co",        / region=Colorado /
                3: "80302"      / postcode /
            }
        },
        {
            500: True,          / inspection passed /
            502: 1612560720,    / 2021-02-04T20:14:00 /
            501: "EFGH-789012", / inspector license /
            503: {
                1: "us",        / United States /
                2: "nv",        / region=Nevada /
                3: "89155"      / postcode /
            }
        },
        {
            500: True,          / inspection passed /
            502: 17183928,      / 2023-01-17T17:19:00 /
            501: "ABCD-123456", / inspector license /
            503: {
                1: "us",        / United States /
                2: "ca",        / region=California /
                3: "94188"      / postcode /
            }
        },
    ]
}
]]></sourcecode>
        <t>For example, looking at the nested disclosures below, the first disclosure unblinds the entire January 2023 inspection record.
However, when the record is disclosed, the inspector license number and inspection location are redacted inside the record.
The next disclosure unblinds the inspector_license_number, and the next
disclosure unblinds the inspection location record, but the region and postcode claims inside the location record are also individually blinded.
The fourth disclosure unblinds the inspection region.</t>
        <t>The fifth disclosure unblinds the earliest inspection record, and the last disclosure unblinds the inspector_license_number for that record.</t>
        <t>Verifiers start unblinding claims for which they have blinded claim hashes. They continue descending until there are no blinded claim hashes at any level of the hierarchy for which they have a corresponding disclosure.</t>
        <sourcecode type="cbor-diag"><![CDATA[
/ sd_claims / 17 : [ / these are the disclosures /
    <<[
        /salt/   h'e3aa33644123fdbf819ad534653f4aaa',
        /claim/  504,   / inspection 17-Jan-2023 /
        /value/  [
                     59(h'2893a00665f1ca2cfeb7456e1eeb8eba
                          f21d5c12a73d9fbcb8902822f3ecb635'),
                     59(h'92c0262b0ed6891c6e46d6fca5554caf
                          79bd8d05c74dbb06a25c9edd304c6e22'),
                     {
                         500: True,
                         502: 17183928,
                         simple(59): [
                           h'0ad0f76dcb7fd812ca64c3ada3f543be
                              96d0e351e1e576fbab5cb659b49e599e',
                           h'f34c3ea2292d02b92bde25e68e94acd7
                             f1e011fd6eea6c490f841f09a7a01a48'
                         ]
                     }
                 ]
    ]>>,
    <<[
        /salt/   h'bae611067bb823486797da1ebbb52f83',
        /claim/  501,   / inspector_license_number /
        /value/  "ABCD-123456"
    ]>>,
    <<[
        /salt/   h'7d2505257e7850b70295a87b3c8748e5',
        /claim/  503,   / San Francisco location /
        /value/  {
                     1: "us",
                     simple(59): [
                       h'de03a7a0b4359511a7dc0edd8f4ebc00
                         b5783d8a0d36e715679e23c703011d16',
                       h'5a98ac2381cb59dee7a43daa073eab48
                         9773e2830a0b9c4e1efd55737dbb1c06'
                     ]
                 }
    ]>>,
    <<[
        /salt/   h'52da9de5dc61b33775f9348b991d3d78',
        /claim/  2,   / region=California /
        /value/  "ca"
    ]>>,
    <<[
        /salt/   h'b52272341715f2a0b476e33e55ce7501',
        /value/  {
                     500: True,
                     502: 1549560720,
                     simple(59): [
                       h'cd88763edb2485b8109613546051f606
                         e6b822456da1bf09f604b886e1def45a',
                       h'0a45eb75de44741bea78dc48b1898d40
                         09601dbf567279f3042a24cee9fdcab5'
                     ]
                 }   / inspection 7-Feb-2019 /
    ]>>,
    <<[
        /salt/   h'591eb2081b05be2dcbb6f8459cc0fe51',
        /claim/  501,   / inspector_license_number /
        /value/  "DCBA-101777"
    ]>>
]
]]></sourcecode>
        <t>After applying the disclosures of the nested structure above, the disclosed claim set visible to the verifier would look like the following:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "https://device.example",
    / exp / 4  : 1725330600, /2024-09-02T19:30:00Z/
    / nbf / 5  : 1725243840, /2024-09-01T19:25:00Z/
    / iat / 6  : 1725244200, /2024-09-01T19:30:00Z/
    / cnf / 8  : { ... },
    504: [                      / inspection history log /
        {
            500: True,          / inspection passed /
            502: 1549560720,    / 2019-02-07T17:32:00 /
            501: "DCBA-101777", / inspector license /
            503: {
                1: "us"         / United States /
            }
        },
        {
            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 /
            }
        },
    ]
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to 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 spent 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 draft.</t>
        <t>Maturity: Prototype</t>
        <t>Coverage: The current version ('main') implements functionality similar to that described in this document, 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 proof of concept, but is not yet production ready.</t>
        <t>Contact: Orie Steele (orie@transmute.industries)</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations from COSE {(RFC9052)} and CWT <xref target="RFC8392"/> apply to this specification.</t>
      <section anchor="transparency">
        <name>Transparency</name>
        <t>Verification of an SD-CWT requires that the verifier have access to a verification key (public key) that is associated with the issuer.
Compromise of the issuer's signing key enables an attacker to forge credentials for any subject associated with the issuer.
Certificate transparency as described in <xref target="RFC9162"/>, or key transparency as described in <xref target="I-D.draft-ietf-keytrans-protocol"/> can enable the observation of incorrectly issued certificates or fraudulent bindings between verification keys and issuer identifiers.
Issuers choose which claims to include in an SD-CWT, and whether they are mandatory to disclose, including self asserted claims such as "iss".
All mandatory to disclose data elements are visible to the verifier as part of verification, some of these elements reveal information about the issuer, such as key or certificate thumbprints, supported digital signature algorithms, or operational windows which can be inferred from analysis of timestamps.</t>
      </section>
      <section anchor="traceability">
        <name>Traceability</name>
        <t>Presentations of the same SD-CWT to multiple verifiers can be correlated by matching on the signature component of the COSE_Sign1.
Signature based linkability can be mitigated by leveraging batch issuance of single use tokens, for a credential management complexity cost.
Any claim value with sufficiently low "anonymity set" can be used track 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="credential-types-1">
        <name>Credential Types</name>
        <t>The mandatory and optional to disclose data elements in an SD-CWT are credential type specific.
Several distinct credential types might be applicable to a given use case.
Issuers <bcp14>MUST</bcp14> perform a privacy and confidentiality assessment regarding each credential type they intend to issue prior to issuance.</t>
      </section>
      <section anchor="determinism-augmentation">
        <name>Determinism &amp; Augmentation</name>
        <t>It is possible to encode additional information through the choices made during the serialization stage of producing an SD-CWT, for example, by adjusting the order of CBOR map keys, or by choosing different numeric encodings for certain data elements. <xref target="I-D.draft-ietf-cbor-cde"/> provides guidance for constructing application profiles that constrain serialization optionality beyond CBOR Common Deterministic Encoding rulesets (CDE). The construction of such profiles has a significant impact on the privacy properties of a credential type.</t>
      </section>
      <section anchor="threat-model">
        <name>Threat Model</name>
        <t>Each use case will have a unique threat model which <bcp14>MUST</bcp14> be considered before the applicability of SD-CWT based credential types can be determined.
This section provides a non exahustive list of topics to be consider when developing a threat model for applying SD-CWT to a given use case.</t>
        <t>Has there been a t-closeness, k-anonymity and l-diverity assessment (see <xref target="t-Closeness"/>) assuming compromise of the one or more issuers, verifiers or holders, for all relevant credential types?</t>
        <t>How many issuers exist for the credential type?
Is the size of the set of issuers growing or shrinking over time?
For a given credential type, will subjects be able to hold instances of the same credential type from multiple issuers, or just a single issuer?
Does the credential type require or offer the ability to disclose a globally unique identifier?
Does the credential type require high precision time or other claims that have sufficient entropy such that they can serve as a unique fingerprint for a specific subject.
Does the credential type contain Personally Identifiable Information (PII), or other sensitive information which might have value in a market.</t>
        <t>How many verifiers exist for the credential type?
Is the size of the set of verifiers growing or shrinking over time?
Are the verifiers a superset, subset, or disjoint set of the issuers or subjects?
Are there any legally required reporting or disclosure requirements associated with the verifiers?
Is there reason to believe that a verifier's historic data will be aggregated and analyzed?
Assuming multiple verifiers are simultaneously compromised, what knowledge regarding subjects can be inferred from analyzing the resulting dataset?</t>
        <t>How many subjects exist for the credential type?
Is the size of the set of subjects growing or shrinking over time?
Does the credential type require specific hardware, or algorithms that limit the set of possible subjects to owners of a specific device or subscribers to a given service.</t>
      </section>
      <section anchor="random-numbers">
        <name>Random Numbers</name>
        <t>Each salt used to protect disclosed claims <bcp14>MUST</bcp14> be generated independently from the salts of other claims. The salts <bcp14>MUST</bcp14> be generated from a source of entropy that is acceptable to the issuer.
Poor choice of salts can lead to brute force attacks that can reveal redacted claims.</t>
      </section>
      <section anchor="binding-the-kbt-and-the-cwt">
        <name>Binding the KBT and the CWT</name>
        <t>The issuer 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 traceability, but <bcp14>MUST</bcp14> be evaluated in terms of the confidential and privacy constraints associated with the credential type.
Conceptually, the Holder is both the issuer and the subject of the SD-KBT, even if the issuer or subject claims are not present.
If they are present, they are self-asserted by the Holder.
All three are represented by the confirmation (public) key in the SD-CWT.</t>
        <t>As with any self-assigned identifiers, Verifiers need to take care to verify that the SD-KBT issuer and subject claims match the subject in the SD-KBT, and are a valid representation of the Holder and correspond to the Holder's confirmation key.
Extra care should be taken in case the SD-CWT subject claim is redacted.
Likewise, Holders and Verifiers need to verify that the issuer claim of the SD-CWT corresponds to the Issuer and the key described in the protected header of the SD-CWT.</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 CWT claims registry (https://www.iana.org/assignments/cose/cose.xhtml#header-parameters).</t>
        <section anchor="sdclaims">
          <name>sd_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_claims</t>
            </li>
            <li>
              <t>Label: TBD1 (requested assignment 17)</t>
            </li>
            <li>
              <t>Value Type: bstr</t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: RFC XXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="sdalg">
          <name>sd_alg</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_alg</t>
            </li>
            <li>
              <t>Label: TBD2 (requested assignment 18)</t>
            </li>
            <li>
              <t>Value Type: int</t>
            </li>
            <li>
              <t>Value Registry: COSE Algorithms</t>
            </li>
            <li>
              <t>Description: The hash algorithm used for redacting disclosures.</t>
            </li>
            <li>
              <t>Reference: RFC XXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="sdencryptedclaims">
          <name>sd_encrypted_claims</name>
          <t>The following completed registration template per RFC8152 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Name: sd_encrypted claims</t>
            </li>
            <li>
              <t>Label: TBD6 (requested assignment 19)</t>
            </li>
            <li>
              <t>Value Type: bstr</t>
            </li>
            <li>
              <t>Value Registry: (empty)</t>
            </li>
            <li>
              <t>Description: A list of encrypted selectively disclosed claims, which were originally redacted, then later disclosed at the discretion of the sender.</t>
            </li>
            <li>
              <t>Reference: RFC XXXX</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="cbor-tags">
        <name>CBOR Tags</name>
        <section anchor="to-be-redacted-tag">
          <name>To be redacted tag</name>
          <t>The array claim element, or map key and value inside the "To be redacted" tag is intended to be redacted using selective disclosure.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: TBD3 (requested assignment 58)</t>
            </li>
            <li>
              <t>Data Item: (any)</t>
            </li>
            <li>
              <t>Semantics: An array claim element, or map key and value intended to be redacted.</t>
            </li>
            <li>
              <t>Specification Document(s): RFC XXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="redacted-claim-keys-tag">
          <name>Redacted claim keys tag</name>
          <t>This tag encloses the integer claim key 0 (reserved as a CWT claim key). It indicates that the claim value is an array of redacted claim keys at the same level.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: TBD4 (requested assignment 59)</t>
            </li>
            <li>
              <t>Data Item: unsigned integer 0</t>
            </li>
            <li>
              <t>Semantics: Tags the claim key 0. The value of the key is an array of selective disclosure redacted claim keys.</t>
            </li>
            <li>
              <t>Specification Document(s): RFC XXXX</t>
            </li>
          </ul>
        </section>
        <section anchor="redacted-claim-element-tag">
          <name>Redacted claim element tag</name>
          <t>The binary string inside the tag is a selective disclosure redacted claim element of an array.</t>
          <ul spacing="normal">
            <li>
              <t>Tag: TBD5 (requested assignment 60)</t>
            </li>
            <li>
              <t>Data Item: byte string</t>
            </li>
            <li>
              <t>Semantics: A selective disclosure redacted (array) claim element.</t>
            </li>
            <li>
              <t>Specification Document(s): RFC XXXX</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 entries to the CWT claims registry (https://www.iana.org/assignments/cwt/cwt.xhtml).</t>
        <!-- https://datatracker.ietf.org/doc/html/draft-ietf-oauth-selective-disclosure-jwt-12#name-json-web-token-claims-regis -->

<section anchor="vct">
          <name>vct</name>
          <t>The following completed registration template per RFC8392 is provided:</t>
          <ul spacing="normal">
            <li>
              <t>Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Description: Verifiable credential type</t>
            </li>
            <li>
              <t>JWT Claim Name: vct</t>
            </li>
            <li>
              <t>Claim Key: TBD6 (request assignment 11)</t>
            </li>
            <li>
              <t>Claim Value Type(s): bstr</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): RFC XXXX</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This section requests the registration of new media types in https://www.iana.org/assignments/media-types/media-types.xhtml.</t>
        <section anchor="applicationsdcwt">
          <name>application/sd+cwt</name>
          <t>IANA is requested to add the following entry to the media types registry in accordance with RFC6838, RFC4289, and RFC6657.</t>
          <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: See the Security Considerations section
of RFC XXXX, and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: RFC XXXX</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>IANA is requested to add the following entry to the media types registry in accordance with RFC6838, RFC4289, and RFC6657.</t>
          <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: See the Security Considerations section
of RFC XXXX, and <xref target="RFC8392"/></t>
            </li>
            <li>
              <t>Interoperability considerations: n/a</t>
            </li>
            <li>
              <t>Published specification: RFC XXXX</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="content-formats">
        <name>Content-Formats</name>
        <t><cref anchor="rfced">RFC Editor:</cref> Please replace "RFCthis" with the RFC number assigned to this document.</t>
        <t><cref anchor="rfced_1">RFC Editor:</cref> IANA is requested to register the following Content-Format numbers in the "CoAP Content-Formats" registry, within the "Constrained RESTful Environments (CoRE) Parameters" registry group <xref target="IANA.core-parameters"/>:</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">TBD1</td>
              <td align="left">RFCthis</td>
            </tr>
            <tr>
              <td align="left">application/kb+cwt</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>If possible, TBD1 and TBD2 should be assigned in the 256..9999 range.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <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="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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <referencegroup anchor="BCP205" target="https://www.rfc-editor.org/info/bcp205">
          <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
            <front>
              <title>Improving Awareness of Running Code: The Implementation Status Section</title>
              <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
              <author fullname="A. Farrel" initials="A." surname="Farrel"/>
              <date month="July" year="2016"/>
              <abstract>
                <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
                <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="205"/>
            <seriesInfo name="RFC" value="7942"/>
            <seriesInfo name="DOI" value="10.17487/RFC7942"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-edn-literals">
          <front>
            <title>CBOR Extended Diagnostic Notation (EDN)</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="8" month="January" year="2025"/>
            <abstract>
              <t>   This document formalizes and consolidates the definition of the
   Extended Diagnostic Notation (EDN) of the Concise Binary Object
   Representation (CBOR), addressing implementer experience.

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

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


   // (This cref will be removed by the RFC editor:) The present
   // revision (–16) addresses the first half of the WGLC comments,
   // except for the issues around the specific way how to best achieve
   // pluggable ABNF grammars for application-extensions.  It is
   // intended for use as a reference document for the mid-WGLC CBOR WG
   // interim meeting on 2025-01-08.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-16"/>
        </reference>
        <reference anchor="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9596">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) "typ" (type) Header Parameter</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This specification adds the equivalent of the JSON Object Signing and Encryption (JOSE) "typ" (type) header parameter to CBOR Object Signing and Encryption (COSE). This enables the benefits of explicit typing (as defined in RFC 8725, "JSON Web Token Best Current Practices") to be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9596"/>
          <seriesInfo name="DOI" value="10.17487/RFC9596"/>
        </reference>
        <reference anchor="RFC8747">
          <front>
            <title>Proof-of-Possession Key Semantics for CBOR Web Tokens (CWTs)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This specification describes how to declare in a CBOR Web Token (CWT) (which is defined by RFC 8392) that the presenter of the CWT possesses a particular proof-of-possession key. Being able to prove possession of a key is also sometimes described as being the holder-of-key. This specification provides equivalent functionality to "Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)" (RFC 7800) but using Concise Binary Object Representation (CBOR) and CWTs rather than JavaScript Object Notation (JSON) and JSON Web Tokens (JWTs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8747"/>
          <seriesInfo name="DOI" value="10.17487/RFC8747"/>
        </reference>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.draft-ietf-oauth-selective-disclosure-jwt">
          <front>
            <title>Selective Disclosure for JWTs (SD-JWT)</title>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
              <organization>Keio University</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="1" month="March" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON-encoded data structure used as the
   payload of a JSON Web Signature (JWS).  The primary use case is the
   selective disclosure of JSON Web Token (JWT) claims.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-unprompted-auth-12"/>
        </reference>
        <reference anchor="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="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="I-D.mahy-mls-sd-cwt-credential">
          <front>
            <title>Messaging Layer Security credentials using Selective Disclosure CBOR Web Tokens</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="2" month="March" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol contains Credentials used
   to authenticate an MLS client with a signature key pair.  Selective
   Disclosure CBOR Web Tokens (SD-CWT) and Selective Disclosure JSON Web
   Tokens (SD-JWT) define token formats where the holder can selectively
   reveal claims about itself with strong integrity protection and
   cryptographic binding to the holder's key.  This document defines MLS
   credentials for both these token types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-sd-cwt-credential-00"/>
        </reference>
      </references>
    </references>
    <?line 1319?>

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

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

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

sd-protected = {
   &(typ: 16) ^ => "application/sd+cwt",
   &(alg: 1) ^ => int,
   &(sd_alg: TBD2) ^= int,             ; -16 for sha-256
   * key => any   
}

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

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

kbt-unprotected = {
   * key => any   
}

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

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

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

encrypted-array = [ +bstr .cbor encrypted ]
encrypted = [
  bstr .size 16,     ; 128-bit salt
  uint16,            ; IANA AEAD Algorithm number
  bstr,              ; the ciphertext output of a bstr-encoded-salted
                     ;   with a matching salt
  bstr               ; the corresponding MAC
]
;bstr-encoded-salted = bstr .cbor salted

key = int / text
TBD1 = 17
TBD2 = 18
;TBD3 = #6.58(any)      ; CBOR tag wrapping to-be-redacted keys or elements
TBD4 = #6.59(0)  ; CBOR tag 59 wrapping reserved integer claim key 0
;TBD5 = #6.60( bstr ) ;redacted_claim_element
TBD6 = 19
]]></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 and COSE.</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>
      </section>
      <section anchor="redaction-claims">
        <name>Redaction Claims</name>
        <t>The COSE equivalent of <tt>_sd</tt> is a CBOR tag (requested assignment 59) of the claim key 0. The corresponding claim 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>
      </section>
      <section anchor="issuance">
        <name>Issuance</name>
        <t>The issuance process for SD-CWT is similar to SD-JWT, with the exception that a confirmation claim is <bcp14>REQUIRED</bcp14>.</t>
      </section>
      <section anchor="presentation">
        <name>Presentation</name>
        <t>The presentation process for SD-CWT is similar to SD-JWT, except that a Key Binding Token is <bcp14>REQUIRED</bcp14>.
The Key Binding Token then includes the issued SD-CWT, including the Holder-selected disclosures.
Because the entire SD-CWT is included as a claim in the SD-KBT, the disclosures are covered by the Holder's signature in the SD-KBT, but not by the Issuer's signature in the SD-CWT.</t>
      </section>
      <section anchor="validation">
        <name>Validation</name>
        <t>The validation process for SD-CWT is similar to SD-JWT, however, JSON Objects are replaced with CBOR Maps which can contain integer keys and CBOR Tags.</t>
      </section>
    </section>
    <section anchor="keys-used-in-the-examples">
      <name>Keys used in the examples</name>
      <section anchor="subject-holder">
        <name>Subject / Holder</name>
        <t>Holder COSE key pair in EDN format</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /alg/  3 : -7, /ES256/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343',
  /d/   -4 : h'5759a86e59bb3b002dde467da4b52f3d
               06e6c2cd439456cf0485b9b864294ce5'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 1, /P-256/
  /x/   -2 : h'8554eb275dcd6fbd1c7ac641aa2c90d9
               2022fd0d3024b5af18c7cc61ad527a2d',
  /y/   -3 : h'4dc7ae2c677e96d0cc82597655ce92d5
               503f54293d87875d1e79ce4770194343'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(4)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   01                                   # unsigned(1)
   21                                   # negative(1)
   58 20                                # bytes(32)
      8554EB275DCD6FBD1C7AC641AA2C90D92022FD0D3024B5AF18C7CC61AD527A2D
   22                                   # negative(2)
   58 20                                # bytes(32)
      4DC7AE2C677E96D0CC82597655CE92D5503F54293D87875D1E79CE4770194343
]]></sourcecode>
        <t>The COSE thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
8343d73cdfcb81f2c7cd11a5f317be8eb34e4807ec8c9ceb282495cffdf037e0
]]></artwork>
        <t>Holder key pair in JWK format</t>
        <artwork><![CDATA[
{
  "kty": "EC",
  "alg": "ES256",
  "kid": "WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M",
  "crv": "P-256",
  "x": "hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1Sei0",
  "y": "TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M",
  "d": "V1moblm7OwAt3kZ9pLUvPQbmws1DlFbPBIW5uGQpTOU"
}
]]></artwork>
        <t>Input to Holder public JWK thumbprint (ignore line breaks)</t>
        <artwork><![CDATA[
{"crv":"P-256","kty":"EC","x":"hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1S
ei0","y":"TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M"}
]]></artwork>
        <t>SHA-256 of the Holder public JWK input string (in hex)</t>
        <artwork><![CDATA[
59143645b6394582422317c340bf5a825f5f15209856ee17a1ca9beb37ab7353
]]></artwork>
        <t>Holder public JWK thumbprint</t>
        <artwork><![CDATA[
WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M
]]></artwork>
        <t>Holder public key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhVTrJ13Nb70cesZBqiyQ2SAi/Q0w
JLWvGMfMYa1Sei1Nx64sZ36W0MyCWXZVzpLVUD9UKT2Hh10eec5HcBlDQw==
-----END PUBLIC KEY-----
]]></artwork>
        <t>Holder private key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgV1moblm7OwAt3kZ9
pLUvPQbmws1DlFbPBIW5uGQpTOWhRANCAASFVOsnXc1vvRx6xkGqLJDZICL9DTAk
ta8Yx8xhrVJ6LU3HrixnfpbQzIJZdlXOktVQP1QpPYeHXR55zkdwGUND
-----END PRIVATE KEY-----
]]></artwork>
      </section>
      <section anchor="issuer">
        <name>Issuer</name>
        <t>Issuer COSE key pair in Extended Diagnostic Notation (EDN)</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /kid/  2 : "https://issuer.example/cwk3.cbor",
  /alg/  3 : -35, /ES384/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554',
  /d/   -4 : h'71c54d2221937ea612db1221f0d3ddf771c9381c4e3be41d
               5aa0a89d685f09cfef74c4bbf104783fd57e87ab227d074c'
}
]]></sourcecode>
        <t>The fields necessary for the COSE Key Thumbprint <xref target="RFC9679"/>
in EDN format:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  /kty/  1 : 2, /EC/
  /crv/ -1 : 2, /P-384/
  /x/   -2 : h'c31798b0c7885fa3528fbf877e5b4c3a6dc67a5a5dc6b307
               b728c3725926f2abe5fb4964cd91e3948a5493f6ebb6cbbf',
  /y/   -3 : h'8f6c7ec761691cad374c4daa9387453f18058ece58eb0a8e
               84a055a31fb7f9214b27509522c159e764f8711e11609554'
}
]]></sourcecode>
        <t>The same map in CBOR pretty printing</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A4                                      # map(5)
   01                                   # unsigned(1)
   02                                   # unsigned(2)
   20                                   # negative(0)
   02                                   # unsigned(2)
   21                                   # negative(1)
   58 30                                # bytes(48)
      C31798B0C7885FA3528FBF877E5B4C3A6DC67A5A5DC6B307
      B728C3725926F2ABE5FB4964CD91E3948A5493F6EBB6CBBF
   22                                   # negative(2)
   58 30                                # bytes(48)
      8F6C7EC761691CAD374C4DAA9387453F18058ECE58EB0A8E
      84A055A31FB7F9214B27509522C159E764F8711E11609554
]]></sourcecode>
        <t>The COSE thumbprint (in hexadecimal)--SHA256 hash of the thumbprint fields:</t>
        <artwork><![CDATA[
554550a611c9807b3462cfec4a690a1119bc43b571da1219782133f5fd6dbcb0
]]></artwork>
        <t>Issuer key pair in JWK format</t>
        <artwork><![CDATA[
{
"kty": "EC",
"alg": "ES384",
"kid": "https://issuer.example/cwk3.cbor",
"crv": "P-384",
"x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm8qvl-0lkzZHjlIpUk_brtsu_",
"y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3-SFLJ1CVIsFZ52T4cR4RYJVU",
"d":"ccVNIiGTfqYS2xIh8NPd93HJOBxOO-QdWqConWhfCc_vdMS78QR4P9V-h6sifQdM"
}
]]></artwork>
        <t>Input to Issuer JWK thumbprint (ignore line breaks)</t>
        <artwork><![CDATA[
{"crv":"P-384","kty":"EC","x":"wxeYsMeIX6NSj7-HfltMOm3GelpdxrMHtyjDclkm
8qvl-0lkzZHjlIpUk_brtsu_","y":"j2x-x2FpHK03TE2qk4dFPxgFjs5Y6wqOhKBVox-3
-SFLJ1CVIsFZ52T4cR4RYJVU"}
]]></artwork>
        <t>SHA-256 of the Issuer JWK input string (in hex)</t>
        <artwork><![CDATA[
18d4ddb7065d945357e3972dee76af4eddc7c285fb42efcfa900c6a4f8437850
]]></artwork>
        <t>Issuer JWK thumbprint</t>
        <artwork><![CDATA[
GNTdtwZdlFNX45ct7navTt3HwoX7Qu_PqQDGpPhDeFA
]]></artwork>
        <t>Issuer public key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEwxeYsMeIX6NSj7+HfltMOm3GelpdxrMH
tyjDclkm8qvl+0lkzZHjlIpUk/brtsu/j2x+x2FpHK03TE2qk4dFPxgFjs5Y6wqO
hKBVox+3+SFLJ1CVIsFZ52T4cR4RYJVU
-----END PUBLIC KEY-----
]]></artwork>
        <t>Issuer private key in PEM format</t>
        <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDBxxU0iIZN+phLbEiHw
0933cck4HE475B1aoKidaF8Jz+90xLvxBHg/1X6HqyJ9B0yhZANiAATDF5iwx4hf
o1KPv4d+W0w6bcZ6Wl3Gswe3KMNyWSbyq+X7SWTNkeOUilST9uu2y7+PbH7HYWkc
rTdMTaqTh0U/GAWOzljrCo6EoFWjH7f5IUsnUJUiwVnnZPhxHhFglVQ=
-----END PRIVATE KEY-----
]]></artwork>
      </section>
    </section>
    <section anchor="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-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>
          <li>
            <t>add description of decoy digests <strong>TODO</strong></t>
          </li>
          <li>
            <t>provide test vectors <strong>TODO</strong></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>Rewrote the main normative section</t>
          </li>
          <li>
            <t>Made redaacted_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 Jones.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
