<?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.19 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scitt-scrapi-10" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="SCRAPI">Supply Chain Integrity, Transparency, and Trust (SCITT) Reference APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-scrapi-10"/>
    <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="May" day="13"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 131?>

<t>This document describes 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 135?>

<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"/>).
The following resources <bcp14>MUST</bcp14> be implemented for conformance to this specification:</t>
      <ul spacing="normal">
        <li>
          <t>Registration of Signed Statements (<xref target="sec-register-signed-statement"/>, <xref target="sec-query-registration-status"/>)</t>
        </li>
        <li>
          <t>Issuance and resolution of Receipts (<xref target="sec-resolve-receipt"/>)</t>
        </li>
        <li>
          <t>Discovery of Transparency Service Keys (<xref target="sec-transparency-service-keys"/>, <xref target="sec-individual-transparency-service-key"/>)</t>
        </li>
      </ul>
      <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"/>, <xref target="sec-query-registration-status"/> 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 either:</t>
      <ol spacing="normal" type="1"><li>
          <t>an HTTP 3xx code, indicating to the client additional action they must take to complete the request, such as follow a redirection, or</t>
        </li>
        <li>
          <t>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"/> containing:</t>
        </li>
      </ol>
      <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>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>NOTE: Examples use '\' line wrapping per <xref target="RFC8792"/></t>
      <t>Examples of errors may include:</t>
      <sourcecode type="cbor-diag"><![CDATA[
{
  / 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[
{
  / 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 <bcp14>SHOULD</bcp14> treat 5xx HTTP status code responses as transient failures and <bcp14>MAY</bcp14> retry the same request without modification at a later date.</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>SHOULD</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 at that resource the keys it no longer uses to issue Receipts, 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.
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>SHOULD</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>SHOULD</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, but <bcp14>MAY</bcp14> return another valid <xref target="RFC9290"/> error instead:</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>If the <tt>kid</tt> values used by the service (<tt>{kid_value}</tt> in the request above) are not URL-safe, the resource <bcp14>MUST</bcp14> accept the base64url encoding of the <tt>kid</tt> value, without padding, in the URL instead.</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 that can be used to check the registration's status asynchronously.</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>
          <t>Along with the receipt the Transparency Service <bcp14>MAY</bcp14> return a locator in the HTTP response <tt>Location</tt> header, provided the locator is a valid URL.</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.
Fresh Receipts may be requested through the resource identified in the Location header.</t>
        </section>
        <section anchor="sec-status-303-registration-is-running">
          <name>Status 303 - 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 <bcp14>MAY</bcp14> return a locator for the registration operation, as in this non-normative example:</t>
          <sourcecode type="http"><![CDATA[
HTTP/1.1 303 See Other
Location: https://transparency.example/entries/67ed...befe
Content-Type: application/cose
Content-Length: 0
Retry-After: <seconds>
]]></sourcecode>
          <t>The location <bcp14>MAY</bcp14> be temporary, and the service may not serve a relevant response at this Location after a reasonable delay.</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, but <bcp14>MAY</bcp14> return another valid <xref target="RFC9290"/> error instead.</t>
          <sourcecode type="http-message"><![CDATA[
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[
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[
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[
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>
      <section anchor="sec-query-registration-status">
        <name>Query Registration Status</name>
        <t>This resource lets a client query a Transparency Service for the registration status of a Signed Statement they have submitted earlier, and for which they have received a 303 or 302 - Registration is running response.</t>
        <t>Request:</t>
        <sourcecode type="http"><![CDATA[
GET /entries/67ed...befe HTTP/1.1
Host: transparency.example
Accept: application/cbor
Accept: application/cose
Content-Type: application/cose
]]></sourcecode>
        <t>Response:</t>
        <t>One of the following:</t>
        <section anchor="sec-status-302-registration-is-running">
          <name>Status 302 - Registration is running</name>
          <t>Registration requests may fail, in which case the Location <bcp14>MAY</bcp14> return an error when queried.</t>
          <t>If the client requests (GET) the location when the registration is still in progress, the TS <bcp14>MAY</bcp14> return a 302 Found, as in this non-normative example:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 302 Found
Location: https://transparency.example/entries/67ed...befe
Content-Type: application/cose
Content-Length: 0
Retry-After: <seconds>
]]></sourcecode>
          <t>The location <bcp14>MAY</bcp14> be temporary, and the service may not serve a relevant response at this Location after a reasonable delay.</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-200-asynchronous-registration-is-successful">
          <name>Status 200 - Asynchronous registration is successful</name>
          <t>Along with the receipt the Transparency Service <bcp14>MAY</bcp14> return a locator in the HTTP response <tt>Location</tt> header, provided the locator is a valid URL.</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>
          <t>The response contains the Receipt for the Signed Statement.
Fresh Receipts may be requested through the resource identified in the Location header.</t>
          <t>As an example, a successful asynchronous follows the following sequence:</t>
          <artwork><![CDATA[
Initial exchange:

Client --- POST /entries (Signed Statement) --> TS
Client <-- 303 Location: .../entries/tmp123 --- TS

May happen zero or more times:

Client --- GET .../entries/tmp123           --> TS
Client <-- 302 Location: .../entries/tmp123 --- TS

Finally:

Client --- GET .../entries/tmp123           --> TS
Client <-- 200 (Receipt)                    --- TS
           Location: .../entries/final123
]]></artwork>
        </section>
        <section anchor="sec-status-400-invalid-client-request-1">
          <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, but <bcp14>MAY</bcp14> return another valid <xref target="RFC9290"/> error instead.</t>
          <sourcecode type="http-message"><![CDATA[
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[
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[
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[
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-404-operation-not-found">
          <name>Status 404 - Operation Not Found</name>
          <t>If no record of the specified running operation is found, the Transparency Service <bcp14>SHOULD</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[
HTTP/1.1 404 Not Found
Content-Type: application/concise-problem-details+cbor

{
  / title /         -1: \
          "Operation Not Found",
  / detail /        -2: \
          "No running operation was found matching the requested ID"
}
]]></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[
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>Request:</t>
        <sourcecode type="http-message"><![CDATA[
GET /entries/67ed41f1de6a...cfc158694ed0befe HTTP/1.1
Host: transparency.example
Accept: application/cose
]]></sourcecode>
        <t>Response:</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-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>SHOULD</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[
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>
        </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 <bcp14>SHOULD</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.
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 <bcp14>SHOULD</bcp14> honor any <tt>Retry-After</tt> header field (defined in {Section 7.1.3 of RFC7231}) returned by the Transparency Service, treating it as a minimum interval before retrying.
In its absence, clients <bcp14>SHOULD</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, 429, 503).
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>SHOULD</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>
          <t>URI suffix: scitt-keys
Change controller: IETF
Specification document(s): RFCthis
Status: Permanent
Related information: <xref target="I-D.draft-ietf-scitt-architecture"/></t>
        </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="2" month="March" 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-03"/>
        </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:
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
M7fmAvVBgOcoUNwF/w9q1N+bOJUAAA==

-->

</rfc>
