<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scitt-scrapi-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SCRAPI">Supply Chain Integrity, Transparency, and Trust (SCITT) Reference APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-scrapi-11"/>
    <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="J." surname="Geater" fullname="Jon Geater">
      <organization>Bowball Technologies Ltd</organization>
      <address>
        <postal>
          <country>United Kingdom</country>
        </postal>
        <email>jonathan@bowball-tech.com</email>
      </address>
    </author>
    <author initials="A." surname="Delignat-Lavaud" fullname="Antoine Delignat-Lavaud">
      <organization>Microsoft Research</organization>
      <address>
        <postal>
          <street>21 Station Road</street>
          <city>Cambridge</city>
          <code>CB1 2FB</code>
          <country>UK</country>
        </postal>
        <email>antdl@microsoft.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="26"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 132?>

<t>This document specifies a REST API with the HTTP resources, request and response messages, and error handling needed for an interoperable implementation of a SCITT Transparency Service, as defined by the Supply Chain Integrity, Transparency, and Trust (SCITT) Architecture.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-scitt-scrapi/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        SCITT Working Group mailing list (<eref target="mailto:scitt@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/scitt/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/scitt/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-scitt/draft-ietf-scitt-scrapi"/>.</t>
    </note>
  </front>
  <middle>
    <?line 136?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>The Supply Chain Integrity, Transparency, and Trust (SCITT) Architecture <xref target="I-D.draft-ietf-scitt-architecture"/> defines the core objects, identifiers and workflows necessary to interact with a SCITT Transparency Service:</t>
      <ul spacing="normal">
        <li>
          <t>Signed Statements</t>
        </li>
        <li>
          <t>Receipts</t>
        </li>
        <li>
          <t>Transparent Statements</t>
        </li>
        <li>
          <t>Registration Policies</t>
        </li>
      </ul>
      <t>SCITT Reference APIs (SCRAPI) defines HTTP resources for a Transparency Service using COSE (<xref target="RFC9052"/>).</t>
      <section anchor="sec-scope">
        <name>Scope and Relation to the SCITT Architecture</name>
        <t>The SCITT Architecture <xref target="I-D.draft-ietf-scitt-architecture"/> specifies the conceptual roles, message structures, and workflows of a Transparency Service, but does not define a concrete protocol by which clients interact with that service.
This document specifies one such concrete protocol: an HTTP-based REST API that realizes those interactions in an interoperable way.
References in this specification to "normative requirements of the SCITT Architecture" are to the requirements expressed using BCP 14 keywords <xref target="RFC2119"/> <xref target="RFC8174"/> in <xref target="I-D.draft-ietf-scitt-architecture"/> that pertain to the externally observable behavior of a Transparency Service, such as the registration of Signed Statements, the issuance and validation of Receipts, and the publication of the keys used to verify Receipts.</t>
        <t>In particular, this document defines HTTP resources that satisfy the requirements in the following sections of <xref target="I-D.draft-ietf-scitt-architecture"/>:</t>
        <ul spacing="normal">
          <li>
            <t>Registration of Signed Statements (Section 6.3 of <xref target="I-D.draft-ietf-scitt-architecture"/>), realized by the Signed Statement registration resources defined in <xref target="sec-register-signed-statement"/> and <xref target="sec-resolve-receipt"/>.</t>
          </li>
          <li>
            <t>Issuance of Receipts and construction of Transparent Statements (Section 7 of <xref target="I-D.draft-ietf-scitt-architecture"/>), realized by the Receipt resolution resource defined in <xref target="sec-resolve-receipt"/>.</t>
          </li>
          <li>
            <t>Discovery of the Transparency Service verification keys used by Verifiers to validate Receipts (Section 5.1.2 and Section 9.4 of <xref target="I-D.draft-ietf-scitt-architecture"/>), realized by the resource defined in <xref target="sec-transparency-service-keys"/>.</t>
          </li>
        </ul>
        <t>The mandatory-to-implement resources listed above are sufficient for an interoperable Transparency Service.</t>
        <t>The following aspects of <xref target="I-D.draft-ietf-scitt-architecture"/> are intentionally out of scope for this document and are not covered by this API:</t>
        <ul spacing="normal">
          <li>
            <t>The internal structure and operation of the Transparency Service's Verifiable Data Structure (Section 5.1.3 of <xref target="I-D.draft-ietf-scitt-architecture"/>).</t>
          </li>
          <li>
            <t>The contents and evaluation of Registration Policies (Section 5.1.1 of <xref target="I-D.draft-ietf-scitt-architecture"/>); this document only defines how the outcome of a policy decision is communicated to clients.</t>
          </li>
          <li>
            <t>The format and semantics of Signed Statements, Receipts, and Transparent Statements themselves, which are defined in <xref target="I-D.draft-ietf-scitt-architecture"/> and the COSE specifications referenced therein.</t>
          </li>
          <li>
            <t>Transports other than HTTP, and bindings of these resources to other application protocols.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-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 specification uses the terms "Signed Statement", "Receipt", "Transparent Statement", "Artifact Repositories", "Transparency Service" and "Registration Policy" as defined in <xref target="I-D.draft-ietf-scitt-architecture"/>.</t>
        <t>This specification uses "payload" as defined in <xref target="RFC9052"/>.</t>
      </section>
    </section>
    <section anchor="sec-resources">
      <name>Resources</name>
      <t>All messages are sent as HTTP GET or POST requests.</t>
      <t>If the Transparency Service cannot process a client's request, it <bcp14>MUST</bcp14> return an HTTP 4xx or 5xx status code, and the body <bcp14>MUST</bcp14> be a Concise Problem Details object (application/concise-problem-details+cbor) <xref target="RFC9290"/>.</t>
      <t>The Concise Problem Details object <bcp14>MUST</bcp14> contain the following fields:</t>
      <ul spacing="normal">
        <li>
          <t>title: A human-readable string identifying the error that prevented the Transparency Service from processing the request, ideally short and suitable for inclusion in log messages.</t>
        </li>
        <li>
          <t>detail: A human-readable string describing the error in more depth, ideally with sufficient detail enabling the error to be rectified.</t>
        </li>
      </ul>
      <t>As specified by <xref section="2" sectionFormat="of" target="RFC9290"/>, the <tt>title</tt> and <tt>detail</tt> values use <tt>oltext</tt>, which is either an unadorned CBOR text string (<tt>text</tt>) or a language-tagged text string (<tt>tag38</tt>).
When a language needs to be identified explicitly, <tt>tag38</tt> carries a BCP 47 language tag as described in <xref section="A" sectionFormat="of" target="RFC9290"/>.
If no explicit or implicit language context is available, unadorned text is interpreted with the language tag <tt>en</tt>.</t>
      <t>SCRAPI is not a CoAP API, but Constrained Problem Details objects <xref target="RFC9290"/> provide a useful encoding for problem details and avoid the need to mix CBOR and JSON in resource or client implementations.</t>
      <t>Examples of errors may include:</t>
      <sourcecode type="cbor-diag"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

{
  / title /         -1: \
            "Bad Signature Algorithm",
  / detail /        -2: \
            "Signing algorithm 'WalnutDSA' not supported"
}
]]></sourcecode>
      <t>Most error types are specific to the type of request and are defined in the respective subsections below.
