<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-scitt-scrapi-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="SCRAPI">SCITT Reference APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-scrapi-02"/>
    <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@sit.fraunhofer.de</email>
      </address>
    </author>
    <author initials="O." surname="Steele" fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author initials="J." surname="Geater" fullname="Jon Geater">
      <organization>DataTrails Inc.</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>jon.geater@datatrails.ai</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>SCITT</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 64?>

<t>This document describes a REST API that supports the normative requirements of the SCITT Architecture.
Optional key discovery and query interfaces are provided to support interoperability issues with Decentralized Identifiers, X509 Certificates and Artifact Repositories.</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 69?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>The SCITT Architecture <xref target="I-D.draft-ietf-scitt-architecture"/> defines the core operations necessary to support supply chain transparency using COSE (CBOR Object Signing and Encryption).</t>
      <ul spacing="normal">
        <li>
          <t>Issuance of Signed Statements</t>
        </li>
        <li>
          <t>Verification of Signed Statements</t>
        </li>
        <li>
          <t>Registration of Signed Statements</t>
        </li>
        <li>
          <t>Issuance of Receipts</t>
        </li>
        <li>
          <t>Verification of Receipts</t>
        </li>
        <li>
          <t>Production of Transparent Statements</t>
        </li>
        <li>
          <t>Verification of Transparent Statements</t>
        </li>
      </ul>
      <t>In addition to defining concrete HTTP endpoints for these operations, this specification defines support for the following endpoints which support these operations:</t>
      <ul spacing="normal">
        <li>
          <t>Resolving Verification Keys for Issuers</t>
        </li>
        <li>
          <t>Retrieving Receipts Asynchronously</t>
        </li>
        <li>
          <t>Retrieving Signed Statements from an Artifact Repository</t>
        </li>
        <li>
          <t>Retrieving Statements from an Artifact Repository</t>
        </li>
      </ul>
      <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", "Append-Only Log" 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-endpoints">
      <name>Endpoints</name>
      <t>Authentication is out of scope for this document.
If Authentication is not implemented, rate limiting or other denial of service mitigations <bcp14>MUST</bcp14> be applied to enable anonymous access.</t>
      <t>NOTE: '' line wrapping per <xref target="RFC8792"/> in HTTP examples.</t>
      <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>SHOULD</bcp14> be a JSON problem details object (<xref target="RFC9457"/>) containing:</t>
      <ul spacing="normal">
        <li>
          <t>type: A URI reference identifying the problem.
To facilitate automated response to errors, this document defines a set of standard tokens for use in the type field within the URN namespace of: "urn:ietf:params:scitt:error:".</t>
        </li>
        <li>
          <t>detail: A human-readable string describing the error that prevented the Transparency Service from processing the request, ideally with sufficient detail to enable the error to be rectified.</t>
        </li>
      </ul>
      <t>Error responses <bcp14>SHOULD</bcp14> be sent with the <tt>Content-Type: application/problem+json</tt> HTTP header.</t>
      <t>As an example, submitting a Signed Statement with an unsupported signature algorithm would return a <tt>400 Bad Request</tt> status code and the following body:</t>
      <sourcecode type="json"><![CDATA[
{
  "type": "urn:ietf:params:scitt:error:badSignatureAlgorithm",
  "detail": "Signing algorithm not support"
}
]]></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>
      <ul spacing="normal">
        <li>
          <t>Error code: <tt>malformed</tt> (The request could not be parsed).</t>
        </li>
      </ul>
      <t>Clients <bcp14>SHOULD</bcp14> treat 500 and 503 HTTP status code responses as transient failures and <bcp14>MAY</bcp14> retry the same request without modification at a later date.
Note that in the case of a 503 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>
      <section anchor="sec-mandatory">
        <name>Mandatory</name>
        <t>The following HTTP endpoints are mandatory to implement to enable conformance to this specification.</t>
        <section anchor="sec-transparency-configuration">
          <name>Transparency Configuration</name>
          <t>Authentication <bcp14>SHOULD NOT</bcp14> be implemented for this endpoint.
This endpoint is used to discovery the capabilities of a transparency service implementing this specification.</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /.well-known/transparency-configuration HTTP/1.1
Host: transparency.example
Accept: application/json
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/json

