<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-spice-sd-cwt-02" category="std" consensus="true" submissionType="IETF" updates="RFC8392" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title>SPICE SD-CWT</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-02"/>
    <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="2024" month="December" day="04"/>
    <area>Security</area>
    <workgroup>Secure Patterns for Internet CrEdentials</workgroup>
    <keyword>cose</keyword>
    <keyword>cwt</keyword>
    <keyword>selective disclosure</keyword>
    <abstract>
      <?line 65?>

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

<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  : "WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M",
    / 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 : {
        / alg: ES256 /  3: -7,
        / kty: EC2   /  1: 2,
        / crv: P-256 / -1: 1,
        / x / -2: b64'hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1Sei0',
        / y / -3: b64'TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M'
      }
    },
    /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>
        <sourcecode type="cbor-diag"><![CDATA[
/ cose-sign1 / 18([
  / protected / << {
    / alg /    1  : -35, / ES384 /
    / typ /    16 : "application/sd+cwt",
    / kid /    4  : 'https://issuer.example/cwk3.cbor',
    / sd_alg / 18 : -16  / SHA256 /
  } >>,
  / unprotected / {
    / sd_claims / 17 : / these are all the disclosures /
    <<[
        <<[
            /salt/   h'8d5c15fa86265d8ff77a0e92720ca837',
            /claim/  501,  / inspector_license_number /
            /value/  "ABCD-123456"
        ]>>,
        <<[
            /salt/   h'86c84b9c3614ba27073c7e5a475a2a13',
            /value/  1549560720  / inspected 7-Feb-2019 /
        ]>>,
        <<[
            /salt/   h'86c84b9c3614ba27073c7e5a475a2a13',
            /value/  1612498440  / inspected 4-Feb-2021 /
        ]>>,
        <<[
            /salt/   h'30eef86edeaa197df7bd3d17dd89cd87',
            /claim/  "region",
            /value/  "ca" /California/
        ]>>,
        <<[
            /salt/   h'284538c4a1881fac49b2edc550c1913e',
            /claim/  "postal_code",
            /value/  "94188"
        ]>>
    ]>>
  },
  / payload / << {
    / iss / 1  : "https://issuer.example",
    / sub / 2  : "WRQ2RbY5RYJCIxfDQL9agl9fFSCYVu4Xocqb6zerc1M",
    / 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 : {
        / alg: ES256 /  3: -7,
        / kty: EC2   /  1: 2,
        / crv: P-256 / -1: 1,
        / x / -2: h'hVTrJ13Nb70cesZBqiyQ2SAi_Q0wJLWvGMfMYa1Sei0',
        / y / -3: h'TceuLGd-ltDMgll2Vc6S1VA_VCk9h4ddHnnOR3AZQ0M'
      }
    },
    /most_recent_inspection_passed/ 500: true,
    / redacted_claim_keys / 59(0) : [
        / redacted inspector_license_number /
        h'7e6e350907d0ba3aa7ae114f8da5b360' +
        h'601c0bb7995cd40049b98e4f58fb6ec0'
    ],
    /inspection_dates/ 502 : [
        / redacted inspection date 7-Feb-2019 /
        60(h'a0f74264a8c97655c958aff3687f1390' +
           h'ed0ab6f64cd78ba43c3fefee0de7b835')
        / redacted inspection date 4-Feb-2021 /
        60(h'1e7275bcda9bc183079cd4515c5c0282' +
           h'a2a0e9105b660933e2e68f9a3f40974b')
        1674004740,   / 2023-01-17T17:19:00 /
    ],
    / inspection_location / 503 : {
        "country" : "us",            / United States /
        / redacted_claim_keys / 59(0) : [
            / redacted region /
            h'c47e3b047c1cd6d9d1e1e01514bc2ec9' +
            h'ed010ac9ae1c93403ec72572bb1e00e7',
            / redacted postal_code /
            h'0b616e522a05d8d134a834979710120d' +
            h'41ac1522b056d5f9509cf7e850047302'
        ]
    }
  } >>,
  / signature / h'3337af2e66959614' /TODO: fix /
])
]]></sourcecode>
        <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>
        <sourcecode type="cbor-diag"><![CDATA[
<<[
    /salt/   h'8d5c15fa86265d8ff77a0e92720ca837',
    /claim/  501,  / inspector_license_number /
    /value/  "ABCD-123456"
]>>
]]></sourcecode>
        <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>
        <artwork><![CDATA[
7e6e350907d0ba3aa7ae114f8da5b360601c0bb7995cd40049b98e4f58fb6ec0
]]></artwork>
      </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 : /just the disclosures chosen by the Holder/