The one exception is the "malformed" error type, which indicates that the Transparency Service could not parse the client's request because it did not comply with this document:</t>
      <sourcecode type="cbor-diag"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

{
  / title /         -1: \
            "Malformed request",
  / detail /        -2: \
            "The request could not be parsed"
}
]]></sourcecode>
      <t>Per the guidance in <xref section="4.6" sectionFormat="of" target="RFC9205"/>, the specific HTTP status codes shown in the examples throughout this document are illustrative.
Status codes can be generated by generic HTTP components (caches, intermediaries, captive portals, gateways, etc.) that are not part of the Transparency Service, and the set of registered HTTP status codes can be extended over time.
Clients <bcp14>MUST</bcp14> therefore be prepared to handle any HTTP status code by falling back to the generic class semantics (1xx, 2xx, 3xx, 4xx, or 5xx) of the response when a more specific code is not recognized, and <bcp14>MUST</bcp14> rely on the Concise Problem Details <xref target="RFC9290"/> object (when present) rather than the status code alone to determine the application-level cause of an error.</t>
      <t>Clients handle 5xx responses as defined in <xref section="15.6" sectionFormat="of" target="RFC9110"/> and <xref section="9.2.2" sectionFormat="of" target="RFC9110"/>.</t>
      <t>Note that in the case of any error response, the Transparency Service <bcp14>MAY</bcp14> include a <tt>Retry-After</tt> header field per <xref target="RFC9110"/> in order to request a minimum time for the client to wait before retrying the request.
In the absence of this header field, this document does not specify a minimum.</t>
      <t>The following subsections specify the HTTP resources required for conformance, as listed in <xref target="sec-introduction"/>.</t>
      <section anchor="sec-transparency-service-keys">
        <name>Transparency Service Keys</name>
        <t>This resource, located at <tt>/.well-known/scitt-keys</tt> (registered in accordance with <xref target="RFC8615"/>; see <xref target="sec-well-known-uri-for-key-discovery"/>), is used to discover the public keys that can be used by relying parties to verify Receipts issued by the Transparency Service.</t>
        <t>Clients interact with this resource by issuing an HTTP GET request, and <bcp14>MUST</bcp14> include <tt>Accept: application/cbor</tt> in the request.
The Transparency Service <bcp14>MUST</bcp14> respond with a COSE Key Set, as defined in <xref section="7" sectionFormat="of" target="RFC9052"/>, serialized as <tt>application/cbor</tt>.</t>
        <t>Request:</t>
        <sourcecode type="http-message"><![CDATA[
GET /.well-known/scitt-keys HTTP/1.1
Host: transparency.example
Accept: application/cbor
]]></sourcecode>
        <t>Response:</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/cbor

Body (in CBOR diagnostic notation)

[
  {
    -1:1,
    -2:h'65eda5a1...9c08551d',
    -3:h'1e52ed75...0084d19c',
    1:2,
    2:'kid1'
  },
  {
    -1:1,
    -2:h'bac5b11c...d6a09eff',
    -3:h'20138bf8...bbfc117e',
    1:2,
    2:'kid2'
  }
]
]]></sourcecode>
        <t>The Transparency Service <bcp14>MAY</bcp14> stop returning keys it no longer uses to issue Receipts from that resource, following a reasonable delay.
A delay is considered reasonable if it is sufficient for relying parties to have obtained the key needed to verify any previously issued Receipt.
Consistent with key management best practices described in <xref target="NIST.SP.800-57pt1r5"/> (Section 5.3.4, which distinguishes the originator-usage period during which a private key is used to apply cryptographic protection from the recipient-usage period during which the corresponding public key is used to verify that protection), retired public keys used for signing <bcp14>SHOULD</bcp14> remain available for verification for as long as any Receipts signed with them may still need to be verified, unless an alternative key archival or distribution mechanism preserves verifiability for relying parties.
Retaining retired keys has operational implications: the Transparency Service is responsible for storing those keys (and their associated metadata, such as <tt>kid</tt> values and validity periods) securely and continuously, and for serving them via the Individual Transparency Service Key resource (see <xref target="sec-individual-transparency-service-key"/>) for the entire retention period.
If retired public keys are not retained, Receipts issued under those keys can no longer be verified by relying parties using only the Transparency Service's published key material, which may break the verifiability of previously issued Receipts and disrupt downstream consumers that depend on long-term verification.</t>
        <t>A Transparency Service <bcp14>MAY</bcp14> include the <tt>Expires</tt> header field, as defined in <xref section="5.3" sectionFormat="of" target="RFC9111"/>, in responses returned by this resource and by the Individual Transparency Service Key resource (<xref target="sec-individual-transparency-service-key"/>) to indicate how long clients may cache the returned keys.