{
  "issuer": "https://transparency.example",
  "registration_endpoint": "https://transparency.example/entries",
  "nonce_endpoint": "https://transparency.example/nonce",

  "registration_policy": \
"https://transparency.example\
/statements/urn:ietf:params:scitt:statement\
:sha-256:base64url:5i6UeRzg1...qnGmr1o",

  "supported_signature_algorithms": ["ES256"],
  "jwks": {
    "keys": [
      {
        "kid": "urn:ietf:params:oauth:\
jwk-thumbprint:sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo",
        "alg": "ES256",
        "use": "sig",
        "kty": "EC",
        "crv": "P-256",
        "x": "p-kZ4uOASt9IjQRTrWikGnlbGb-z3LU1ltwRjZaOS9w",
        "y": "ymXE1yltJPXgjQSRe9NweN3TLlSUALYZTzy83NVfdg0"
      },
      {
        "kid": "urn:ietf:params:oauth:\
jwk-thumbprint:sha-256:4Fzx5HO1W0ob9CZNc3RJx28Ixpgy9JAFM8jyXKW0ClE",
        "alg": "HPKE-Base-P256-SHA256-AES128GCM",
        "use": "enc",
        "kty": "EC",
        "crv": "P-256",
        "x": "Vreuil95vzR6ixutgBBf2ota-rj97MvKfuJWB4qqp5w",
        "y": "NkUTeaoNlLRRsVRxHGDA-RsA0ex2tSpcd3G-4SmKXbs"
      }
    ]
  }
}
]]></sourcecode>
          <t>Additional fields may be present.
Fields that are not understood <bcp14>MUST</bcp14> be ignored.</t>
        </section>
        <section anchor="sec-signed-statement-registration">
          <name>Signed Statement Registration</name>
          <t>Authentication <bcp14>MUST</bcp14> be implemented for this endpoint.</t>
          <t>The following is a non-normative example of a 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/json
Content-Type: application/cose
Payload (in CBOR diagnostic notation)

18([                            / COSE Sign1         /
  h'a1013822',                  / Protected Header   /
  {},                           / Unprotected Header /
  null,                         / Detached Payload   /
  h'269cd68f4211dffc...0dcb29c' / Signature          /
])
]]></sourcecode>
          <t>The Registration Policy for the Transparency Service <bcp14>MUST</bcp14> be applied to the payload bytes, before any additional processing is performed.</t>
          <t>If the <tt>payload</tt> is detached, the Transparency Service depends on the authentication context of the client in the Registration Policy.
If the <tt>payload</tt> is attached, the Transparency Service depends on both the authentication context of the client, and the verification of the Signed Statement in the Registration Policy.
The details of Registration Policy are out of scope for this document.</t>
          <t>If registration succeeds the following identifier <bcp14>MAY</bcp14> be used to refer to the Signed Statement that was accepted:</t>
          <t><tt>urn:ietf:params:scitt:signed-statement:sha-256:base64url:5i6UeRzg1...qnGmr1o</tt></t>
          <t>If the <tt>payload</tt> was attached, or otherwise communicated to the Transparency Service, the following identifier <bcp14>MAY</bcp14> be used to refer to the <tt>payload</tt> of the Signed Statement:</t>
          <t><tt>urn:ietf:params:scitt:statement:sha-256:base64url:5i6UeRzg1...qnGmr1o</tt></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>
            <sourcecode type="http-message"><![CDATA[
HTTP/1.1 201 Ok

Location: https://transparency.example/receipts\
/urn:ietf:params:scitt:signed-statement\
:sha-256:base64url:5i6UeRzg1...qnGmr1o

Content-Type: application/cose

Payload (in CBOR diagnostic notation)

18([                            / COSE Sign1         /
  h'a1013822',                  / Protected Header   /
  {},                           / Unprotected Header /
  null,                         / Detached Payload   /
  h'269cd68f4211dffc...0dcb29c' / Signature          /
])
]]></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-202-registration-is-running">
            <name>Status 202 - Registration is running</name>
            <sourcecode type="http-message"><![CDATA[
HTTP/1.1 202 Ok

Location: https://transparency.example/receipts\
/urn:ietf:params:scitt:signed-statement\
:sha-256:base64url:5i6UeRzg1...qnGmr1o

Content-Type: application/json
Retry-After: <seconds>

{

  "receipt": "urn:ietf:params:scitt:receipt\
:sha-256:base64url:5i6UeRzg1...qnGmr1o",

}

]]></sourcecode>
            <t>The response contains a reference to the receipt which will eventually be available for the Signed Statement.</t>
            <t>If 202 is returned, then clients should wait until Registration succeeded or failed by polling the receipt endpoint using the receipt identifier returned in the response.</t>
          </section>
          <section anchor="sec-status-400-invalid-client-request">
            <name>Status 400 - Invalid Client Request</name>
            <t>One of the following errors:</t>
            <artwork><![CDATA[
{
  "type": "urn:ietf:params:scitt:error\
:signed-statement:algorithm-not-supported",
  "detail": \
"Signed Statement contained an algorithm that is not supported."
}
]]></artwork>
            <artwork><![CDATA[
{
  "type": "urn:ietf:params:scitt:error\
:signed-statement:payload-missing",
  "detail": \
"Signed Statement payload must be attached (must be present)"
}
]]></artwork>
            <artwork><![CDATA[
{
  "type": "urn:ietf:params:scitt:error\
:signed-statement:payload-forbidden",
  "detail": \
"Signed Statement payload must be detached (must not be present)"
}
]]></artwork>
            <artwork><![CDATA[
{
  "type": "urn:ietf:params:scitt:error\
:signed-statement:rejected-by-registration-policy",
  "detail": \
"Signed Statement not accepted by the current Registration Policy"
}
]]></artwork>
            <artwork><![CDATA[
{
  "type": "urn:ietf:params:scitt:error\
:signed-statement:confirmation-missing",
  "detail": \
"Signed Statement did not contain proof of possession"
}
]]></artwork>
            <t>TODO: other error codes</t>
          </section>
        </section>
      </section>
      <section anchor="sec-optional-endpoints">
        <name>Optional Endpoints</name>
        <t>The following HTTP endpoints are optional to implement.</t>
        <section anchor="sec-issue-signed-statement">
          <name>Issue Signed Statement</name>
          <t>Authentication <bcp14>MUST</bcp14> be implemented for this endpoint.</t>
          <t>This endpoint enables a Transparency Service to be an issuer of Signed Statements on behalf of authenticated clients.
