<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.5) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-birkholz-did-x509-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="did:x509">x509 Decentralized Identifier</title>
    <seriesInfo name="Internet-Draft" value="draft-birkholz-did-x509-01"/>
    <author initials="M." surname="Riechert" fullname="Maik Riechert">
      <organization>Microsoft</organization>
      <address>
        <email>Maik.Riechert@microsoft.com</email>
      </address>
    </author>
    <author initials="A." surname="Delignat-Lavaud" fullname="Antoine Delignat-Lavaud">
      <organization>Microsoft</organization>
      <address>
        <email>antdl@microsoft.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="A." surname="Chamayou" fullname="Amaury Chamayou">
      <organization>Microsoft</organization>
      <address>
        <email>Amaury.Chamayou@microsoft.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="06"/>
    <area>Security</area>
    <keyword>DID</keyword>
    <keyword>X.509</keyword>
    <abstract>
      <?line 70?>

<t>This document defines the did:x509 decentralized identifier method, which enables a direct, resolvable binding between X.509 certificate chains and compact issuer identifiers (DID string). In particular, the did:x509 identifier format in this documents comes with a CWT Claims definition. In general, this identifier is a compact and interoperable mechanism for certificate-based identification by combining a certificate fingerprint with optional policies for subject names, subject alternative names, extended key usage, and issuer information. It is especially useful for policy evaluation and reference in transparency services and similar systems requiring cryptographic binding to certificate material.</t>
      <t>This Informational document is published as an Independent Submission to improve interoperability with Microsoft's architecture. It is not a standard nor a product of the IETF.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/henkbirkholz/draft-birkholz-did-x509"/>.</t>
    </note>
  </front>
  <middle>
    <?line 76?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document aims to define an interoperable and flexible decentralized identifier (<xref target="DIDV1"/>) format for COSE messages that transport or refer to X.509 certificates using <xref target="RFC9360"/>.
The did:x509 identifier format implements a direct, resolvable binding between a certificate chain and a compact issuer string.
It can be used in a COSE Header CWT Claims map as defined in <xref target="RFC9597"/>.</t>
      <t>Including a certificate chain directly in configuration or in policy is often impractical.
This is due to its size, and to the frequency at which some elements, particularly the leaf, are refreshed.
Relying on a partial certificate chain (e.g., a root certificate and some intermediary certificates) is similarly unwieldy.
While stable, the level of granularity afforded by a partial certificate chain may not be sufficient to distinguish several identities that are not equivalent for the purpose of policy.</t>
      <t>Combining authority pinning with attribute assertions is a precise and stable way of capturing identities as a constrained set of certificates.
Their representation as compact and durable identifier strings enables the formulation of readable policy (e.g. "request.issuer == 'did:x509...'"), for example in the context of transparency ledger registration.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>In this document, CDDL (<xref target="RFC8610"/>, <xref target="RFC9165"/>) is used to describe the
data formats, and ABNF (defined in <xref target="RFC5234"/>) to describe identifiers.</t>
      <t>The reader is assumed to be familiar with the vocabulary and concepts
defined in <xref target="I-D.ietf-scitt-architecture"/>.</t>
      <t>Per <xref target="RFC8792"/>, line breaks may be present in the figures of this document
to stay within the line-length limits of this document's format.</t>
    </section>
    <section anchor="identifier-syntax">
      <name>Identifier Syntax</name>
      <t>The did:x509 ABNF definition defined below uses the syntax defined in <xref target="RFC5234"/> and the corresponding definitions for <tt>ALPHA</tt> and <tt>DIGIT</tt>.
<xref target="DIDV1"/> contains the definitions for <tt>idchar</tt> and <tt>pct-encoded</tt> in Section 3.1.</t>
      <sourcecode type="abnf"><![CDATA[
idchar             = ALPHA / DIGIT / "." / "-" / "_" / pct-encoded
pct-encoded        = "%" HEXDIG HEXDIG
]]></sourcecode>
      <figure anchor="fig-core-def">
        <name>ABNF Definition of Core did-x509 Syntax</name>
        <artwork type="abnf" align="left"><![CDATA[
did-x509           = "did:x509:" method-specific-id
method-specific-id = version ":" ca-fingerprint-alg ":" ca-fingerprint 1*("::" predicate-name ":" predicate-value)
version            = 1*DIGIT
ca-fingerprint-alg = "sha256" / "sha384" / "sha512"
ca-fingerprint     = base64url
predicate-name     = 1*ALPHA
predicate-value    = *(1*idchar ":") 1*idchar
base64url          = 1*(ALPHA / DIGIT / "-" / "_")
]]></artwork>
      </figure>
      <t>Implementations of this specification <bcp14>MUST</bcp14> indicate a version value of <tt>0</tt>.</t>
      <t><tt>ca-fingerprint-alg</tt> is one of <tt>sha256</tt>, <tt>sha384</tt>, or <tt>sha512</tt>.