A Transparency Service <bcp14>MAY</bcp14> use the <tt>Cache-Control</tt> header field with the <tt>max-age</tt> directive, as defined in <xref section="5.2.2.1" sectionFormat="of" target="RFC9111"/>, for the same purpose; when both are present, <tt>Cache-Control: max-age</tt> takes precedence per <xref section="4.2.1" sectionFormat="of" target="RFC9111"/>.
The cache lifetime indicated by these headers is a hint about server availability and does not constrain client retention. A relying party that holds a Receipt <bcp14>MUST</bcp14> retain the verification key for as long as it may need to verify that Receipt, independent of any cache lifetime indicated by the Transparency Service.</t>
        <t>The presence of these headers does not constitute a guarantee of key availability.
A Transparency Service may still need to retire a key before any indicated cache lifetime has elapsed, for example in response to suspected compromise or cryptographic algorithm deprecation.
In such cases, a relying party that holds a Receipt signed with a retired key can request a fresh Receipt for the same Signed Statement at the same position in the Verifiable Data Structure, signed with a current key.</t>
      </section>
      <section anchor="sec-individual-transparency-service-key">
        <name>Individual Transparency Service Key</name>
        <t>This sub-resource, located at <tt>/.well-known/scitt-keys/{kid_value}</tt>, is used to resolve a single public key, from a <tt>kid</tt> value contained in a Receipt previously issued by the Transparency Service.</t>
        <t>Clients interact with this sub-resource by issuing an HTTP GET request, and <bcp14>MUST</bcp14> include <tt>Accept: application/cbor</tt> in the request.
The Transparency Service <bcp14>MUST</bcp14> respond with a single COSE Key, as defined in <xref section="7" sectionFormat="of" target="RFC9052"/>, serialized as <tt>application/cbor</tt>, or a 404 status if no matching key is found.</t>
        <t>Request:</t>
        <sourcecode type="http-message"><![CDATA[
GET /.well-known/scitt-keys/{kid_value} HTTP/1.1
Host: transparency.example
Accept: application/cbor
]]></sourcecode>
        <t>Response:</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/cbor

Body (in CBOR diagnostic notation)

{
  -1:1,
  -2:h'bac5b11c...d6a09eff',
  -3:h'20138bf8...bbfc117e',
  1:2,
  2:'kid_value'
}
]]></sourcecode>
        <t>The following expected error is defined for the condition described below.
When this condition is encountered, an implementation <bcp14>MUST</bcp14> return an error response that is a valid <xref target="RFC9290"/> object.
Implementations <bcp14>SHOULD</bcp14> use the error defined below, unless another valid <xref target="RFC9290"/> error better describes the condition:</t>
        <sourcecode type="http-message"><![CDATA[
HTTP/1.1 404 Not Found
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: "No such key",
  / detail /        -2: "No key could be found for this kid value"
}
]]></sourcecode>
        <t>To avoid requiring clients to infer an encoding convention from any particular <tt>kid</tt> value, the base64url form is always valid.
For every <tt>kid</tt> value used by the service, this resource <bcp14>MUST</bcp14> accept the base64url encoding of the <tt>kid</tt> value, without padding, as <tt>{kid_value}</tt>.
If a <tt>kid</tt> value is safe for use as a URI path segment without percent-encoding, this resource <bcp14>MUST</bcp14> also accept the <tt>kid</tt> value itself as <tt>{kid_value}</tt>.
Both forms, when present, identify the same key.
A Transparency Service <bcp14>MUST NOT</bcp14> use <tt>kid</tt> values whose raw and base64url forms would make the same URL identify different keys.</t>
        <t><xref section="2" sectionFormat="of" target="RFC7515"/> specifies Base64Url encoding as follows:</t>
        <t>"Base64 encoding using the URL- and filename-safe character set
defined in Section 5 of RFC 4648 <xref target="RFC4648"/>, with all trailing '='
characters omitted and without the inclusion of any line breaks,
whitespace, or other additional characters.  Note that the base64url
encoding of the empty octet sequence is the empty string.
(See Appendix C of <xref target="RFC7515"/> for notes on implementing base64url
encoding without padding.)"</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> to use COSE Key Thumbprint, as defined in <xref target="RFC9679"/> as the mechanism to assign a <tt>kid</tt> to Transparency Service keys.
<xref target="RFC9679"/> provides a well-specified, canonical method to deterministically derive a unique <tt>kid</tt> value directly from the COSE Key itself.
Using this mechanism offers several benefits to implementers:</t>
        <ul spacing="normal">
          <li>
            <t>it ensures that the <tt>kid</tt> is uniquely and reproducibly bound to the key material,</t>
          </li>
          <li>
            <t>it removes the need for an out-of-band identifier assignment process,</t>
          </li>
          <li>
            <t>it enables independent parties to compute and verify the same <tt>kid</tt> for a given key, which simplifies key discovery and reduces the risk of <tt>kid</tt> collisions across Transparency Services.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-register-signed-statement">
        <name>Register Signed Statement</name>
        <t>This resource instructs a Transparency Service to register a Signed Statement on its log.