This supports cases where a client lacks the ability to perform complex cryptographic operations, but can be authenticated and report statements and measurements.</t>
          <t>Request:</t>
          <sourcecode type="http"><![CDATA[
POST /signed-statements/issue HTTP/1.1
Host: transparency.example
Accept: application/json
Content-Type: application/vc+ld+json
Payload

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "https://transparency.example/credentials/1872",
  "type": ["VerifiableCredential", "SensorCredential"],
  "issuer": "https://transparency.example/device/1234",
  "validFrom": "2010-01-01T19:23:24Z",
  "credentialSubject": {
    "type": "Feature",
    "geometry": {
      "type": "Point",
      "coordinates": [125.6, 10.1]
    },
    "properties": {
      "name": "Dinagat Islands"
    }
  }
}
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/cose

Payload (in CBOR diagnostic notation)

18([                            / COSE Sign1         /
  h'a1013822',                  / Protected Header   /
  {},                           / Unprotected Header /
  null,                         / Detached Payload   /
  h'269cd68f4211dffc...0dcb29c' / Signature          /
])
]]></sourcecode>
        </section>
        <section anchor="sec-resolve-statement">
          <name>Resolve Statement</name>
          <t>Authentication <bcp14>SHOULD</bcp14> be implemented for this endpoint.</t>
          <t>This endpoint enables Transparency Service APIs to act like Artifact Repositories, and serve <tt>payload</tt> values directly, instead of indirectly through Receipts.</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /statements/urn...qnGmr1o HTTP/1.1
Host: transparency.example
Accept: application/pdf
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/pdf
Payload (pdf bytes)
]]></sourcecode>
        </section>
        <section anchor="sec-resolve-signed-statement">
          <name>Resolve Signed Statement</name>
          <t>Authentication <bcp14>SHOULD</bcp14> be implemented for this endpoint.</t>
          <t>This endpoint enables Transparency Service APIs to act like Artifact Repositories, and serve Signed Statements directly, instead of indirectly through Receipts.</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /signed-statements/urn...qnGmr1o HTTP/1.1
Host: transparency.example
Accept: application/cose
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/cose

Payload (in CBOR diagnostic notation)