<<[
    <<[
        /salt/   h'8d5c15fa86265d8ff77a0e92720ca837',
        /claim/  501,  / inspector_license_number /
        /value/  "ABCD-123456"
    ]>>,
    <<[
        /salt/   h'86c84b9c3614ba27073c7e5a475a2a13',
        /value/  1549560720  / inspected 7-Feb-2019 /
    ]>>,
    <<[
        /salt/   h'30eef86edeaa197df7bd3d17dd89cd87',
        /claim/  "region",
        /value/  "ca" /California/
    ]>>
]>>
]]></sourcecode>
      <t>The Holder <bcp14>MAY</bcp14> fetch a nonce from the Verifier to prevent replay, or obtain a nonce acceptable to the verifier through a process similar to the method described in <xref target="I-D.ietf-httpbis-unprompted-auth"/>.</t>
      <t>Finally, the Holder generates a Selective Disclosure Key Binding Token (SD-KBT) that ties together the SD-CWT generated by the Issuer (with the disclosures the Holder chose for the Verifier in its unprotected header), the Verifier target audience and optional nonces, and proof of possession of the Holder's private key.</t>
      <t>The issued SD-CWT is placed in the <tt>kcwt</tt> (Confirmation Key CWT) protected header field (defined in <xref target="RFC9528"/>).</t>
      <artwork><![CDATA[
/ sd_kbt    / 18 : << 18([
  / 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  *** /
        h'0123456789abcdef...0123'
  } >>,
  / unprotected / {},
  / payload / << {
    / cnonce / 39    : h'8c0f5f523b95bea44a9a48c649240803',
    / aud     / 3    : "https://verifier.example/app",
    / iat     / 6    : 1725283443, / 2024-09-02T06:24:03Z /
  } >>,
  / signature / h'1237af2e678945'  / TODO: fix /
]) >>
]]></artwork>
      <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.</t>
      <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>
    </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 the value "application/sd-cwt" in the SD-CWT.</t>
      <t>An SD-CWT is a CWT containing the "blinded claim hash" of at least one blinded claim in the CWT payload.
Optionally the salted claim values (and often claim names) for the corresponding Blinded Claim Hash are actually disclosed in the <tt>sd_claims</tt> claim in the unprotected header of the CWT (the disclosures).</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 <tt>sd_claims</tt> 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>
      <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;</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",
   &(alg: 1) ^ => int,
   &(sd_alg: 18) ^= int,             ; -16 for sha-256
   * key => any
}

sd-unprotected = {
   ? &(sd_claims: 17) ^ => bstr .cbor 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
      &(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.
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.
The <tt>aud</tt> claim <bcp14>MUST</bcp14> be included and relevant to the Verifier.
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) ^ => bstr .cbor 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 <tt>cnonce</tt> is a <tt>bstr</tt> and <bcp14>MUST</bcp14> be treated as opaque to the Holder.</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="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>
      <t><strong>TODO</strong> - Provide more examples</t>
      <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>
          <artwork><![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'8d5c15fa86265d8ff77a0e92720ca837',
                    /claim/  501,  / inspector_license_number /
                    /value/  "ABCD-123456"
                ]>>,
                <<[
                    /salt/   h'86c84b9c3614ba27073c7e5a475a2a13',
                    /value/  1549560720  / inspected 7-Feb-2019 /
                ]>>,
                <<[
                    /salt/   h'30eef86edeaa197df7bd3d17dd89cd87',
                    /claim/  "region",
                    /value/  "ca" /California/
                ]>>
            ]>>,
          },
          / CWT payload / << {
            / iss / 1   : "https://issuer.example",
            / sub / 2   : "https://device.example",
            / aud / 3   : "https://verifier.example",
            / exp / 4   : 1883000000,
            / iat / 6   : 1683000000,
            / cnf / 8   : {
              / cose key / 1 : {
                / alg: ES256 /  3: 35,
                / kty: EC2   /  1: 2,
                / crv: P-256 / -1: 1,
                / x / -2: h'768ed88626',
                / y / -3: h'6a48ccfd5d'
              }
            },
            /most_recent_inspection_passed/ 500: true,
            / redacted_claim_keys / 59(0) : [
                / redacted inspector_license_number /
                h'7e6e350907d0ba3aa7ae114f8da5b360' +
                h'601c0bb7995cd40049b98e4f58fb6ec0'
            ],
            /inspection_dates/ 502 : [
                / redacted inspection date 7-Feb-2019 /
                60(h'a0f74264a8c97655c958aff3687f1390' +
                   h'ed0ab6f64cd78ba43c3fefee0de7b835')
                / redacted inspection date 4-Feb-2021 /
                60(h'1e7275bcda9bc183079cd4515c5c0282' +
                   h'a2a0e9105b660933e2e68f9a3f40974b')
                1674004740,   / 2023-01-17T17:19:00 /
            ],
            / inspection_location / 503 : {
                "country" : "us",            / United States /
                / redacted_claim_keys / 59(0) : [
                    / redacted region /
                    h'c47e3b047c1cd6d9d1e1e01514bc2ec9' +
                    h'ed010ac9ae1c93403ec72572bb1e00e7',
                    / redacted postal_code /
                    h'0b616e522a05d8d134a834979710120d' +
                    h'41ac1522b056d5f9509cf7e850047302'
                ]
            }
          } >>,                    / end of issuer_sd_cwt payload /
          / CWT signature / h'3337af2e66959614'
        ])>>,  / end of issuer SD-CWT /
    }>>,     / end of KBT protected header
    / KBT unprotected / {},
    / KBT payload / << {
        / cnonce / 39    : h'e0a156bb3f',
        / aud     / 3    : "https://verifier.example",
        / iat     / 6    : 1783000000
    } >>,                              / end of kbt payload /
    / KBT signature / h'1237af2e678945'
])                                     / end of kbt /
]]></artwork>
        </figure>
      </section>
      <section anchor="nesting">
        <name>Nested example</name>
        <t><strong>TODO</strong></t>
      </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="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>
    <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>
      <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:
Michael Prorock, mprorock@mesur.io</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: Michael Prorock, mprorock@mesur.io</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:
Orie Steele, orie@transmute.industries</t>
            </li>
            <li>
              <t>Intended usage: COMMON</t>
            </li>
            <li>
              <t>Restrictions on usage: none</t>
            </li>
            <li>
              <t>Author: Orie Steele, orie@transmute.industries</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Provisional registration?  No</t>
            </li>
          </ul>
        </section>
      </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="3" month="November" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR) (STD 94, RFC 8949) 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.

   In addition to the binary interchange format, CBOR from the outset
   (RFC 7049) defined a text-based "diagnostic notation" in order to be
   able to converse about CBOR data items without having to resort to
   binary data.  RFC 8610 extended this into what is known as Extended
   Diagnostic Notation (EDN).

   This document consolidates the definition of EDN, sets forth a
   further step of its evolution, and is intended to serve as a single
   reference target in specifications that use EDN.

   It specifies an extension point for adding application-oriented
   extensions to the diagnostic notation.  It then defines two such
   extensions that enhance EDN with text representations of epoch-based
   date/times and of IP addresses and prefixes (RFC 9164).

   A few further additions close some gaps in usability.  The document
   modifies one extension originally specified in Appendix G.4 of RFC
   8610 to enable further increasing usability.  To facilitate tool
   interoperation, this document specifies a formal ABNF grammar, and it
   adds media types.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision -13 reflects the branches "roll-up" and "roll-up-
   // 2" in the repository, an attempt to contain the entire
   // specification of EDN in this document, instead of describing
   // updates to the existing documents RFC 8949 and RFC 8610.
   // Editorial work on the branch "roll-up-2" might continue.  The
   // exact reflection of this document being a replacement for both
   // Section 8 of RFC 8949 and Appendix G of RFC 8610 needs to be
   // recorded in the metadata and in abstract and introduction.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-edn-literals-13"/>
        </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>
      </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="15" month="November" year="2024"/>
            <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-14"/>
        </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.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>
      </references>
    </references>
    <?line 925?>

<section anchor="cddl">
      <name>Complete CDDL Schema</name>
      <figure anchor="cddl-schema">
        <name>A complete CDDL description of SD-CWT</name>
        <artwork><![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) ^ => bstr .cbor sd-cwt-issued,
   * key => any   
}

sd-unprotected = {
   ? &(sd_claims: TBD1) ^ => bstr .cbor salted-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
      &(cnf: 8) ^ => { * key => any }, ; key confirmation
    ;
    ? &(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
]

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
]]></artwork>
      </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 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>Hodler 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 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-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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