Since log implementations may take many seconds or longer to reach finality, this API provides an asynchronous mode that returns a locator for the eventual Receipt resource, which the client can poll to retrieve the Receipt once registration completes.</t>
        <t>The following is a non-normative example of an HTTP request to register a Signed Statement:</t>
        <t>Request:</t>
        <sourcecode type="http"><![CDATA[
POST /entries HTTP/1.1
Host: transparency.example
Accept: application/cbor
Accept: application/cose
Content-Type: application/cose

Body (in CBOR diagnostic notation)

18([ / COSE Sign1           /
  <<{
    / signature alg         / 1:  -35, # ES384
    / key identifier        / 4:   h'75726e3a...32636573',
    / cose sign1 type       / 16:  "application/example+cose",
    / payload-hash-alg      / 258: -16, # sha-256
    / preimage-content-type / 259: "application/spdx+json",
    / payload-location      / 260: "https://.../manifest.json",
    / CWT Claims            / 15: {
      / Issuer  / 1: "vendor.example",
      / Subject / 2: "vendor.product.example",
    }
  }>>,                          / Protected Header   /
  {},                           / Unprotected Header /
  / Payload, sha-256 digest of file stored at payload-location /
  h'935b5a91...e18a588a',
  h'269cd68f4211dffc...0dcb29c' / Signature /
])
]]></sourcecode>
        <t>A Transparency Service depends on the verification of the Signed Statement in the Registration Policy.</t>
        <t>The Registration Policy for the Transparency Service <bcp14>MUST</bcp14> be applied before any additional processing.
The details of Registration Policies are out of scope for this document.</t>
        <t>Signed Statements <bcp14>MAY</bcp14> use detached payloads, as described in <xref target="I-D.draft-ietf-scitt-architecture"/>.
When a Signed Statement is submitted with a detached payload,
the Transparency Service still requires access to the payload content in order to verify the signature as part of applying the Registration Policy.
The mechanism by which the payload is made available to the Transparency Service is implementation-specific.</t>
        <t>Response:</t>
        <t>One of the following:</t>
        <section anchor="sec-status-201-registration-is-successful">
          <name>Status 201 - Registration is successful</name>
          <t>If the Transparency Service is able to produce a Receipt within a reasonable time, it <bcp14>MAY</bcp14> return it directly.</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 201 Created
Location: https://transparency.example/entries/67ed...befe
Content-Type: application/cose

Body (in CBOR diagnostic notation)

/ cose-sign1 / 18([
  / protected   / <<{
    / key / 4 : "mxA4KiOkQFZ-dkLebSo3mLOEPR7rN8XtxkJe45xuyJk",
    / algorithm / 1 : -7,  # ES256
    / vds       / 395 : 1, # RFC9162 SHA-256
    / claims / 15 : {
      / issuer  / 1 : "https://blue.notary.example",
      / subject / 2 : "https://green.software.example/cli@v1.2.3",
    },
  }>>,
  / unprotected / {
    / proofs / 396 : {
      / inclusion / -1 : [
        <<[
          / size / 9, / leaf / 8,
          / inclusion path /
          h'7558a95f...e02e35d6'
        ]>>
      ],
    },
  },
  / payload     / null,
  / signature   / h'02d227ed...ccd3774f'
])
]]></sourcecode>
          <t>The response contains the Receipt for the Signed Statement.
The response <bcp14>MUST</bcp14> contain a <tt>Location</tt> header field whose value is the URL of the Receipt resource (see <xref target="sec-resolve-receipt"/>).
Fresh Receipts may be requested through the resource identified in the <tt>Location</tt> header.</t>
          <t>Transparency Services that support both synchronous and asynchronous registration <bcp14>MUST</bcp14> return the same <tt>Location</tt> URL for the same registered Signed Statement regardless of which registration mode was used.</t>
        </section>
        <section anchor="sec-status-202-registration-is-running">
          <name>Status 202 - Registration is running</name>
          <t>In cases where the registration request is accepted but the Transparency Service is not able to produce a Receipt in a reasonable time, it returns a 202 Accepted response, as in this non-normative example:</t>
          <sourcecode type="http"><![CDATA[
HTTP/1.1 202 Accepted
Location: https://transparency.example/entries/67ed...befe
Content-Length: 0
Retry-After: <seconds>
]]></sourcecode>
          <t>The response <bcp14>MUST</bcp14> contain a <tt>Location</tt> header field whose value is the URL of the eventual Receipt resource (see <xref target="sec-resolve-receipt"/>).
The client polls this resource to retrieve the Receipt once registration completes.</t>
          <t>The Transparency Service <bcp14>MAY</bcp14> include a <tt>Retry-After</tt> header in the HTTP response to help with polling.</t>
        </section>
        <section anchor="sec-status-400-invalid-client-request">
          <name>Status 400 - Invalid Client Request</name>
          <t>The following expected errors are defined for the conditions described below.
When such a condition is encountered, an implementation <bcp14>MUST</bcp14> return an error response that is a valid <xref target="RFC9290"/> object.
Implementations <bcp14>SHOULD</bcp14> use the corresponding error defined below, unless another valid <xref target="RFC9290"/> error better describes the condition.</t>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 400 Bad Request
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Bad Signature Algorithm",
  / detail /        -2: \
          "Signed Statement contained a non-supported algorithm"
}
]]></sourcecode>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 400 Bad Request
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: "\
          Confirmation Missing",
  / detail /        -2: \
          "Signed Statement did not contain proof of possession"
}
]]></sourcecode>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 400 Bad Request
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Payload Missing",
  / detail /        -2: \
          "Signed Statement payload must be present"
}
]]></sourcecode>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 400 Bad Request
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Rejected",
  / detail /        -2: \
          "Signed Statement not accepted by the current\
          Registration Policy"
}
]]></sourcecode>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 400 Bad Request
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: "Invalid locator",
  / detail /        -2: "Operation locator is not in a valid form"
}
]]></sourcecode>
        </section>
        <section anchor="sec-status-429-too-many-requests">
          <name>Status 429 - Too Many Requests</name>
          <t>If a client is polling for an in-progress registration too frequently then the Transparency Service <bcp14>MAY</bcp14>, in addition to implementing rate limiting, return a 429 response:</t>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 429 Too Many Requests