18([                            / COSE Sign1         /
  h'a1013822',                  / Protected Header   /
  {},                           / Unprotected Header /
  null,                         / Detached Payload   /
  h'269cd68f4211dffc...0dcb29c' / Signature          /
])
]]></sourcecode>
        </section>
        <section anchor="sec-resolve-receipt">
          <name>Resolve Receipt</name>
          <t>Authentication <bcp14>SHOULD</bcp14> be implemented for this endpoint.</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /receipts/urn...qnGmr1o HTTP/1.1
Host: transparency.example
Accept: application/cose
]]></sourcecode>
          <t>Response:</t>
          <t>If the Signed Statement requested is already included in the Append-Only Log:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Location: https://transparency.example/receipts/urn...qnGmr1o
Content-Type: application/cose

Payload (in CBOR diagnostic notation)

18([                            / COSE Sign1         /
  h'a1013822',                  / Protected Header   /
  {},                           / Unprotected Header /
  null,                         / Detached Payload   /
  h'269cd68f4211dffc...0dcb29c' / Signature          /
])
]]></sourcecode>
          <t>If the Signed Statement requested is not yet included in the Append-Only Log:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 202 Ok
Location: https://transparency.example/receipts/urn...qnGmr1o
Content-Type: application/json
Retry-After: <seconds>

{
  "receipt": "urn:ietf:params:scitt:receipt\
    :sha-256:base64url:5i6UeRzg1...qnGmr1o",
}
]]></sourcecode>
          <t>Additional eventually consistent operation details <bcp14>MAY</bcp14> be present.
Support for eventually consistent Receipts is implementation specific, and out of scope for this specification.</t>
        </section>
        <section anchor="sec-resolve-issuer">
          <name>Resolve Issuer</name>
          <t>This endpoint is inspired by <xref target="I-D.draft-ietf-oauth-sd-jwt-vc"/>.
Authentication <bcp14>SHOULD NOT</bcp14> be implemented for this endpoint.
This endpoint is used to discover verification keys, which is the reason that authentication is not required.</t>
          <t>The following is a non-normative example of a HTTP request for the Issuer Metadata configuration when <tt>iss</tt> is set to <tt>https://transparency.example/tenant/1234</tt>:</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /.well-known/issuer/tenant/1234 HTTP/1.1
Host: transparency.example
Accept: application/json
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/json

{
  "issuer": "https://transparency.example/tenant/1234",
  "jwks": {
    "keys": [
      {
        "kid": "urn:ietf:params:oauth\
:jwk-thumbprint:sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo",
        "alg": "ES256",
        "use": "sig",
        "kty": "EC",
        "crv": "P-256",
        "x": "p-kZ4uOASt9IjQRTrWikGnlbGb-z3LU1ltwRjZaOS9w",
        "y": "ymXE1yltJPXgjQSRe9NweN3TLlSUALYZTzy83NVfdg0"
      },
      {
        "kid": "urn:ietf:params:oauth\
:jwk-thumbprint:sha-256:4Fzx5HO1W0ob9CZNc3RJx28Ixpgy9JAFM8jyXKW0ClE",
        "alg": "HPKE-Base-P256-SHA256-AES128GCM",
        "use": "enc",
        "kty": "EC",
        "crv": "P-256",
        "x": "Vreuil95vzR6ixutgBBf2ota-rj97MvKfuJWB4qqp5w",
        "y": "NkUTeaoNlLRRsVRxHGDA-RsA0ex2tSpcd3G-4SmKXbs"
      }
    ]
  }
}
]]></sourcecode>
        </section>
        <section anchor="sec-request-nonce">
          <name>Request Nonce</name>
          <t>This endpoint in inspired by <xref target="I-D.draft-demarco-oauth-nonce-endpoint"/>.</t>
          <t>Authentication <bcp14>SHOULD NOT</bcp14> be implemented for this endpoint.
This endpoint is used to demonstrate proof of possession, which is the reason that authentication is not required.
Client holding signed statements that require demonstrating proof of possession <bcp14>MUST</bcp14> use this endpoint to obtain a nonce.</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /nonce HTTP/1.1
Host: transparency.example
Accept: application/json
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 OK
Content-Type: application/json