LQ8VNtMnQIok7wHULzIjyUhRBjj4agyYdUisMsIr66n+CtRK7uLgMXu8/sB6
M43p/q3DesshvvpErZfOwUP41NVn5iwrDvswWW7NFTIkcFhTBsXSurwXdP2p
r+IoFm/JaAfmmmbFC14krjJWpO4L0AWvO8zvMx2Mm1b5woZZSCzkftTJICIe
ejpSgfJjPDw4ButX0t6oAemHxN1J/PrDvD8HIAUxaPuB4GFiDXikEUKMezDH
zpeWVIOGD58I4Va6kWEY2b7K6pe6Og9VuRzqNw6RRbA3ixEW404PdIgRVpAT
4S+khma2zgMHk87ixB+NU0YvyMKdzg9ia1lo1rcjPveMieCVHRm88uOZvD+3
rBcvMJHgxQtsZLxKhiIgrYdiNrK4rGu8IkQEiPNPCVKFl7usiYRlbCk4ttpx
m6pRV/Clfz7dyZxRqNRxfHF6oO775cu/8IZJdMY4MV9qZGGWTRtrXqy8Nqal
rTCyFJBt0AN9NH0qpxxTldH3gGWFhUah83yUNtHQcfn4krKsjrCOWVJ9ECiK
0hDvIipFUrJeTBh7/VAPlTh5CWsBwzin8+h3plQb8D+dQ1DRryojcE/iaOhj
hUBn5gcY8MxKIuxFpaAEBGwIMiy2R4Lg8JVNVGFT10Yk8Sje5LNeooRlAd1C
Z9+V5QkzKmQVfBMg1USnkblu8ewZO8QXpQExJVM7pDAd+bR4vaciELT3TB5T
TBHgC0WQ9YlF/IB+WRE0MbV9mc4ggiV5Vh/07/qvpKAU0/leG7JcwgaTTqOy
PK8s06uu78fKE76ylK96J2t5X+KXkfol/+pNnXwmq9gYxoNZNGFDxIMug9mE
my0vj1UEnD1YJssA/JHlstIK7NlCraQHq2apP5VwlV94WSWt3Nj55OFff0V0
prqqlmEjoLsojwz8K9Y70mP/dGEtPcJPFtjS/e8vtKX+Puex9vhVPa3m1QJU
TyrE9WeBfWJNLD3C/bWxFta0vEaWsQCr8N0c826RgEvyILMGunjVg9Wrsj66
ipXZp3CRXeyDuZMib/KetMmFXrreFWZNaodVsZWuVoWtOsta6fpUueI4+umy
QlXGEooFq4DJlTS7r3CVMd89BayyVlkhq26nx70eMoASSjPrVXUwd9Udem3v
eaHdXe77XQE/TytTlc38lCJB+R5PYUdPK1+V9XpcGSv197mwuIfLWi1f1f3l
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
ymPWVxGZ77k3+ugaJIuv9pGDYOABxTCZdXKWdBC1VGBDirUhjGTNR2/GWLy3
Yp29Pjs+YsdUdlOsIV8rnuj30J7qutu2LjqtOaq4/UE2oy4C6Vr9Df5sFuTK
JcadyVKfGxJLlmWUysJENuz1+sMbWQBbvJcMdZWVq3S+MmAru9ukeq+A4k1f
MeFB/HLleys/8eLyFTe+xn6U7SB+ucXvT3g3t+hF4D3hfdyiF8H8vj6JnGDS
Pb7ZTJtXn/rTtxfXJ++cyU1S3wn2nJOtgw/t2at30/PjixWVUn8QTmcUfKfq
AopKs4i7dDybONMYxfIqUBSGZAU+vh8Gg3gwSIWQKhau1i3wS+jF9T96+Rat
Hxf/pLXLRah3z+Yr4RpL8WmV8hpNvRlWLKDdr7eanVbb6TT7rXav0Wo0mvWu
22zVnGHb7jXaw/aw3m7U+r12h/N61667dt/hTrNrO91muykguA97Yp4nEFTZ
kLKm2snuYY6mK/i3tfvq4IidXGy9Pdhmb3Y/0o/W4d7Vze7Nx/030aeD719r
25vvPh7Izzub79ydd6PN3WXbswHbY+XJs35022kln5qdD7XD+faHPz69/z59
+/5ip3/x5ryxP67XOHfb++5WsPPu5rffBGC7RzsLYMm1eQEVocwqyT2wuNOD
95vnu8bqDl7tb452Nw+3Dl9tzb+9Ojts9eH7q+1t+flmd3/rVe3GvjnY2nz3
blQ8G9byw/FhfLp5tL25ebb3/jgJ/3Dr19ent53bq1ff3r7e+XSw/ba/c755
ZaV27+Nt73Ycv3/deXvR3I/923A4dd59P3j9yQv+OL5K3787qb+bnnzk+3+c
ttvfr7ybVxdHOwZqiosS799VZdPhcIow+/uZWo6lZQyt2Wvhd8nOlmaTXjXJ
hsGmmoPJrnh+b275x+SQH/zROTr72q3sD4P08HjSfMWDqXcbH+6n8687bnA1
6X27Diq14Or7p/2vwcH04uqLE6fJ7AuOg4f6a+O2ctvYm+6/qTXPdxvfrlre
3sntaO9r0v7Yufl2PH6z9T66rTQrZ3tvX9e33x8ke5/ajfOWe9qCA/P+AseB
hay47vujA//V+fDbx7PG7cG4d3Ti9Zv7r4+3bo+PK++8D9+2o/DDeLjtfrn2
Ds+6vXenrZP++8q4k/jDd97hIt+TOP4JhkdoKjK8xyLMWo6xJyHMWoqxct5o
LPcepljvecBpgSt02h5wxWa7y5v9bsPjvNuxhy3ueW7XbfTaQ6fV4EN3aPdr
Nbdjt4a9VrPba8s3SZeiVkzw6ujcS2/gnOwd/dFqu2k3tK/P0+b+TfRH993s
y8m3dzuvpifjHb63mRvr57nh/seb3c0cN9x709rd3dw+2PkInDC/by8X9s0y
Kf2luW8btG8bsGEv79swS+zYy+bLJRv2AMtUCPhTLLMhWOZmjmVunc22tjY3
/a2DVxzaOPDb1tbO1u3tRc0/+HT0cjp+6+z6+zcWJrW57lVrf7fVbW/V7egN
aI57vdffX/Zrt2+vb7f2Rxv1Pzr73+av+1u1+fjT5pG/uXm+s9f2b25b46EV
1d+cXLe8lx9qNx3H/dT5EDRfJTe8+ebwaP7hzJl/e/lH9+zD+dEVP77wg7Pz
/mzWmHdfnjj73f2PH65cKz73Ds/tb+fj2sXGq80Px9+Dr/F21NmN9j583e8O
2wcXSXjx+sK/eR+Gn07Gt/vjvVHw/t1vD/FcrBciAwbYvp9gzR+R2jIwElvW
2XQxsUUq/yqEALVoIlEjmNYI+0imvssr0nlba2CVTMwHwoIrOcOkYFLIF1aV
vKSXrYqSZ2sif4DeUokm5ULxY3ypnhGxhzPmyiVieIOu/79kiKNIBOZjO4wA
VHWK2erJKXvWbK2zZmMNlnSAFyrezBXxe4kRGchFldOCe8YMAwu9rPAEjvus
WV9njR4OeyFf+qHCwkVQnC3ig4EpGKmeLo9TcSvH5ShNHGHT8/ROJTYVxlSl
hKdZSTVKjIOR2Kq8GVwTYzTwLR737WfdEnMAjMfXWK0FcKpuHivslN/EkawI
NhFlj1VJ/qzRIeZFIGIWkixnVDebzUJ8i5OI3sYXsWFAWOackEYVDXTFVbKc
fp/0qp+Kncf3HInXdKypSTE1uuiT1z2r0IquVJNURHHb15HvEUz4zkAqAcHj
CVhPfL7CKqJw2ZV6o0m2tep1pDA+tzMwA6oUlXtVtWkqglYcUYBkFBvVS5Jf
FkoJ5wuWY7dCWemFAO4Keotk/S65GkncRLW+Ln89llW94fxXv0C3t5F89wqx
Bgx+wlWEs6kmgdNobIeyWo9Nd5OEgi1oHLJtIGEHE+Fg6E0X09cC7o2kdzIj
9UKmh0x4UyQsDoDIEKqg7xBaOQE3+hOpYlVdGyPT7qfemkV3r1QKLZ9Yo9NE
dLKbGEQGTchxRF0YdRTIiM9WJhb2YyAuprn328rQDhJKQqToXsJPIt9sS+8p
E4kmISYNRYl6hS6mDiFoAgrlmRCvf4T9skTUwrIgXkAE5p34iagfj86LdcaJ
DWL498DaoqSYT/iKlWAdNnDOPvhwxGyMGD+PHB82820UXaHn401M7NZmH+1k
5tnrbAcG5gHb42m6buU3eZ0dBz6+5/Ocx85MhB2oEJTXUYj+pP8DxEiVcqW6
AAA=

-->

</rfc>