Content-Type: application/concise-problem-details+cbor
Retry-After: <seconds>

{
  / title /         -1: \
          "Too Many Requests",
  / detail /        -2: \
          "Only <number> requests per <period> are allowed."
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-resolve-receipt">
        <name>Resolve Receipt</name>
        <t>This resource resolves the Receipt for a given <tt>EntryID</tt>.
It is the resource identified by the <tt>Location</tt> header returned in the 202 Accepted response to an asynchronous registration request (see <xref target="sec-register-signed-statement"/>), and may also be used at any later time to obtain a fresh Receipt for a previously registered Signed Statement.</t>
        <t>A client polls this resource to obtain the Receipt.
The response is one of:</t>
        <ul spacing="normal">
          <li>
            <t>200, once registration is complete and the Receipt is available;</t>
          </li>
          <li>
            <t>204, while registration is still in progress; or</t>
          </li>
          <li>
            <t>404, if no Receipt exists for the <tt>EntryID</tt>, including when registration has failed.</t>
          </li>
        </ul>
        <t>Request:</t>
        <sourcecode type="http-message"><![CDATA[
GET /entries/67ed41f1de6a...cfc158694ed0befe HTTP/1.1
Host: transparency.example
Accept: application/cose
]]></sourcecode>
        <t>Response:</t>
        <t>One of the following:</t>
        <section anchor="sec-status-200-ok">
          <name>Status 200 - OK</name>
          <t>If the Receipt is found:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Location: https://transparency.example/entries/67ed...befe
Content-Type: application/cose

Body (in CBOR diagnostic notation)

/ cose-sign1 / 18([
  / protected   / <<{
    / key / 4 : "mxA4KiOkQFZ-dkLebSo3mLOEPR7rN8XtxkJe45xuyJk",
    / algorithm / 1 : -7,  # ES256
    / vds       / 395 : 1, # RFC9162 SHA-256
    / claims / 15 : {
      / issuer  / 1 : "https://blue.notary.example",
      / subject / 2 : "https://green.software.example/cli@v1.2.3",
    },
  }>>,
  / unprotected / {
    / proofs / 396 : {
      / inclusion / -1 : [
        <<[
          / size / 9, / leaf / 8,
          / inclusion path /
          h'7558a95f...e02e35d6'
        ]>>
      ],
    },
  },
  / payload     / null,
  / signature   / h'02d227ed...ccd3774f'
])
]]></sourcecode>
        </section>
        <section anchor="sec-status-204-registration-is-running">
          <name>Status 204 - Registration is running</name>
          <t>If the registration identified by the <tt>EntryID</tt> is still in progress, the Transparency Service returns a 204 No Content response, as in this non-normative example:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 204 No Content
Retry-After: <seconds>
Cache-Control: no-store
]]></sourcecode>
          <t>The Transparency Service <bcp14>SHOULD</bcp14> include a <tt>Retry-After</tt> header in the HTTP response to help with polling.
Because a 204 response is transient and the resource is expected to return a Receipt once registration completes, the Transparency Service <bcp14>SHOULD</bcp14> set <tt>Cache-Control: no-store</tt> to prevent caching of the in-progress response.</t>
        </section>
        <section anchor="sec-status-404-not-found">
          <name>Status 404 - Not Found</name>
          <t>If there is no Receipt found for the specified <tt>EntryID</tt> the Transparency Service <bcp14>MUST</bcp14> respond with a 4xx-class status code (typically 404 Not Found) and a Concise Problem Details <xref target="RFC9290"/> object as in the following example:</t>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 404 Not Found
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Not Found",
  / detail /        -2: \
          "Receipt with entry ID <id> not known \
          to this Transparency Service"
}
]]></sourcecode>
          <t>A 404 response is also returned when an asynchronous registration has failed and no Receipt will be produced.