<tt>ca-fingerprint</tt> is <tt>chain[i].fingerprint[ca-fingerprint-alg]</tt> with i &gt; 0, that is, either an intermediate or root CA certificate.
<tt>predicate-name</tt> is a predicate name and <tt>predicate-value</tt> is a predicate-specific value.
<tt>::</tt> is used to separate multiple predicates from each other.</t>
      <t>The following sections define the predicates and their predicate-specific syntax.</t>
      <t>Validation of predicates is formally defined using policies written in the Rego language (<xref target="REGO"/>), rather than pseudo-code.
This is to avoid ambiguity and to make it possible for a reader to evaluate the logic automatically, but there is no expectation that implementations use the Rego language.</t>
      <t>The inputs to the resolution process are the DID string itself and the <tt>x509chain</tt> DID resolution option, which carries a comma-separated base64url-encoded X.509 certificate chain.
To evaluate the reference Rego code shown below, the DID and certificate chain have to be passed to a Rego runtime as a JSON document: <tt>{"did": "&lt;DID&gt;", "chain": &lt;CertificateChain&gt;}</tt>, where <tt>did</tt> is the DID string and <tt>chain</tt> is the parsed representation of the certificate chain derived from the <tt>x509chain</tt> resolution option.</t>
      <t>Core Rego policy:</t>
      <figure anchor="fig-validate-core">
        <name>Core Rego Validation Rule</name>
        <artwork type="rego" align="left"><![CDATA[
parse_did(did) := [ca_fingerprint_alg, ca_fingerprint, policies] if {
    prefix := "did:x509:0:"
    startswith(did, prefix) == true
    rest := trim_prefix(did, prefix)
    parts := split(rest, "::")
    [ca_fingerprint_alg, ca_fingerprint] := split(parts[0], ":")
    policies_raw := array.slice(parts, 1, count(parts))
    policies := [y |
        some i
        s := policies_raw[i]
        j := indexof(s, ":")
        y := [substring(s, 0, j), substring(s, j+1, -1)]
    ]
}

valid if {
    [ca_fingerprint_alg, ca_fingerprint, policies] := parse_did(input.did)
    ca := [c | some i; i != 0; c := input.chain[i]]
    ca[_].fingerprint[ca_fingerprint_alg] == ca_fingerprint
    valid_policies := [i |
        some i
        [name, value] := policies[i]
        validate_predicate(name, value)
    ]
    count(valid_policies) == count(policies)
}
]]></artwork>
      </figure>
      <t>The overall Rego policy is assembled by concatenating the core Rego policy with the Rego policy fragments in the following sections, each one defining a <tt>validate_predicate</tt> function.</t>
      <section anchor="percent-encoding">
        <name>Percent-encoding</name>
        <t>Some of the predicates that are defined in subsequent sections require values to be percent-encoded. Percent-encoding is specified in <xref section="2.1" sectionFormat="of" target="RFC3986"/>. All characters that are not in the allowed set defined below must be percent-encoded:</t>
        <figure anchor="fig-allowed-def">
          <name>ABNF Definition of Characters That Do Not Need to Be Percent-Encoded</name>
          <artwork type="abnf" align="left"><![CDATA[
allowed = ALPHA / DIGIT / "-" / "." / "_"
]]></artwork>
        </figure>
        <t>Note that most libraries implement percent-encoding in the context of URLs and do NOT encode <tt>~</tt> (<tt>%7E</tt>).</t>
      </section>
      <section anchor="subject-predicate">
        <name>"subject" predicate</name>
        <figure anchor="fig-subject-def">
          <name>ABNF Definition of Subject Policy</name>
          <artwork type="abnf" align="left"><![CDATA[
predicate-name  = "subject"
predicate-value = key ":" value *(":" key ":" value)
key             = label / oid
value           = 1*idchar
label           = "CN" / "L" / "ST" / "O" / "OU" / "C" / "STREET"
oid             = 1*DIGIT *("." 1*DIGIT)
]]></artwork>
        </figure>
        <t><tt>&lt;key&gt;:&lt;value&gt;</tt> are the subject name fields in <tt>chain[0].subject</tt> in any order. Field repetitions are not allowed. Values must be percent-encoded.</t>
        <t>Example:</t>
        <t><tt>did:x509:0:sha256:WE4P5dd8DnLHSkyHaIjhp4udlkF9LqoKwCvu9gl38jk::subject:C:US:ST:California:L:San%20Francisco:O:Example%2C%20Inc.</tt></t>
        <t>Rego policy:</t>
        <figure anchor="fig-validate-subject">
          <name>Rego Function Validating Subject Policy</name>
          <artwork type="rego" align="left"><![CDATA[
validate_predicate(name, value) := true if {
    name == "subject"
    items := split(value, ":")
    count(items) % 2 == 0
    subject := {k: v |
        some i
        i % 2 == 0
        k := items[i]
        v := urlquery.decode(items[i+1])
    }
    count(subject) >= 1
    object.subset(input.chain[0].subject, subject) == true
}
]]></artwork>
        </figure>
      </section>
      <section anchor="san-predicate">
        <name>"san" predicate</name>
        <figure anchor="fig-san-def">
          <name>ABNF Definition of SAN Policy</name>
          <artwork type="abnf" align="left"><![CDATA[
predicate-name  = "san"
predicate-value = san-type ":" san-value
san-type        = "email" / "dns" / "uri"
san-value       = 1*idchar
]]></artwork>
        </figure>
        <t><tt>san-type</tt> is the SAN type and must be one of <tt>email</tt>, <tt>dns</tt>, or <tt>uri</tt>. Note that <tt>dn</tt> is not supported.</t>
        <t><tt>san-value</tt> is the SAN value, percent-encoded.</t>
        <t>The pair <tt>[&lt;san_type&gt;, &lt;san_value&gt;]</tt> is one of the items in <tt>chain[0].extensions.san</tt>.</t>
        <t>Example:</t>
        <t><tt>did:x509:0:sha256:WE4P5dd8DnLHSkyHaIjhp4udlkF9LqoKwCvu9gl38jk::san:email:bob%40example.com</tt></t>
        <t>Rego policy:</t>
        <figure anchor="fig-validate-san">
          <name>Rego Function Validating SAN Policy</name>
          <artwork type="rego" align="left"><![CDATA[
validate_predicate(name, value) := true if {
    name == "san"
    [san_type, san_value_encoded] := split(value, ":")
    san_value := urlquery.decode(san_value_encoded)
    [san_type, san_value] == input.chain[0].extensions.san[_]
}
]]></artwork>
        </figure>
      </section>
      <section anchor="eku-predicate">
        <name>"eku" predicate</name>
        <figure anchor="fig-eku-def">
          <name>ABNF Definition of EKU Policy</name>
          <artwork type="abnf" align="left"><![CDATA[
predicate-name  = "eku"
predicate-value = eku
eku             = oid
oid             = 1*DIGIT *("." 1*DIGIT)
]]></artwork>
        </figure>
        <t><tt>eku</tt> is one of the OIDs within <tt>chain[0].extensions.eku</tt>.</t>
        <t>Example:</t>
        <t><tt>did:x509:0:sha256:WE4P5dd8DnLHSkyHaIjhp4udlkF9LqoKwCvu9gl38jk::eku:1.3.6.1.4.1.311.10.3.13</tt></t>
        <t>Rego policy:</t>
        <figure anchor="fig-validate-eku">
          <name>Rego Function Validating EKU Policy</name>
          <artwork type="rego" align="left"><![CDATA[
validate_predicate(name, value) := true if {
    name == "eku"
    value == input.chain[0].extensions.eku[_]
}
]]></artwork>
        </figure>
      </section>
      <section anchor="fulcio-issuer-predicate">
        <name>"fulcio-issuer" predicate</name>
        <figure anchor="fig-fulcio-issuer-def">
          <name>ABNF Definition of Fulcio-Issuer Policy</name>
          <artwork type="abnf" align="left"><![CDATA[
predicate-name   = "fulcio-issuer"
predicate-value  = fulcio-issuer
fulcio-issuer    = 1*idchar
]]></artwork>
        </figure>
        <t><tt>fulcio-issuer</tt> is <tt>chain[0].extensions.fulcio_issuer</tt> without leading <tt>https://</tt>, percent-encoded.</t>
        <t>Example:</t>
        <t><tt>did:x509:0:sha256:WE4P5dd8DnLHSkyHaIjhp4udlkF9LqoKwCvu9gl38jk::fulcio-issuer:accounts.google.com::san:email:bob%40example.com</tt></t>
        <t>Example 2:</t>
        <t><tt>did:x509:0:sha256:WE4P5dd8DnLHSkyHaIjhp4udlkF9LqoKwCvu9gl38jk::fulcio-issuer:issuer.example.com::san:uri:https%3A%2F%2Fexample.com%2Focto-org%2Focto-automation%2Fworkflows%2Foidc.yml%40refs%2Fheads%2Fmain</tt></t>
        <t>Rego policy:</t>
        <figure anchor="fig-validate-fulcio-issuer">
          <name>Rego Function Validating Fulcio-Issuer Policy</name>
          <artwork type="rego" align="left"><![CDATA[
validate_predicate(name, value) := true if {
    name == "fulcio-issuer"
    suffix := urlquery.decode(value)
    concat("", ["https://", suffix]) == input.chain[0].extensions.fulcio_issuer
}
]]></artwork>
        </figure>
      </section>
      <section anchor="did-resolution-options">
        <name>DID resolution options</name>
        <t>This DID method introduces a new DID resolution option called <tt>x509chain</tt>:</t>
        <t>Name: <tt>x509chain</tt></t>
        <t>Value type: string</t>
        <t>The value is constructed as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Encode each certificate <tt>C</tt> that is part of the chain as the string <tt>b64url(DER(C))</tt>.</t>
          </li>
          <li>
            <t>Concatenate the resulting strings in order, separated by comma <tt>","</tt>.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="example-did-document">
      <name>Example DID Document</name>
      <t>This illustrates what a typical DID document (<xref target="DID-DOCUMENT"/>), describing the DID subject and the methods it can use to authenticate itself, can look like once resolved:</t>
      <figure anchor="fig-controller-placeholder">
        <name>JSON Controller Document Example</name>
        <artwork type="json" align="left"><![CDATA[
{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:x509:0:sha256:hH32p4SXlD8n_HLrk_mmNzIKArVh0KkbCeh6eAftfGE::subject:CN:Example",
  "verificationMethod": [
    {
      "id": "did:x509:0:sha256:hH32p4SXlD8n_HLrk_mmNzIKArVh0KkbCeh6eAftfGE::subject:CN:Example#key-1",
      "type": "JsonWebKey2020",
      "controller": "did:x509:0:sha256:hH32p4SXlD8n_HLrk_mmNzIKArVh0KkbCeh6eAftfGE::subject:CN:Example",
      "publicKeyJwk": {
        "kty": "RSA",
        "n": "s9HduD2rvmO-SGksB4HR-qvSK379St8NnUZBH8xBiQvt2zONOLUHWQibeBW4NLUfHfzMaOM77RhNlqPNiDRKhChlG1aHqEHSAaQBGrmr0ULGIzq-1YvqQufMGYBFfq0sc10UdvWqT0RjwkPQTu4bjg37zSYF9OcGxS9uGnPMdWRM0ThOsYUcDmMoCaJRebsLUBpMmYXkcUYXJrcSGAaUNd0wjhwIpEogOD-AbWW_7TPZOl-JciMj40a78EEXIc2p06lWHfe5hegQ7uGIlSAPG6zDzjhjNkzE63_-GoqJU-6QLazbL5_y27ZDUAEYJokbb305A-dOp930CjTar3BvWQ",
        "e": "AQAB"
      }
    }
  ],
  "assertionMethod": [
    "did:x509:0:sha256:hH32p4SXlD8n_HLrk_mmNzIKArVh0KkbCeh6eAftfGE::subject:CN:Example#key-1"
  ],
  "keyAgreement": [
    "did:x509:0:sha256:hH32p4SXlD8n_HLrk_mmNzIKArVh0KkbCeh6eAftfGE::subject:CN:Example#key-1"
  ]
}
]]></artwork>
      </figure>
    </section>
    <section anchor="cddl-for-a-json-data-model-for-x509-certificate-chains">
      <name>CDDL for a JSON Data Model for X.509 Certificate Chains</name>
      <figure anchor="fig-cddl-placeholder">
        <name>CDDL Definition of did:x509 JSON Data Model</name>
        <artwork type="cddl" align="left"><![CDATA[
CertificateChain = [2*Certificate]  ; leaf is first

Certificate = {
    fingerprint: {
        ; base64url-encoded hashes of the DER-encoded certificate
        sha256: base64url,     ; FIPS 180-4, SHA-256
        sha384: base64url,     ; FIPS 180-4, SHA-384
        sha512: base64url      ; FIPS 180-4, SHA-512
    },
    issuer: Name,              ; RFC 5280, Section 4.1.2.4
    subject: Name,             ; RFC 5280, Section 4.1.2.6
    extensions: {
        ? eku: [+OID],         ; RFC 5280, Section 4.2.1.12
        ? san: [+SAN],         ; RFC 5280, Section 4.2.1.6
        ? fulcio_issuer: tstr  ; http://oid-info.com/get/1.3.6.1.4.1.57264.1.1
    }
}

; X.509 Name as an object of attributes
; Repeated attribute types are not supported
; Common attribute types have human-readable labels (see below)
; Other attribute types use dotted OIDs
; Values are converted to UTF-8
Name = {
    ; See RFC 4514, Section 3, for meaning of common attribute types
    ? CN: tstr,
    ? L: tstr,
    ? ST: tstr,
    ? O: tstr,
    ? OU: tstr,
    ? C: tstr,
    ? STREET: tstr,
    * OID => tstr
}

; base64url-encoded data, see RFC 4648, Section 5
base64url = tstr

; ASN.1 Object Identifier
; Dotted string, for example "1.2.3"
OID = tstr

; X.509 Subject Alternative Name
; Strings are converted to UTF-8
SAN = rfc822Name / DNSName / URI / DirectoryName
rfc822Name = ["email", tstr] ; Example: ["email", "user@example.com"]
DNSName = ["dns", tstr]      ; Example: ["dns", "example.com"]
URI = ["uri", tstr]          ; Example: ["uri", "https://example.com"]
DirectoryName = ["dn", Name] ; Example: ["dn", {CN: "Example"}]
]]></artwork>
      </figure>
    </section>
    <section anchor="privconsec">
      <name>Privacy Considerations</name>
      <t>Some considerations</t>
    </section>
    <section anchor="secconsec">
      <name>Security Consideration</name>
      <section anchor="identifier-ambiguity">
        <name>Identifier Ambiguity</name>
        <t>This DID method maps characteristics of X.509 certificate chains to identifiers. It allows a single identifier to map to multiple certificate chains, giving the identifier stability across the expiry of individual chains. However, if the policies used in the identifier are chosen too loosely, the identifier may match too wide a set of certificate chains. This may have security implications as it may authorize an identity for actions it was not meant to be authorized for.</t>
        <t>To mitigate this issue, the certificate authority should publish their expected usage of certificate fields and indicate which ones constitute a unique identity, versus any additional fields that may be of an informational nature. This will help users create an appropriate did:x509 as well as consumers of signed content to decide whether it is appropriate to trust a given did:x509.</t>
      </section>
      <section anchor="x509-trust-stores">
        <name>X.509 Trust Stores</name>
        <t>Typically, a verifier trusts an X.509 certificate by applying chain validation defined in <xref section="6" sectionFormat="of" target="RFC5280"/> using a set of certificate authority (CA) certificates as trust store, together with additional application-specific policies.</t>
        <t>This DID method does not require an X.509 trust anchor store but rather relies on verifiers either trusting an individual DID directly or using third-party endorsements for a given DID, like <xref target="VC"/>, to establish trust.</t>
        <t>By layering this DID method on top of X.509, verifiers are free to use traditional chain validation (for example, verifiers unaware of DID), or rely on DID as an ecosystem to establish trust.</t>
      </section>
      <section anchor="use-of-identifier-contents">
        <name>Use of Identifier Contents</name>
        <t>While it is acceptable to use a did:x509 identifier as an opaque handle when it has been endorsed through an external trust mechanism, such as a verifiable credential or a trusted registry, implementers <bcp14>MUST NOT</bcp14> parse or interpret individual components of the identifier string for authorization decisions unless the identifier has been resolved against a verified certificate chain.</t>
        <t>Specifically, extracting and relying upon subject names, organizational information, or other embedded values directly from the identifier string, without performing full resolution and chain validation, is insecure. An attacker could craft a syntactically valid did:x509 identifier containing arbitrary values that do not correspond to any legitimate certificate chain. Only after successful resolution, which includes verification of the CA fingerprint against the provided chain and validation of all policy predicates, can the identifier be considered authentic. Systems that bypass this resolution process and instead parse identifier components directly are vulnerable to impersonation and privilege escalation attacks.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</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> Some considerations</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="STD90">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed:.plus,.cat, and.det for the construction of constants;.abnf/.abnfb for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and.feature for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
        <reference anchor="STD94">
          <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>
        <reference anchor="BCP26">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="DIDV1" target="https://www.w3.org/TR/did-1.0/">
          <front>
            <title>W3C DID v1.0 specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="VC" target="https://www.w3.org/TR/vc-data-model/">
          <front>
            <title>W3C Verifiable Credentials</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-scitt-architecture">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Antoine Delignat-Lavaud" initials="A." surname="Delignat-Lavaud">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Cedric Fournet" initials="C." surname="Fournet">
              <organization>Microsoft Research</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>ARM</organization>
            </author>
            <author fullname="Steve Lasker" initials="S." surname="Lasker">
         </author>
            <date day="10" month="October" year="2025"/>
            <abstract>
              <t>   Traceability in supply chains is a growing security concern.  While
   verifiable data structures have addressed specific issues, such as
   equivocation over digital certificates, they lack a universal
   architecture for all supply chains.  This document defines such an
   architecture for single-issuer signed statement transparency.  It
   ensures extensibility, interoperability between different
   transparency services, and compliance with various auditing
   procedures and regulatory requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-22"/>
        </reference>
        <reference anchor="REGO" target="https://www.openpolicyagent.org/docs/latest/policy-language/">
          <front>
            <title>Rego</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC8792">
          <front>
            <title>Handling Long Lines in Content of Internet-Drafts and RFCs</title>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="E. Auerswald" initials="E." surname="Auerswald"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document defines two strategies for handling long lines in width-bounded text content. One strategy, called the "single backslash" strategy, is based on the historical use of a single backslash ('\') character to indicate where line-folding has occurred, with the continuation occurring with the first character that is not a space character (' ') on the next line. The second strategy, called the "double backslash" strategy, extends the first strategy by adding a second backslash character to identify where the continuation begins and is thereby able to handle cases not supported by the first strategy. Both strategies use a self-describing header enabling automated reconstitution of the original content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8792"/>
          <seriesInfo name="DOI" value="10.17487/RFC8792"/>
        </reference>
        <reference anchor="RFC9360">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Header Parameters for Carrying and Referencing X.509 Certificates</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="February" year="2023"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) message structure uses references to keys in general. For some algorithms, additional properties are defined that carry parameters relating to keys as needed. The COSE Key structure is used for transporting keys outside of COSE messages. This document extends the way that keys can be identified and transported by providing attributes that refer to or contain X.509 certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9360"/>
          <seriesInfo name="DOI" value="10.17487/RFC9360"/>
        </reference>
        <reference anchor="RFC9597">
          <front>
            <title>CBOR Web Token (CWT) Claims in COSE Headers</title>
            <author fullname="T. Looker" initials="T." surname="Looker"/>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document describes how to include CBOR Web Token (CWT) claims in the header parameters of any CBOR Object Signing and Encryption (COSE) structure. This functionality helps to facilitate applications that wish to make use of CWT claims in encrypted COSE structures and/or COSE structures featuring detached signatures, while having some of those claims be available before decryption and/or without inspecting the detached payload. Another use case is using CWT claims with payloads that are not CWT Claims Sets, including payloads that are not CBOR at all.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9597"/>
          <seriesInfo name="DOI" value="10.17487/RFC9597"/>
        </reference>
        <reference anchor="DID-DOCUMENT" target="https://www.w3.org/TR/did-1.0/#dfn-did-documents">
          <front>
            <title>DID Document Definition</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 472?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank
<em>list</em>
for their reviews and suggestions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
9sAC4K8C/R/3I8TTNUkAAA==

-->

</rfc>