{
  "nonce": "d2JhY2NhbG91cmVqdWFuZGFt"
}
]]></sourcecode>
        </section>
        <section anchor="sec-resolve-issuer-did">
          <name>Resolve Issuer DID</name>
          <t>This endpoint enables the use of the DID Web Decentralized Identifier Method, as an alternative expression of the Issuer Metadata endpoint.</t>
          <t>This endpoint is DEPRECATED.</t>
          <t>The following is a non-normative example of a HTTP request for the Issuer Metadata configuration when <tt>iss</tt> is set to <tt>did:web:transparency.example:tenant:1234</tt>:</t>
          <t>Request:</t>
          <sourcecode type="http-message"><![CDATA[
GET /tenant/1234/did.json HTTP/1.1
Host: transparency.example
Accept: application/did+ld+json
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="http-message"><![CDATA[
HTTP/1.1 200 Ok
Content-Type: application/did+ld+json

{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    {
      "@vocab": "https://vocab.transparency.example#"
    }
  ],
  "id": "did:web:transparency.example:tenant:1234",
  "verificationMethod": [
    {
      "id": "did:web:transparency.example:tenant:1234\
        #urn:ietf:params:oauth:jwk-thumbprint\
        :sha-256:5b30k1hBWBMcggA9GIJImUqj4pXqrJ9EOWV6MDdcstA",
      "type": "JsonWebKey",
      "controller": "did:web:transparency.example:tenant:1234",
      "publicKeyJwk": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint\
          :sha-256:5b30k1hBWBMcggA9GIJImUqj4pXqrJ9EOWV6MDdcstA",
        "alg": "ES256",
        "use": "sig",
        "kty": "EC",
        "crv": "P-256",
        "x": "9ptuW0PBHSTN7bVexWd7xM5kmSPGRaCu-K3SLtJyvNc",
        "y": "l7NvF6QbovicSciZqu_W_xy4JTZwtnUbn2SNdMKoaAk"
      }
    },
    {
      "id": "did:web:transparency.example:tenant:1234\
        #urn:ietf:params:oauth:jwk-thumbprint\
        :sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo",
      "type": "JsonWebKey",
      "controller": "did:web:transparency.example:tenant:1234",
      "publicKeyJwk": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint\
          :sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo",
        "alg": "ES256",
        "use": "sig",
        "kty": "EC",
        "crv": "P-256",
        "x": "p-kZ4uOASt9IjQRTrWikGnlbGb-z3LU1ltwRjZaOS9w",
        "y": "ymXE1yltJPXgjQSRe9NweN3TLlSUALYZTzy83NVfdg0"
      }
    },
    {
      "id": "did:web:transparency.example:tenant:1234\
        #urn:ietf:params:oauth:jwk-thumbprint\
        :sha-256:4Fzx5HO1W0ob9CZNc3RJx28Ixpgy9JAFM8jyXKW0ClE",
      "type": "JsonWebKey",
      "controller": "did:web:transparency.example:tenant:1234",
      "publicKeyJwk": {
        "kid": "urn:ietf:params:oauth:jwk-thumbprint\
          :sha-256:4Fzx5HO1W0ob9CZNc3RJx28Ixpgy9JAFM8jyXKW0ClE",
        "alg": "HPKE-Base-P256-SHA256-AES128GCM",
        "use": "enc",
        "kty": "EC",
        "crv": "P-256",
        "x": "Vreuil95vzR6ixutgBBf2ota-rj97MvKfuJWB4qqp5w",
        "y": "NkUTeaoNlLRRsVRxHGDA-RsA0ex2tSpcd3G-4SmKXbs"
      }
    }
  ],
  "assertionMethod": [
    "did:web:transparency.example:tenant:1234\
      #urn:ietf:params:oauth:jwk-thumbprint\
      :sha-256:5b30k1hBWBMcggA9GIJImUqj4pXqrJ9EOWV6MDdcstA",
    "did:web:transparency.example:tenant:1234\
      #urn:ietf:params:oauth:jwk-thumbprint\
      :sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo"
  ],
  "authentication": [
    "did:web:transparency.example:tenant:1234\
      #urn:ietf:params:oauth:jwk-thumbprint\
      :sha-256:5b30k1hBWBMcggA9GIJImUqj4pXqrJ9EOWV6MDdcstA",
    "did:web:transparency.example:tenant:1234\
      #urn:ietf:params:oauth:jwk-thumbprint\
      :sha-256:DgyowWs04gfVRim5i1WlQ-HFFFKI6Ltqulj1rXPagRo"
  ],
  "keyAgreement": [
    "did:web:transparency.example:tenant:1234\
      #urn:ietf:params:oauth:jwk-thumbprint\
      :sha-256:4Fzx5HO1W0ob9CZNc3RJx28Ixpgy9JAFM8jyXKW0ClE"
  ]
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="sec-privacy-considerations">
      <name>Privacy Considerations</name>
      <t>TODO</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 of 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-user-host-authentication">
        <name>User-host authentication</name>
        <t><xref target="I-D.draft-ietf-scitt-architecture"/> defines 2 distinct roles that require authentication:
Issuers who sign Statements, and clients that submit API calls on behalf of Issuers.
While Issuer authentication and signing of Statements is very important for the trustworthiness of systems implementing the SCITT building blocks, it is out of scope of this document.
This document is only concerned with authentication of API clients.</t>
        <t>For those endpoints that require client authentication, Transparency Services <bcp14>MUST</bcp14> support at least one of the following options:</t>
        <ul spacing="normal">
          <li>
            <t>HTTP Authorization header with a bearer JWT</t>
          </li>
          <li>
            <t>domain-bound API key</t>
          </li>
          <li>
            <t>TLS client authentication</t>
          </li>
        </ul>
        <t>Transparency Services <bcp14>MUST</bcp14> provide a configuration surface that allows Issuers to specify which authorized clients can submit Statements on their behalf.</t>
        <t>Where authentication methods rely on long term secrets, both clients and Transparency Services implementing this specification <bcp14>MUST</bcp14> allow for the revocation and rolling of authentication secrets.</t>
      </section>
      <section anchor="sec-primary-threats">
        <name>Primary threats</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>In principle DoS attacks are easily mitigated by the 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 DoS attacks are not a major issue.</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>SHOULD</bcp14> implement general good practice around network attacks, flooding, rate limiting etc.</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>While most relevant modification attacks are mitigated by the use of the Issuer signature on the Signed Statement, the <tt>Issue Statement</tt> endpoint presents an opportunity for manipulation of messages and misrepresentation of Issuer intent that could mislead later Verifiers.</t>
            <t>Transparency Services offering the <tt>Issue Statement</tt> endpoint <bcp14>MUST</bcp14> require authentication and transport-level security for that endpoint, <bcp14>MUST NOT</bcp14> modify anything in the message to be signed, and <bcp14>MUST</bcp14> take steps to ensure that the party calling the endpoint is authorized to register statements on behalf of the specified Issuer.</t>
          </section>
          <section anchor="sec-message-insertion-attacks">
            <name>Message insertion attacks</name>
            <t>While most relevant insertion attacks are mitigated by the use of the Issuer signature on the Signed Statement, the <tt>Issue Statement</tt> endpoint presents an opportunity for insertion of messages and misrepresentation of Issuer intent that could mislead later Verifiers.
There are 2 most likely avenues to this attack:</t>
            <ul spacing="normal">
              <li>
                <t>Stolen client endpoint authentication credentials</t>
              </li>
              <li>
                <t>Stolen or misused Issuer keys held in the Transparency Service on behalf of clients</t>
              </li>
            </ul>
            <t>Clients relying on the <tt>Issue Statement</tt> endpoint <bcp14>SHOULD</bcp14> take steps to ensure their endpoint authentication credentials are securely stored and can be rotated and/or revoked in the case of a breach.</t>
            <t>Transparency Services offering the <tt>Issue Statement</tt> endpoint <bcp14>MUST</bcp14> require authentication and transport-level security for that endpoint, and <bcp14>MUST</bcp14> enable the rotation and revocation of those credentials.</t>
            <t>Transparency Services offering the <tt>Issue Statement</tt> endpoint <bcp14>MUST</bcp14> take careful steps in both design and operation of their software stack to prevent the theft or inappropriate use of the Issuer keys they use to sign Statements on behalf of Issuers, such as HSMs for storage and least-privilege, regularly refreshed access controls for use.</t>
            <t>Transparency Services <bcp14>MAY</bcp14> also implement additional protections such as anomaly detection or rate limiting in order to mitigate the impact of any breach.</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 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>MAY</bcp14> be added to the payload signed by the Issuer.</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>
      </section>
    </section>
    <section anchor="sec-todo">
      <name> TODO</name>
      <t>TODO: Consider negotiation for receipt as "JSON" or "YAML".
TODO: Consider impact of media type on "Data URIs" and QR Codes.</t>
    </section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="sec-urn-sub-namespace-for-scitt-urnietfparamsscitt">
        <name>URN Sub-namespace for SCITT (urn:ietf:params:scitt)</name>
        <t>IANA is requested to register the URN sub-namespace <tt>urn:ietf:params:scitt</tt> in the "IETF URN Sub-namespace for Registered Protocol Parameter Identifiers" Registry <xref target="IANA.params"/>, following the template in <xref target="RFC3553"/>:</t>
        <sourcecode type="output"><![CDATA[
   Registry name:  scitt
   Specification:  [RFCthis]
   Repository:  http://www.iana.org/assignments/scitt
   Index value:  No transformation needed.
]]></sourcecode>
      </section>
      <section anchor="sec-well-known-uri-for-issuers">
        <name>Well-Known URI for Issuers</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: issuer
Change controller: IETF
Specification document(s): RFCthis.
Related information: N/A</t>
      </section>
      <section anchor="sec-well-known-uri-for-transparency-configuration">
        <name>Well-Known URI for Transparency Configuration</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: transparency-configuration
Change controller: IETF
Specification document(s): RFCthis.
Related information: N/A</t>
        <t>TODO: Register them from here.</t>
      </section>
      <section anchor="sec-media-type-registration">
        <name>Media Type Registration</name>
        <t>This section requests registration of the "application/scitt.receipt+cose" media type <xref target="RFC2046"/> in the "Media Types" registry in the manner described in <xref target="RFC6838"/>.</t>
        <t>To indicate that the content is a SCITT Receipt:</t>
        <ul spacing="normal">
          <li>
            <t>Type name: application</t>
          </li>
          <li>
            <t>Subtype name: scitt.receipt+cose</t>
          </li>
          <li>
            <t>Required parameters: n/a</t>
          </li>
          <li>
            <t>Optional parameters: n/a</t>
          </li>
          <li>
            <t>Encoding considerations: TODO</t>
          </li>
          <li>
            <t>Security considerations: TODO</t>
          </li>
          <li>
            <t>Interoperability considerations: n/a</t>
          </li>
          <li>
            <t>Published specification: this specification</t>
          </li>
          <li>
            <t>Applications that use this media type: TBD</t>
          </li>
          <li>
            <t>Fragment identifier considerations: n/a</t>
          </li>
          <li>
            <t>Additional information:
            </t>
            <ul spacing="normal">
              <li>
                <t>Magic number(s): n/a</t>
              </li>
              <li>
                <t>File extension(s): n/a</t>
              </li>
              <li>
                <t>Macintosh file type code(s): n/a</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Person &amp; email address to contact for further information: TODO</t>
          </li>
          <li>
            <t>Intended usage: COMMON</t>
          </li>
          <li>
            <t>Restrictions on usage: none</t>
          </li>
          <li>
            <t>Author: TODO</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Provisional registration?  No</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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">
              <organization>DataTrails</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Traceability of physical and digital Artifacts in supply chains is a
   long-standing, but increasingly serious security concern.  The rise
   in popularity of verifiable data structures as a mechanism to make
   actors more accountable for breaching their compliance promises has
   found some successful applications to specific use cases (such as the
   supply chain for digital certificates), but lacks a generic and
   scalable architecture that can address a wider range of use cases.

   This document defines a generic, interoperable and scalable
   architecture to enable transparency across any supply chain with
   minimum adoption barriers.  It provides flexibility, enabling
   interoperability across different implementations of Transparency
   Services with various auditing and compliance requirements.  Issuers
   can register their Signed Statements on any Transparency Service,
   with the guarantee that all Auditors and Verifiers will be able to
   verify them.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-scitt-architecture-07"/>
        </reference>
        <reference anchor="RFC3553">
          <front>
            <title>An IETF URN Sub-namespace for Registered Protocol Parameters</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <author fullname="T. Hardie" initials="T." surname="Hardie"/>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <date month="June" year="2003"/>
            <abstract>
              <t>This document describes a new sub-delegation for the 'ietf' URN namespace for registered protocol items. The 'ietf' URN namespace is defined in RFC 2648 as a root for persistent URIs that refer to IETF- defined resources. 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="73"/>
          <seriesInfo name="RFC" value="3553"/>
          <seriesInfo name="DOI" value="10.17487/RFC3553"/>
        </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="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="IANA.params" target="http://www.iana.org/assignments/params">
          <front>
            <title>Uniform Resource Name (URN) Namespace for IETF Use</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.draft-demarco-oauth-nonce-endpoint">
          <front>
            <title>OAuth 2.0 Nonce Endpoint</title>
            <author fullname="Giuseppe De Marco" initials="G." surname="De Marco">
              <organization>Independent</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <date day="6" month="February" year="2024"/>
            <abstract>
              <t>   This document defines the Nonce Endpoint for OAuth 2.0
   implementations [RFC6749].  It details how an Authorization Server
   generates and issues opaque Nonces and how a client can learn about
   this endpoint to obtain a Nonce generated by the Authorization
   Server.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-demarco-oauth-nonce-endpoint-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-oauth-sd-jwt-vc">
          <front>
            <title>SD-JWT-based Verifiable Credentials (SD-JWT VC)</title>
            <author fullname="Oliver Terbu" initials="O." surname="Terbu">
              <organization>MATTR</organization>
            </author>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete Inc.</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This specification describes data formats as well as validation and
   processing rules to express Verifiable Credentials with JSON payloads
   with and without selective disclosure based on the SD-JWT
   [I-D.ietf-oauth-selective-disclosure-jwt] format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-sd-jwt-vc-04"/>
        </reference>
        <reference anchor="RFC2046">
          <front>
            <title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="N. Borenstein" initials="N." surname="Borenstein"/>
            <date month="November" year="1996"/>
            <abstract>
              <t>This second document defines the general structure of the MIME media typing system and defines an initial set of media types. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2046"/>
          <seriesInfo name="DOI" value="10.17487/RFC2046"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
NaFfTD9Vb8KgSl1ScK711oFh3BTsof4kwaCeAXh/OBezS7mxNRy87oTj7bBx
Gf3ovjg8PHx5tHOSfsii943kpwtv2BG0E3oygBcnU3AWngND4XNYWPHpdTqn
1nvFh34yxYcX7sIQN/h04l6/2crO29109+j9j51echleP4+j/vO++3Hz5FUj
Smed92+88+7urNiXppmPfzpozKP0+OKn4fsfux2+ezbjZ5u9k6j7qn3y85ve
x/nTzbPXg2C4UdNdb9e+Fj63Dj/ebL84b1xuiP7u3pszf7NzfNN8enQzGc53
j9uHp0/fz396ebmxFx1U4PPFxcsD9xnQkHsBg7ngXuM/7YNuo/n0+d5pBaaB
aL8M068TnoXR7vb0Y2cnvMnS4bNng6ZIPTd5v/vkdPpykB1fPtv68GGyvYzp
s+tXPe6Js+ik05GvOzcvnu+33Y5sb/CbZtqd+MHmc3erO375U19aTNO/vzr4
l7a82jpoBh4hqSgJimROFgSoYHI2D9Vj0tWoaFBfZTHoNJkKEViHEbgJdGOg
lciSLVt0spf0iB3jbg2yoARD9G9A2Lh5CFoLEKU3SEkaBU+6HkEAXbxsarcW
1AVKJ4e8TyMJv0wNrJbqvpDcuVAxA/YITBOK7AahB+iUgCBEN7V87DiNp49+
YXf8Z10Fh3Fxjfwh7PboodfYaGw+bTYfrlV1u0gExq8BIy+UtaK6/XZb0brQ
7VU8WeyI3eIsilZ3XGf74Bz4I+hjlm2AbO7s+sHO08FWs9EIBgMfhPdG4Peb
u/5D6GZ9jcJYzq+PFRkjZVTEcawhV21BLsc6yP/WYPXnYO+vGaPPi+c2wgzM
UnBCgQ7BxFQ2eR6kuNLDXOH7QC/5DnM24BibApNHm5FlDsFAAr9JzbGKtku1
6Vyx8HolGF76OWD0hfZ17wNLHi6ZLkTs6RhoURzcBTnupY2qDCq3FeXQp4Jk
iIGi+QHeILAnD+SC+xva8yFyKYAejGFKIRpDFUtLIIE481Q4bAI8AKLjaoWx
Qn1da7Pcz2K5qqAlms/uoonpzUKJ9v14nMXkpVpSrtritT+2/hyGFXt6x/I/
e90Fi/k85mZGC3OLlMwDmhu81uZGgy0cU6E/kFGYcpBFd5vdDTS7nRPh6zPo
O23bRJ/EgIl6v62+r3nqfEpHfFcSX0VJ2NipDs1KLYdoW626WKRtsIKg44iZ
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
gznh/D+O+4qcCXIAAA==

-->

</rfc>
