<?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-02" 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-02"/>
    <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="DID"/>) 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 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>Rego is a descriptive query language used to define policies in a precise and unambiguous way.
This document uses Rego (<xref target="REGO"/>) to define the parsing and validation logic for did:x509 identifiers.
The Rego code snippets provided in this document can be evaluated using any Rego v1 runtime, but there is no expectation that implementations use the Rego language.</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>
    <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="DID"/> 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[=============== NOTE: '\' line wrapping per RFC 8792 ================

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 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.</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, predicates] 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], ":")
    predicates_raw := array.slice(parts, 1, count(parts))
    predicates := [y |
        some i
        s := predicates_raw[i]
        j := indexof(s, ":")
        y := [substring(s, 0, j), substring(s, j+1, -1)]
    ]
}

valid if {
    [ca_fingerprint_alg,
     ca_fingerprint,
     predicates] := parse_did(input.did)
    ca := [c | some i; i != 0; c := input.chain[i]]
    ca[_].fingerprint[ca_fingerprint_alg] == ca_fingerprint
    valid_predicates := [i |
        some i
        [name, value] := predicates[i]
        validate_predicate(name, value)
    ]
    count(valid_predicates) == count(predicates)
}
]]></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. Key repetitions are not allowed. Values must be percent-encoded.</t>
        <t>Example:</t>
        <t><tt>did:x509:0:sha256:WE..jk::subject:C:US:ST:Texas:L:Austin:O:Example</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:WE..jk::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:WE..jk::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:WE..jk::fulcio-issuer:accounts.google.com::san:email:bob%40example.com</tt></t>
        <t>Example 2:</t>
        <t><tt>did:x509:0:sha256:WE..jk::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[=============== NOTE: '\' line wrapping per RFC 8792 ================

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:hH..GE::subject:CN:Example",
  "verificationMethod": [
    {
      "id": "did:x509:0:sha256:hH..GE::subject:CN:Example#key-1",
      "type": "JsonWebKey2020",
      "controller": "did:x509:0:sha256:hH..GE::subject:CN:Example",
      "publicKeyJwk": {
        "kty": "RSA",
        "n": "s9..WQ",
        "e": "AQAB"
      }
    }
  ],
  "assertionMethod": [
    "did:x509:0:sha256:hH..GE::subject:CN:Example#key-1"
  ],
  "keyAgreement": [
    "did:x509:0:sha256:hH..GE::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="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="DID" 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 478?>

<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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
AAA=

-->

</rfc>