In that case, the Transparency Service <bcp14>MAY</bcp14> enrich the Concise Problem Details object with application-specific detail explaining why registration did not complete, as in this non-normative example:</t>
          <sourcecode type="http-message"><![CDATA[
NOTE: '\' line wrapping per RFC 8792

HTTP/1.1 404 Not Found
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Registration Failed",
  / detail /        -2: \
          "Signed Statement with entry ID <id> could not \
          be persisted to the log"
}
]]></sourcecode>
          <t>As an example, a successful asynchronous registration followed by Receipt resolution follows this sequence:</t>
          <artwork><![CDATA[
Initial exchange:

Client --- POST /entries (Signed Statement) --> TS
Client <-- 202 Location: .../entries/123     --- TS

May happen zero or more times:

Client --- GET .../entries/123              --> TS
Client <-- 204 Retry-After: <seconds>       --- TS

Finally:

Client --- GET .../entries/123              --> TS
Client <-- 200 (Receipt)                    --- TS
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>The privacy considerations section of <xref target="I-D.draft-ietf-scitt-architecture"/> applies to this document.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-general-scope">
        <name>General Scope</name>
        <t>This document describes the interoperable API for client calls to, and implementations of, a Transparency Service as specified in <xref target="I-D.draft-ietf-scitt-architecture"/>.
As such the security considerations in this section are concerned only with security considerations that are relevant at that implementation layer.
All questions of security of the related COSE formats, algorithm choices, cryptographic envelopes, verifiable data structures and the like are handled elsewhere and out of scope for this document.</t>
      </section>
      <section anchor="sec-applicable-environment">
        <name>Applicable Environment</name>
        <t>SCITT is concerned with issues of cross-boundary supply-chain-wide data integrity and as such must assume a very wide range of deployment environments.
Thus, no assumptions can be made about the security of the computing environment in which any client implementation of this specification runs.</t>
      </section>
      <section anchor="sec-authentication">
        <name>Authentication</name>
        <t>Authentication is out of scope for this document.
Implementations <bcp14>MAY</bcp14> authenticate clients, for example for the purposes of authorization or preventing denial-of-service attacks.
If Authentication is not implemented, rate limiting or other denial-of-service mitigations <bcp14>MUST</bcp14> be implemented.</t>
      </section>
      <section anchor="sec-threat-model">
        <name>Threat Model</name>
        <section anchor="sec-in-scope">
          <name>In Scope</name>
          <t>The most serious threats to implementations on Transparency Services are ones that would cause the failure of their main promises, to wit:</t>
          <ul spacing="normal">
            <li>
              <t>Threats to strong identification, for example representing the Statements from one issuer as those of another</t>
            </li>
            <li>
              <t>Threats to payload integrity, for example changing the contents of a Signed Statement before making it transparent</t>
            </li>
            <li>
              <t>Threats to non-equivocation, for example attacks that would enable the presentation or verification of divergent proofs for the same Statement payload</t>
            </li>
          </ul>
          <section anchor="sec-denial-of-service-attacks">
            <name>Denial-of-Service Attacks</name>
            <t>While denial-of-service attacks are very hard to defend against completely, and Transparency Services are unlikely to be in the critical path of any safety-liable operation, any attack which could cause the <em>silent</em> failure of Signed Statement registration, for example, should be considered in scope.</t>
            <t>The impact of DoS attacks can be detected by a client checking that the Transparency Service has registered any submitted Signed Statement and returned a Receipt.
Since verification of Receipts does not require the involvement of the Transparency Service, a DoS attack cannot cause the silent loss of a registration.
However, this relies on clients actively checking for Receipts and does not prevent the disruption itself.</t>
            <t>Clients to Transparency Services that need to detect delayed or lost registrations <bcp14>MUST</bcp14> ensure that Receipts are available for their registered Statements, either on a periodic or needs-must basis, depending on the use case.</t>
            <t>Beyond this, implementers of Transparency Services <bcp14>MUST</bcp14> follow general good practice around defending against network attacks such as flooding, including defenses such as rate limiting.</t>
          </section>
          <section anchor="sec-eavesdropping">
            <name>Eavesdropping</name>
            <t>Since the purpose of this API is to ultimately put the message payloads on a Transparency Log there is limited risk to eavesdropping.
Nonetheless, transparency may mean 'within a limited community' rather than 'in full public', so implementers <bcp14>MUST</bcp14> add protections against man-in-the-middle and network eavesdropping, such as TLS.</t>
          </section>
          <section anchor="sec-message-modification-attacks">
            <name>Message Modification Attacks</name>
            <t>Modification attacks are mitigated by the use of the Issuer signature on the Signed Statement.</t>
          </section>
          <section anchor="sec-message-insertion-attacks">
            <name>Message Insertion Attacks</name>
            <t>Insertion attacks are mitigated by the use of the Issuer signature on the Signed Statement, therefore care must be taken in the protection of Issuer keys and credentials to avoid theft and impersonation.</t>
          </section>
        </section>
        <section anchor="sec-out-of-scope">
          <name>Out of Scope</name>
          <section anchor="sec-replay-attacks">
            <name>Replay Attacks</name>
            <t>Replay attacks are not particularly concerning for SCITT or SCRAPI:
Once a statement is made, it is intended to be immutable and non-repudiable, so making it twice should not lead to any particular issues.
There could be issues at the payload level (for instance, the statement "it is raining" may be true when first submitted but not when replayed), but being payload-agnostic implementations of SCITT services cannot be required to worry about that.</t>
            <t>If the semantic content of the payload are time-dependent and susceptible to replay attacks in this way then timestamps <bcp14>MUST</bcp14> be added to the protected header signed by the Issuer.
The <tt>iat</tt> claim in a <tt>CWT_Claims</tt> header parameter (<xref target="RFC9597"/>) <bcp14>MUST</bcp14> be used when the Issuer provides the timestamp themselves.
The COSE header parameters defined in <xref target="RFC9921"/> for including <xref target="RFC3161"/> timestamp tokens or a similar mechanic, for example an Epoch Marker <xref target="I-D.ietf-rats-epoch-markers"/> Claim in the 'CWT_Claims' header parameter, <bcp14>SHOULD</bcp14> be used, where a timestamp from a third party is required, unless another protected-header mechanism is specified by the applicable profile.
Other mechanisms for including timestamps in the protected header <bcp14>MAY</bcp14> also be used.</t>
          </section>
          <section anchor="sec-message-deletion-attacks">
            <name>Message Deletion Attacks</name>
            <t>Once registered with a Transparency Service, Registered Signed Statements cannot be deleted.
Thus, any message deletion attack must occur prior to registration else it is indistinguishable from a man-in-the-middle or denial-of-service attack on this interface.</t>
          </section>
          <section anchor="sec-use-of-unauthenticated-http-metadata">
            <name>Use of Unauthenticated HTTP Metadata</name>
            <t>Implementations that serve multiple application profiles <bcp14>MAY</bcp14> use unauthenticated HTTP-layer signals, such as request headers or distinct registration endpoints, to route incoming Signed Statements to
profile-specific processing.</t>
            <t>However, these signals are not signed, are not committed to the Verifiable Data Structure, and cannot be replayed by Auditors.</t>
            <t>Implementations <bcp14>MUST NOT</bcp14> use unauthenticated signals as authoritative inputs to the registration decision.</t>
            <t>Implementations that use such signals for early dispatch <bcp14>MUST</bcp14> ensure that any processing decisions that affect the outcome of registration are fully determined by authenticated inputs, or are otherwise captured in the Verifiable Data Structure, such that the registration process remains deterministic and replayable by Auditors.</t>
            <t>The authoritative identification of the application profile is carried within the protected header or payload of the Signed Statement, and <bcp14>MUST</bcp14> be verified after signature authentication.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="sec-operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="sec-client-retry-behavior">
        <name>Client Retry Behavior</name>
        <t>Aggressive client retry or polling behavior can significantly impact a Transparency Service, increasing load and, in extreme cases, amplifying transient failures into sustained outages.</t>
        <t>Clients that retry a request <bcp14>MUST</bcp14> honor any <tt>Retry-After</tt> header field (defined in <xref section="10.2.3" sectionFormat="of" target="RFC9110"/>) returned by the Transparency Service, treating it as a minimum interval before retrying.
In its absence, clients that retry a request <bcp14>MUST</bcp14> apply exponential backoff with jitter, cap the total number of retries, and avoid synchronizing retries across clients.</t>
      </section>
      <section anchor="sec-server-side-retry-configuration">
        <name>Server-Side Retry Configuration</name>
        <t>Operators <bcp14>SHOULD</bcp14> configure a minimum retry interval appropriate for the expected registration latency and service capacity, and <bcp14>SHOULD</bcp14> communicate it to clients via the <tt>Retry-After</tt> header on relevant responses (e.g., 202, 204, 429, 503), unless the service does not support client polling or retries for those responses.
The interval should account for worst-case registration time, sustainable request volume, and intermediary behavior.</t>
      </section>
      <section anchor="sec-rate-limiting">
        <name>Rate Limiting</name>
        <t>As noted in <xref target="sec-authentication"/> and <xref target="sec-denial-of-service-attacks"/>, rate limiting or other denial-of-service mitigations are required.
The specific per-client policy is implementation dependent and typically varies with whether and how clients are authenticated (e.g., per-identity for authenticated clients versus per source IP for unauthenticated clients), the cost of the operation, and the deployment environment.</t>
        <t>When a client exceeds the configured rate limit, the Transparency Service <bcp14>MUST</bcp14> return a 429 response (see <xref target="sec-status-429-too-many-requests"/>) including a <tt>Retry-After</tt> header field.</t>
      </section>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="sec-well-known-uri-for-key-discovery">
        <name>Well-Known URI for Key Discovery</name>
        <t>IANA is requested to register the <tt>/.well-known/scitt-keys</tt> URI in the "Well-Known URIs" registry defined in <xref target="RFC8615"/>.
The normative behavior of this resource and its <tt>/{kid_value}</tt> sub-resource is specified in <xref target="sec-transparency-service-keys"/> and <xref target="sec-individual-transparency-service-key"/>.</t>
        <section anchor="sec-registration-template">
          <name>Registration Template</name>
          <t>The following value is requested to be registered in the "Well-Known URIs" registry (using the template from <xref target="RFC8615"/>):</t>
          <ul spacing="normal">
            <li>
              <t>URI suffix: scitt-keys</t>
            </li>
            <li>
              <t>Change controller: IETF</t>
            </li>
            <li>
              <t>Specification document(s): RFCthis</t>
            </li>
            <li>
              <t>Status: Permanent</t>
            </li>
            <li>
              <t>Related information: <xref target="I-D.draft-ietf-scitt-architecture"/></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="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="I-D.draft-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="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9111">
          <front>
            <title>HTTP Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="RFC9205">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>Applications often use HTTP as a substrate to create HTTP-based APIs. This document specifies best practices for writing specifications that use HTTP to define new application protocols. It is written primarily to guide IETF efforts to define application protocols using HTTP for deployment on the Internet but might be applicable in other situations.</t>
              <t>This document obsoletes RFC 3205.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="56"/>
          <seriesInfo name="RFC" value="9205"/>
          <seriesInfo name="DOI" value="10.17487/RFC9205"/>
        </reference>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="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="RFC9921">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Header Parameter for Timestamp Tokens as Defined in RFC 3161</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="M. Riechert" initials="M." surname="Riechert"/>
            <date month="February" year="2026"/>
            <abstract>
              <t>This document defines two CBOR Object Signing and Encryption (COSE) header parameters for incorporating timestamping based on RFC 3161 into COSE message structures (COSE_Sign and COSE_Sign1). This enables the use of established timestamping infrastructure per RFC 3161 in COSE-based protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9921"/>
          <seriesInfo name="DOI" value="10.17487/RFC9921"/>
        </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="RFC3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
            <abstract>
              <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>
        <reference anchor="NIST.SP.800-57pt1r5" target="https://doi.org/10.6028/NIST.SP.800-57pt1r5">
          <front>
            <title>Recommendation for Key Management: Part 1 - General</title>
            <author initials="E." surname="Barker" fullname="Elaine Barker">
              <organization/>
            </author>
            <date year="2020" month="May"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-57 Part 1 Revision 5"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-rats-epoch-markers">
          <front>
            <title>Epoch Markers</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Ionuț Mihalcea" initials="I." surname="Mihalcea">
              <organization>Arm</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="18" month="May" year="2026"/>
            <abstract>
              <t>   This document defines Epoch Markers as a means to establish a notion
   of freshness among actors in a distributed system.  Epoch Markers are
   similar to "time ticks" and are produced and distributed by a
   dedicated system known as the Epoch Bell.  Systems receiving Epoch
   Markers do not need to track freshness using their own understanding
   of time (e.g., via a local real-time clock).  Instead, the reception
   of a specific Epoch Marker establishes a new epoch that is shared
   among all recipients.  This document defines Epoch Marker types,
   including CBOR time tags, RFC 3161 TimeStampToken, and nonce-like
   structures.  It also defines a CWT Claim to embed Epoch Markers in
   RFC 8392 CBOR Web Tokens, which serve as vehicles for signed protocol
   messages.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-epoch-markers-04"/>
        </reference>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
      </references>
    </references>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="O." surname="Steele" fullname="Orie Steele">
        <organization>Transmute</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>orie@transmute.industries</email>
        </address>
      </contact>
      <t>Orie contributed examples, text, and URN structure to early version of this draft.</t>
      <contact initials="A." surname="Chamayou" fullname="Amaury Chamayou">
        <organization>Microsoft</organization>
        <address>
          <postal>
            <country>United Kingdom</country>
          </postal>
          <email>amaury.chamayou@microsoft.com</email>
        </address>
      </contact>
      <t>Amaury contributed crucial content to ensure interoperability between implementations, improve example expressiveness and consistency, as well as overall document quality.</t>
      <contact initials="D." surname="Brooks" fullname="Dick Brooks">
        <organization>Business Cyber Guardian</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>dick@businesscyberguardian.com</email>
        </address>
      </contact>
      <t>Dick contributed use cases and helped improve example expressiveness and consistency.</t>
      <contact initials="R. A." surname="Martin" fullname="Robert Martin">
        <organization>MITRE Corporation</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>ramartin@mitre.org</email>
        </address>
      </contact>
      <t>Bob contributed use cases and helped with authoring and improving the document.</t>
      <contact initials="S." surname="Lasker" fullname="Steve Lasker">
        <organization/>
        <address>
          <email>stevenlasker@hotmail.com</email>
        </address>
      </contact>
      <t>Steve contributed architectural insights, particularly around asynchronous operations and participated in the initial writing of the document.</t>
      <contact initials="N." surname="Bates" fullname="Nicole Bates">
        <organization>Microsoft</organization>
        <address>
          <postal>
            <country>United States</country>
          </postal>
          <email>nicolebates@microsoft.com</email>
        </address>
      </contact>
      <t>Nicole contributed reviews and edits that improved the quality of the text.</t>
      <contact initials="R." surname="Williams" fullname="Roy Williams">
        <organization/>
        <address>
          <postal>
            <country>USA</country>
          </postal>
          <email>roywill@msn.com</email>
        </address>
      </contact>
      <t>Roy contributed the receipt refresh use case and associated resource definition.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963bbSJLmfzwFRnXOyuomKJG6WFJ7a0qW5S512ZZHkrd2
tqdPCQSSJEogwEECklg+7mfZZ9kn27jlBSRIu9zVe7rPTv0oUySQl8jIiC8u
GRlFUfBwGu4HQZ3VuToNb5r5PF+E59M4K8LLolaTKqsXvfC2igs9jytVJPBX
XKTwTaPr8NnN+eXt7U54rcYKf1Th2ftLHcSjUaWg4Zvza/g7SMukiGfQfFrF
4zrKVD2OdJLVNfy/iudZNBgEuoZWf4rzsoDn6qpRAfQWQxMqaXAMweME24Pe
gvvHUxpbVag6eoVNBklcn4a6ToOkLLQqdKNPw4XSgW5Gs0zrrCzqxRwavry4
fR1k84q60PVwb+9kbxjMs9MgDOsy4ZfCUJdVXamxtn8vZu7P4L6KZ2n5WPxU
zmtoWePLcVOXP2XpT3N4LnuCsagkCoIHVTQKf55UZTM34w/DWZzl8AyS4Duk
Rr+sJvhUVk+b0WlIBHqcMI121xAtCKDPaVmdBlHI1P1eFffhy6y6n5b5L9Ac
NHoavq7ippiWsDzhzSX2bdZm5QfFo5pCK/2RtMKjA6LWcVIjIYAsCkh9PVVZ
AX/EWqvw+SH8kpQpDGH76GB4criNf8OanYav4moGK5vW9ERT1BV8+UdVzeJi
AeOGNk7DP/XhmxiWE57hifypLNxXMIu4yH6JkdSn4cvycRTneXirkmlR5uUk
Uzp8Awtvx/9zWcT1NC6+G/GjUQ2PwhRm/hA+FFmt0vCHrJik8Iuh4FlRl1mh
wlcqzybQTPQmfoibdGUUb7OkKnU5roHxtYqrZOrRZjgIb2p6MLwu49TR5vzl
IBy+fumocx7PRlWWTpQbfVzUaf7dzLS/Mu4fAmTxuspGwHAVspZQ8aoPvSqV
Y1uGjldVpvxv25OgPT1rav5N+i/hle9q80s/K1LYJvCdpoeW6YfztD/JqKjt
b+m7kEdgf4I31FM8m+dK98JaPdUsSj5cv0PiNUndVAq2YQgUBSH0oCrcuGE5
Dutppll49N2Mz/oop2bxomy8OZ/N4qZatH9Zs3j+vGN6rZ/IaysrsJ531k9e
huJPP4FZZnFO36mipsmCtIJpZyjQyrmq4lGWA3eEI1U/KlWEGdJrBg/T8IFw
8EVVPihDSvgXhA7IOBA28A9RFKVgpmuR1jp8VLBl4F94rcLdAwK5wSbD/2xi
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
WggCzPVAdRr8XzYz/ABFkAAA

-->

</rfc>
