<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-novak-lamps-tacra-est-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Remote Attestation Extensions for EST</title>

    <author initials="M." surname="Novak" fullname="Mark F. Novak">
      <organization>J.P. Morgan Chase &amp; Co.</organization>
      <address>
        <email>mark.f.novak@jpmchase.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <email>Henk.Birkholz@ietf.contact</email>
      </address>
    </author>
    <author initials="S." surname="Nikolaichuk" fullname="Serhii Nikolaichuk">
      <organization>The Capital Index LLC</organization>
      <address>
        <email>nikolaichuk.s.f@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="November" day="02"/>

    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>trustworthy workload identity</keyword> <keyword>remote attestation</keyword> <keyword>credential enrollment</keyword> <keyword>credential retrieval</keyword>

    <abstract>


<?line 88?>

<t>This document specifies extensions to Enrollment over Secure Transport (EST) that realize the Trustworthy Acquisition of Credentials via Remote Attestation (TACRA) architecture.
Remote Attestation Procedures (RATS) are used as an authorization input for workload credential provisioning.</t>

<t>Two modes are defined:</t>

<t><list style="numbers" type="1">
  <t>Enrollment: the Attester submits a PKCS#10 CSR and Evidence.
  A Credential Authority, as RATS Relying Party, authorizes issuance from Attestation Results and binds the credential to the CSR key.</t>
  <t>Retrieval: the Attester submits Evidence that includes a Credential Encryption Key (CEK).
  A Secret Vault, as RATS Relying Party, releases an existing credential bundle with secrets encrypted to CEKpub.</t>
</list></t>

<t>These extensions add EST resources for a two-leg exchange: optional <spanx style="verb">attest-initiate</spanx>, followed by either <spanx style="verb">attest-enroll</spanx> or <spanx style="verb">attest-retrieve</spanx>.</t>

<t>This memo is informational and intended to support discussion and implementation experience.
It is not a completed interoperability specification.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://TheBankster.github.io/lamps-tacra-est/draft-novak-lamps-tacra-est.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-novak-lamps-tacra-est/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/TheBankster/lamps-tacra-est"/>.</t>
    </note>


  </front>

  <middle>


<?line 105?>

<section anchor="intro"><name>Introduction</name>

<t>EST (<xref target="RFC7030"/>) defines an HTTPS-based protocol for certificate enrollment and management, typically between an EST Client and an EST Server acting as an interface to a Credential Authority.
In modern environments (e.g., cloud, containers, confidential computing), workloads often lack pre-provisioned credentials and require issuance based on runtime properties.
Zero trust environments place additional restrictions limiting which parties have access to secrets and credentials.
This means that EST Clients and Servers may not be trusted to handle such restricted information in plaintext.</t>

<t>RATS (<xref target="RFC9334"/>) defines an architecture and roles for Remote Attestation.
This document extends EST to match the TACRA <xref target="TACRA"/> architecture: the Attester generates keys, Evidence, and CSRs; the EST Client and EST Server are conduits that carry them to a Verifier and a RATS Relying Party (RRP) (<xref target="INTERACTION-MODELS"/>, Section 10 of <xref target="RFC9334"/>, <xref target="ATTESTATION-FRESHNESS"/>).
The RRP in this case is either a Secret Vault, where pre-provisioned credentials are stored, or a Credential Authority capable of creating new ones.</t>

<t>Two modes are defined:</t>

<t><list style="numbers" type="1">
  <t>Enrollment: issuance of a fresh credential bound to a workload-generated Credential Signing Key (CSK)</t>
  <t>Retrieval: release of a shared credential bundle, with secrets encrypted to an attester-supplied Credential Encryption Key (CEK)</t>
</list></t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<section anchor="rats-entities"><name>RATS Entities</name>

<t><list style="symbols">
  <t>Attester: the workload instance producing Evidence</t>
  <t>Verifier: the component that appraises Evidence and produces Attestation Results</t>
  <t>RATS Relying Party (RRP): consumes Attestation Results to make an authorization decision; in the context of this document, the authorization decision pertains to issuing new or releasing existing credentials to the Attester</t>
</list></t>

</section>
<section anchor="tacra-entities"><name>TACRA Entities</name>

<t><list style="symbols">
  <t>CAS: Credential Acquisition System</t>
  <t>RATS-Unaware Relying Party (RUP): authenticates the Attester using credentials issued by or retrieved from the RRP</t>
</list></t>

</section>
<section anchor="est-entities"><name>EST Entities</name>

<t><list style="symbols">
  <t>EST Client: TACRA CAS Client for EST.
Renders Attester payloads as EST requests, and EST Server responses as payloads to the Attester.</t>
  <t>EST Server: TACRA CAS Server for EST.
Forwards Freshness Handles, Evidence, Attestation Results, CSRs, and encrypted material between the EST Client, the Verifier, and a RATS Relying Party (Credential Authority or Secret Vault).</t>
</list></t>

</section>
<section anchor="artifacts"><name>Artifacts</name>

<t><list style="symbols">
  <t>Evidence: attestation evidence produced by the Attester</t>
  <t>Attestation Results: RATS Verifier output</t>
  <t>CSR: PKCS#10 certification request</t>
  <t>PoP: proof-of-possession of the private key corresponding to the CSR public key</t>
  <t>CEK: Credential Encryption Key; when used, CEKpub is carried in Evidence, the response is encrypted to CEKpub</t>
  <t>Credential Bundle: the plaintext the Secret Vault seals (Section "Sealing the Released Credential" of <xref target="TACRA"/>): credential items with their attributes, and metadata</t>
  <t>Container: the sealed object that carries a Credential Bundle to the Attester, the EncryptedCredentialBundle of that section, which this profile returns as the response of <spanx style="verb">attest-retrieve</spanx> (<xref target="bundle"/>)</t>
  <t>Credential Hint: optional, implementation-defined information supplied by the Attester about the credential it expects.
The Credential Authority or Secret Vault <bcp14>MAY</bcp14> use the hint, ignore it, or reject the request.
The hint does not authorize issuance or release.</t>
  <t>Freshness Kind: the recency method, one of <spanx style="verb">absent-timestamp</spanx>, <spanx style="verb">absent-none</spanx>, <spanx style="verb">absent-epoch</spanx>, <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx> (<xref target="TACRA"/>)</t>
  <t>Freshness Handle: the value <spanx style="verb">attest-initiate</spanx> returns for <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx> (<xref target="TACRA"/>, <xref target="INTERACTION-MODELS"/>)</t>
  <t>Freshness element: the octets the binding digest covers (<xref target="TACRA"/>): the Freshness Handle, the Attester's timestamp, a locally held epoch marker, or nothing for <spanx style="verb">absent-none</spanx>.
On <spanx style="verb">attest-enroll</spanx> and <spanx style="verb">attest-retrieve</spanx> it is the <spanx style="verb">handle</spanx> member, when present</t>
</list></t>

</section>
</section>
<section anchor="architecture"><name>Architecture</name>

<t>The EST encoding is the same in the Passport model and in the Background Check model.
The Attester does not talk to the Verifier and does not hold Attestation Results (Design Goal 8 of <xref target="TACRA"/>).
This profile uses the names of <xref target="TACRA"/>:</t>

<t><list style="symbols">
  <t>Passport: the EST Server forwards Evidence to the Verifier and forwards the Attestation Results to the Credential Authority or Secret Vault.</t>
  <t>Background Check: the EST Server forwards Evidence to the Credential Authority or Secret Vault, which obtains the Attestation Results by contacting the Verifier itself.</t>
</list></t>

<t>In <xref target="RFC9334"/>, the Passport model is where the Attester obtains the Attestation Results from the Verifier and sends them to the Relying Party.
Under TACRA, the Attester always uses the Background Check model.
The difference between the two models is whether the EST Server or the RATS Relying Party obtains the Attestation Results from the Verifier.
Who originates a Freshness Handle, the Verifier or the RATS Relying Party, is independent of that split (<xref target="TACRA"/>).
Only the Passport model is illustrated.</t>

<t>Both models use two EST legs: optional <spanx style="verb">attest-initiate</spanx> (<xref target="attest-initiate"/>), followed by either <spanx style="verb">attest-enroll</spanx> (<xref target="attest-enroll"/>) or <spanx style="verb">attest-retrieve</spanx> (<xref target="attest-retrieve"/>).
Note that <spanx style="verb">attest-initiate</spanx> is optional: in cases where the Attester can know with certainty which Freshness Kind to use (and that the Freshness Kind is not either <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx>), whether to ask for new or existing credentials, as well as which ciphers the RRP expects, it can be omitted.</t>

<t>Neither EST Client nor EST Server has a RATS role.
Both are subject to the following restrictions:</t>

<t><list style="symbols">
  <t><bcp14>MUST NOT</bcp14> generate keys, Evidence, or CSRs</t>
  <t><bcp14>MUST NOT</bcp14> mint <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx> Freshness Handles</t>
  <t><bcp14>MUST NOT</bcp14> appraise Evidence or Attestation Results</t>
  <t><bcp14>MUST NOT</bcp14> authorize credential issuance or release.
Correlating a Handle with the <spanx style="verb">attest-initiate</spanx> that returned it is not authorization.
Deciding on the Credential Type or the Credential Hint is, and belongs to the RATS Relying Party.</t>
</list></t>

<section anchor="attested-enrollment-mode"><name>Attested Enrollment Mode</name>

<figure title="Attested Enrollment Mode (Passport)" anchor="fig-enroll"><artwork type="ascii-art"><![CDATA[
                                                       +----------+
                                                       | Verifier |
                                                       +----^-----+
+----------+ (1) +-------------+ (2) +------------+  (3,6)  |
| Attester +-----> EST Client  +-----> EST Server +---------+
+----------+ (4) +-------------+ (5) +------------+   (7)   |
                                                      +-----v------+
                                                      | Credential |
                                                      | Authority  |
                                                      +------------+
]]></artwork></figure>

<t><list style="numbers" type="1">
  <t>Attester initiates Remote Attestation</t>
  <t>EST Client forwards to EST Server (<spanx style="verb">attest-initiate</spanx>)</t>
  <t>If Freshness is required: EST Server obtains Freshness from the Verifier or RATS Relying Party and returns it via the EST Client</t>
  <t>Attester generates CSK, CSR, and Evidence bound to the CSR and Freshness</t>
  <t>EST Client POSTs CSR and Evidence (<spanx style="verb">attest-enroll</spanx>)</t>
  <t>EST Server forwards Evidence to the Verifier</t>
  <t>EST Server forwards CSR and Attestation Results to the Credential Authority, which verifies PoP and authorizes issuance; the credential is returned to the Attester via the EST Client</t>
</list></t>

</section>
<section anchor="attested-retrieval-mode"><name>Attested Retrieval Mode</name>

<figure title="Attested Retrieval Mode (Passport)" anchor="fig-retrieve"><artwork type="ascii-art"><![CDATA[
                                                       +----------+
                                                       | Verifier |
                                                       +----^-----+
+----------+ (1) +-------------+ (2) +------------+  (3,6)  |
| Attester +-----> EST Client  +-----> EST Server +---------+
+----------+ (4) +-------------+ (5) +------------+   (7)   |
                                                       +----v-----+
                                                       |  Secret  |
                                                       |  Vault   |
                                                       +----------+
]]></artwork></figure>

<t><list style="numbers" type="1">
  <t>Attester initiates Remote Attestation</t>
  <t>EST Client forwards to EST Server (<spanx style="verb">attest-initiate</spanx>)</t>
  <t>If Freshness is required: EST Server obtains Freshness from the Verifier or RATS Relying Party and returns it via the EST Client</t>
  <t>Attester generates CEK and Evidence including CEKpub, bound to Freshness</t>
  <t>EST Client POSTs Evidence (<spanx style="verb">attest-retrieve</spanx>)</t>
  <t>EST Server forwards Evidence to the Verifier</t>
  <t>EST Server forwards Attestation Results to the Secret Vault, which seals the matching Credential Bundle to CEKpub in a container.
  The EST Server, through the EST Client, returns that container to the Attester, which checks it and decrypts it with CEKpri.</t>
</list></t>

</section>
</section>
<section anchor="protocol-overview"><name>Protocol Overview</name>

<t>Three new EST operations are added under the EST well-known prefix (Section 3.2.2 of <xref target="RFC7030"/>):</t>

<t><list style="numbers" type="1">
  <t><spanx style="verb">/.well-known/est/attest-initiate</spanx></t>
  <t><spanx style="verb">/.well-known/est/attest-enroll</spanx></t>
  <t><spanx style="verb">/.well-known/est/attest-retrieve</spanx></t>
</list></t>

<t>They sit beside the operations of <xref target="RFC7030"/>.
An EST Server that uses the optional path segment of Section 3.2.2 of <xref target="RFC7030"/>, <spanx style="verb">/.well-known/est/arbitraryLabel1/simpleenroll</spanx> for instance, <bcp14>MUST</bcp14> offer the <spanx style="verb">attest-*</spanx> operations under that segment as well, <spanx style="verb">/.well-known/est/arbitraryLabel1/attest-initiate</spanx> and likewise for the other two.
As that section requires, it serves them without the segment too.
The label <bcp14>MUST NOT</bcp14> be <spanx style="verb">attest-initiate</spanx>, <spanx style="verb">attest-enroll</spanx> or <spanx style="verb">attest-retrieve</spanx>.
The segment selects the Credential Authority or Secret Vault the EST Server uses, as it selects a CA in <xref target="RFC7030"/>.
It is not the Target, which stays the <spanx style="verb">target</spanx> query parameter or member (<xref target="TACRA"/>).
For <spanx style="verb">attest-*</spanx> the client uses the same segment it uses for <spanx style="verb">simpleenroll</spanx> at that issuer.
Example exchanges are in <xref target="examples"/>.
They support TACRA Initiate-Credential-Acquisition, Enroll-Credential, and Retrieve-Credential <xref target="TACRA"/> commands, encoded with EST semantics.</t>

<t>All exchanges <bcp14>MUST</bcp14> use HTTPS as required by <xref target="RFC7030"/>.
EST Server authentication via TLS is <bcp14>REQUIRED</bcp14>.</t>

</section>
<section anchor="resources-and-methods"><name>Resources and Methods</name>

<section anchor="attest-initiate"><name>attest-initiate</name>

<t>The first leg of both modes is where the Attester initiates Remote Attestation by invoking the EST Client.</t>

<t><list style="symbols">
  <t>Method: GET</t>
  <t>Request: no body; query parameters <spanx style="verb">target</spanx> (<bcp14>REQUIRED</bcp14>) and <spanx style="verb">credential_type</spanx> and <spanx style="verb">credential_hint</spanx> (<bcp14>OPTIONAL</bcp14>)</t>
  <t>Success: 200 OK</t>
  <t>Response: AttestationInitiationResponse (<xref target="initiation-response"/>): Freshness kind, Credential Acquisition Mode (<spanx style="verb">enroll</spanx> or <spanx style="verb">retrieve</spanx>), acceptable ciphers</t>
  <t>Error: 400 when <spanx style="verb">target</spanx> is absent or <spanx style="verb">credential_type</spanx> is not a token of <xref target="credential-type"/>, 404 when the EST Server does not serve that Target, 403 when the RATS Relying Party does not serve that Credential Type for it, 400 or 403 for a Credential Hint the policy does not know or denies (<xref target="errors"/>)</t>
</list></t>

<t>Query parameters:</t>

<t><list style="symbols">
  <t><spanx style="verb">target</spanx>: the Target of Initiate-Credential-Acquisition (Section 5.1 of <xref target="TACRA"/>), an octet string.
In this profile a configured name is UTF-8 in Normalization Form C (<xref target="RFC5198"/>), a URI for instance.
The client percent-encodes that string in the query.
The EST Server decodes it and compares the octets.</t>
  <t><spanx style="verb">credential_type</spanx>: the Credential Type the Attester plans to use with this Target (<xref target="credential-type"/>).
If omitted, the EST Server returns the mode and algorithms its policy sets for the Target.
The second leg then <bcp14>MAY</bcp14> omit <spanx style="verb">credential_type</spanx> or name the Credential Type those imply.
When <spanx style="verb">attest-initiate</spanx> named one, the second leg of the same <spanx style="verb">present-nonce</spanx> exchange <bcp14>MUST</bcp14> name the same token (<xref target="enrollment-processing"/>, <xref target="retrieval-processing"/>).</t>
  <t><spanx style="verb">credential_hint</spanx>: the Credential Hint of Initiate-Credential-Acquisition (Section 5.1 of <xref target="TACRA"/>).
The client percent-encodes the string in the query, as for <spanx style="verb">target</spanx>.
If omitted, the second leg <bcp14>MAY</bcp14> omit <spanx style="verb">credential_hint</spanx> or name one.
When <spanx style="verb">attest-initiate</spanx> named one, the second leg of the same <spanx style="verb">present-nonce</spanx> exchange <bcp14>MUST</bcp14> name the same string (<xref target="enrollment-processing"/>, <xref target="retrieval-processing"/>).</t>
  <t>If the EST Client already knows all the information the Attester needs to proceed, i.e., it is already configured for an absent Freshness kind (<spanx style="verb">absent-timestamp</spanx>, <spanx style="verb">absent-none</spanx>, or <spanx style="verb">absent-epoch</spanx>), and it knows what Credential Acquisition Mode is expected, and which ciphers to use, it <bcp14>MAY</bcp14> complete <spanx style="verb">attest-initiate</spanx> locally and, in that case, <bcp14>MUST NOT</bcp14> contact the EST Server.</t>
  <t>The EST Server, if contacted, obtains the Freshness Kind and Handle, if any, from the configured Verifier or RATS Relying Party and returns that result.</t>
  <t>For <spanx style="verb">present-nonce</spanx>, that GET returns a single-use Handle its originator minted, and the EST Server records it for the correlation of <xref target="enrollment-processing"/> and <xref target="retrieval-processing"/>, as the nonce resource of <xref target="ATTESTATION-FRESHNESS"/> associates its nonce with the next request (<xref target="relationship"/>).</t>
  <t><spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx> <bcp14>MUST</bcp14> include a Freshness Handle from the party chosen by the EST Server.
<spanx style="verb">absent-*</spanx> Freshness Kinds carry no Freshness Handle.</t>
  <t>The EST Client forwards the response to the Attester.</t>
  <t>The Attester produces Evidence as the Freshness Kind requires.</t>
  <t>The EST Client then POSTs <spanx style="verb">attest-enroll</spanx> or <spanx style="verb">attest-retrieve</spanx> as the Attester indicates.</t>
</list></t>

<t>A Credential Authority or Secret Vault issues or releases credentials for a Target per its policy for that Target, since the Target only recognizes credentials from an issuer it already trusts.
The Target itself takes no part in this profile: it is the RATS-unaware Relying Party of <xref target="TACRA"/>, named in the request and in the binding.
If the second leg fails because a <spanx style="verb">present-epoch</spanx> moved or a <spanx style="verb">present-nonce</spanx> is no longer valid, the Attester retries <spanx style="verb">attest-initiate</spanx>.</t>

</section>
<section anchor="attest-enroll"><name>attest-enroll</name>

<t><list style="symbols">
  <t>Method: POST</t>
  <t>Request: AttestedEnrollmentRequest (<xref target="enrollment-request"/>): CSR and Evidence</t>
  <t>Success: 200 OK</t>
  <t>Response: enrollment response as for simpleenroll (Section 4.2.3 of <xref target="RFC7030"/>)</t>
</list></t>

</section>
<section anchor="attest-retrieve"><name>attest-retrieve</name>

<t><list style="symbols">
  <t>Method: POST</t>
  <t>Request: AttestedRetrievalRequest (<xref target="retrieval-request"/>): CEKpub and Evidence</t>
  <t>Success: 200 OK</t>
  <t>Response: EncryptedCredentialBundle (<xref target="bundle"/>)</t>
</list></t>

</section>
</section>
<section anchor="relationship"><name>Relationship to Other LAMPS Work</name>

<t>Two LAMPS documents cover parts of the exchange defined here.</t>

<t><xref target="ATTESTATION-FRESHNESS"/> defines a nonce request and response for certificate management protocols, including an EST resource at <spanx style="verb">/.well-known/est/nonce</spanx> (GET, or POST with <spanx style="verb">application/est-attestation-freshness+json</spanx>) whose response carries a <spanx style="verb">nonce</spanx> of 8 to 64 bytes and an <bcp14>OPTIONAL</bcp14> <spanx style="verb">expiry</spanx> in seconds (Section 5.1 of <xref target="ATTESTATION-FRESHNESS"/>).
<spanx style="verb">attest-initiate</spanx> (<xref target="attest-initiate"/>) is the first leg that returns the Freshness Handle: such a nonce for <spanx style="verb">present-nonce</spanx>, the current epoch marker for <spanx style="verb">present-epoch</spanx>, and none for the <spanx style="verb">absent-*</spanx> kinds.
It returns in addition the Freshness Kind itself, the Credential Acquisition Mode and the acceptable CSK or CEK algorithms (<xref target="initiation-response"/>), none of which the nonce resource carries.
A <spanx style="verb">present-nonce</spanx> Handle of this profile is a nonce as <xref target="TACRA"/> specifies: 16 to 64 octets, at least 128 bits of entropy, issued once and not reused.
That range lies within the 8 to 64 octets of Section 5.1 of <xref target="ATTESTATION-FRESHNESS"/>.
<spanx style="verb">expires_in</spanx> is that document's <spanx style="verb">expiry</spanx>.
That section requires the server to associate the nonce with the subsequent request.
This profile does so by correlating the Handle with the <spanx style="verb">attest-initiate</spanx> that returned it, in the server processing of both modes, and by the RATS Relying Party's recomputation of the digest that carries the Handle (<xref target="est-binding"/>).
It does not use a TLS session or a cookie for that: either would bind the EST Client, the conduit, and not the Attester.
A request of this profile takes no nonce length: the Handle reaches the Evidence through the digest, so no platform needs a Handle of a particular size.
An EST Server <bcp14>MAY</bcp14> offer both resources.
They are not interchangeable: a nonce returned by the nonce resource is not a Freshness Handle of this profile, and <spanx style="verb">attest-enroll</spanx> and <spanx style="verb">attest-retrieve</spanx> take a Handle from <spanx style="verb">attest-initiate</spanx>, or none for the <spanx style="verb">absent-*</spanx> kinds.</t>

<t><xref target="CSR-ATTEST"/> conveys attestations inside the CSR, in its <spanx style="verb">id-aa-attestation</spanx> attribute.
It makes the Certification Authority or Registration Authority that processes the CSR responsible for ensuring that the binding between those attestations and the CSR's public key has been validated (Section 6.1 of <xref target="CSR-ATTEST"/>).
This profile conveys the Evidence that carries the binding of <xref target="TACRA"/> beside the CSR, in the AttestedEnrollmentRequest (<xref target="enrollment-request"/>).
That Evidence is produced over the digest of <xref target="est-binding"/>, which includes the finished CSR, so it cannot travel inside it, and <xref target="CSR-ATTEST"/> does not replace it.
Evidence beside the CSR is what this profile requires.
Attestations in the CSR as well, per <xref target="CSR-ATTEST"/>, are a second attestation, optional, about properties of the CSR key that this digest does not prove, under the rules of <xref target="TACRA"/> and of Section 6.1 of <xref target="CSR-ATTEST"/>.
Whether a Credential Authority requires them is agreed out of band.
This choice is specific to Enrollment; Retrieval has no CSR and binds Evidence to CEKpub (<xref target="evidence-to-cek"/>).</t>

</section>
<section anchor="media-types"><name>Media Types and Encodings</name>

<t>The messages of the <spanx style="verb">attest-*</spanx> resources are JSON (<xref target="RFC8259"/>), as defined in CDDL (<xref target="RFC8610"/>) in <xref target="cddl"/>; implementations <bcp14>MUST</bcp14> support this encoding.
A CBOR encoding, for EST over secure CoAP (<xref target="RFC9148"/>), is left for future work.
Evidence is an opaque byte string.</t>

<t>As each EST message type has its own media type (Section 3.2.4 of <xref target="RFC7030"/>), so does each JSON message of the <spanx style="verb">attest-*</spanx> resources (<xref target="iana"/>):</t>

<texttable title="Media types of the attest-* messages">
      <ttcol align='left'>Resource</ttcol>
      <ttcol align='left'>Request</ttcol>
      <ttcol align='left'>Response</ttcol>
      <c><spanx style="verb">attest-initiate</spanx></c>
      <c>none: a GET, query string, no body</c>
      <c><spanx style="verb">application/est-attest-initiate+json</spanx></c>
      <c><spanx style="verb">attest-enroll</spanx></c>
      <c><spanx style="verb">application/est-attest-enroll+json</spanx></c>
      <c><spanx style="verb">application/pkcs7-mime; smime-type=certs-only</spanx>, as simpleenroll</c>
      <c><spanx style="verb">attest-retrieve</spanx></c>
      <c><spanx style="verb">application/est-attest-retrieve+json</spanx></c>
      <c><spanx style="verb">application/est-attest-bundle+json</spanx></c>
</texttable>

<t>A client <bcp14>MUST</bcp14> send a POST of the resource's media type.
An <spanx style="verb">attest-initiate</spanx> GET has no body; the client <bcp14>SHOULD</bcp14> set Accept to <spanx style="verb">application/est-attest-initiate+json</spanx>.
An <spanx style="verb">attest-initiate</spanx> GET for <spanx style="verb">present-nonce</spanx> is not idempotent: each one returns a Handle its originator issued anew, as the nonce resource of <xref target="ATTESTATION-FRESHNESS"/> does.
An EST Server responds to a request of another media type with 415 (Unsupported Media Type) and <bcp14>SHOULD</bcp14> name the resource's media type in an Accept header field (Section 15.5.16 of <xref target="RFC9110"/>).</t>

<section anchor="cddl"><name>Message Definitions</name>

<t>In the definitions below, a byte string is carried as a text string holding its unpadded base64url encoding (Section 5 of <xref target="RFC4648"/>), as the control operator <spanx style="verb">.b64u</spanx> defines it (Section 2.1 of <xref target="RFC9741"/>): only characters of the base64url alphabet, no padding, and the bits that encode no octet set to zero.
The group choices tie each member to the Freshness Kinds and modes its description below names: in a response, <spanx style="verb">handle</spanx> and <spanx style="verb">expires_in</spanx> to <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx>, <spanx style="verb">max_age</spanx> to <spanx style="verb">absent-timestamp</spanx>, <spanx style="verb">acceptable_csk</spanx> to <spanx style="verb">enroll</spanx> and <spanx style="verb">acceptable_cek</spanx> to <spanx style="verb">retrieve</spanx>; in a request, <spanx style="verb">handle</spanx> to every Freshness Kind but <spanx style="verb">absent-none</spanx>.
The container of <spanx style="verb">attest-retrieve</spanx> is the <spanx style="verb">encrypted-credential-bundle</spanx> of <xref target="TACRA"/>, with its plaintext, and is not repeated here.</t>

<figure><sourcecode type="cddl"><![CDATA[
; The JSON messages of the attest-* resources (RFC 8610; RFC 8259).
; A byte string is carried as a text string holding its unpadded
; base64url encoding (RFC 4648, Section 5), as the control .b64u of
; RFC 9741 defines.

attestation-initiation-response = {
  initiation-freshness,
  initiation-mode,
  ? acceptable_evidence: [+ text],
}

initiation-freshness = (
  freshness_kind: "present-nonce",
  handle: text .b64u (bytes .size (16..64)),
  ? expires_in: uint,
//
  freshness_kind: "present-epoch",
  handle: text .b64u (bytes .size (8..64)),
  ? expires_in: uint,
//
  freshness_kind: "absent-timestamp",
  ? max_age: uint,
//
  freshness_kind: "absent-epoch" / "absent-none",
)

initiation-mode = (
  mode: "enroll",
  acceptable_csk: [+ text],
//
  mode: "retrieve",
  acceptable_cek: [+ text],
)

attested-enrollment-request = {
  request-common,
  request-freshness,
  csr: text .b64u bytes,
}

attested-retrieval-request = {
  request-common,
  request-freshness,
  cek_pub: text .b64u bytes,
}

request-common = (
  target: text,
  ? credential_type: text,
  evidence: text .b64u bytes,
  ? profile: text,
  binding: binding,
  ? credential_hint: text,
)

request-freshness = (
  freshness_kind: "absent-none"
//
  freshness_kind: "absent-timestamp",
  handle: text .b64u (bytes .size 8),
//
  freshness_kind: "absent-epoch" / "present-epoch",
  handle: text .b64u (bytes .size (8..64)),
//
  freshness_kind: "present-nonce",
  handle: text .b64u (bytes .size (16..64)),
)

binding = {
  method: "binding-input",
  hash: "sha512",
}
]]></sourcecode></figure>

</section>
</section>
<section anchor="common-structures"><name>Common Structures</name>

<section anchor="initiation-response"><name>AttestationInitiationResponse</name>

<t>Fields:</t>

<t><list style="symbols">
  <t><spanx style="verb">freshness_kind</spanx> (string, <bcp14>REQUIRED</bcp14>): one of the Freshness Kinds of <xref target="TACRA"/>
  <list style="symbols">
      <t><spanx style="verb">absent-timestamp</spanx>: stamp Evidence from a trusted clock</t>
      <t><spanx style="verb">absent-none</spanx>: no freshness claim</t>
      <t><spanx style="verb">absent-epoch</spanx>: embed an epoch marker already held locally</t>
      <t><spanx style="verb">present-nonce</spanx>: single-use Freshness Handle; embed it in Evidence</t>
      <t><spanx style="verb">present-epoch</spanx>: current epoch marker as Freshness Handle; embed it in Evidence; retry <spanx style="verb">attest-initiate</spanx> if the epoch moved</t>
    </list></t>
  <t><spanx style="verb">handle</spanx> (bytes, 16 to 64 octets for <spanx style="verb">present-nonce</spanx>, 8 to 64 for <spanx style="verb">present-epoch</spanx>): Freshness Handle, <bcp14>REQUIRED</bcp14> for <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx>, and <bcp14>MUST</bcp14> be absent otherwise (<xref target="attest-initiate"/>).
A <spanx style="verb">present-nonce</spanx> Handle is a nonce as <xref target="TACRA"/> specifies: 16 to 64 octets, at least 128 bits of entropy, issued once and not reused.</t>
  <t><spanx style="verb">expires_in</spanx> (integer, <bcp14>OPTIONAL</bcp14>): seconds until a <spanx style="verb">present-nonce</spanx> or <spanx style="verb">present-epoch</spanx> Handle is no longer valid, the <spanx style="verb">expiry</spanx> of <xref target="ATTESTATION-FRESHNESS"/>.
The Handle originator <bcp14>SHOULD NOT</bcp14> set it below 60 seconds (<xref target="TACRA"/>).</t>
  <t><spanx style="verb">max_age</spanx> (integer, <bcp14>OPTIONAL</bcp14>): for <spanx style="verb">absent-timestamp</spanx>, the maximum Evidence age in seconds acceptable to the Verifier or RATS Relying Party</t>
  <t><spanx style="verb">mode</spanx> (string, <bcp14>REQUIRED</bcp14>): <spanx style="verb">enroll</spanx> or <spanx style="verb">retrieve</spanx></t>
  <t><spanx style="verb">acceptable_cek</spanx> (array, <bcp14>REQUIRED</bcp14> when <spanx style="verb">mode</spanx> is <spanx style="verb">retrieve</spanx> and absent otherwise): the CEK suites the Secret Vault accepts, tokens of <xref target="alg-tokens"/>, at least one</t>
  <t><spanx style="verb">acceptable_csk</spanx> (array, <bcp14>REQUIRED</bcp14> when <spanx style="verb">mode</spanx> is <spanx style="verb">enroll</spanx> and absent otherwise): the CSK algorithms the Credential Authority accepts, tokens of <xref target="alg-tokens"/>, at least one</t>
  <t><spanx style="verb">acceptable_evidence</spanx> (array, <bcp14>OPTIONAL</bcp14>): the Evidence formats the EST Server forwards, each named by its media type (<xref target="alg-tokens"/>).
A request of the second leg <bcp14>MUST</bcp14> name the format of its Evidence in <spanx style="verb">profile</spanx>, one of them.
When the list is absent, or <spanx style="verb">attest-initiate</spanx> was completed locally, the EST Client sends no <spanx style="verb">profile</spanx></t>
</list></t>

<t>For <spanx style="verb">present-nonce</spanx>, the Freshness Handle originator <bcp14>MUST</bcp14> ensure uniqueness and <bcp14>MUST</bcp14> correlate the second-leg request with the Handle from this <spanx style="verb">attest-initiate</spanx>.
For <spanx style="verb">present-epoch</spanx>, it checks that the Handle is still the current epoch marker (<xref target="TACRA"/>).
The Verifier appraises whether Evidence is bound to a still-valid Freshness Handle.</t>

</section>
<section anchor="est-binding"><name>The Binding in This Profile</name>

<t>This profile uses the digest of Section "Binding Credential Keys to Evidence" of <xref target="TACRA"/>.
The Attester writes that digest into the freshness input of its Evidence, the Direct form of that section.
The Verifier reports the value it read.
The Credential Authority or the Secret Vault recomputes the digest from the request and refuses the request with 400 Bad Request unless the two are equal.</t>

<t>The three octet strings of that construction are, in this profile:</t>

<t><list style="symbols">
  <t><spanx style="verb">freshness</spanx>: the freshness element of the request, the octets of <spanx style="verb">handle</spanx>.
For <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx> that is the Freshness Handle <spanx style="verb">attest-initiate</spanx> returned.
For <spanx style="verb">absent-epoch</spanx> it is the epoch marker the Attester holds.
For <spanx style="verb">absent-timestamp</spanx> it is the Attester's timestamp, 8 octets, as <xref target="TACRA"/> encodes it.
For <spanx style="verb">absent-none</spanx> it is empty, and <spanx style="verb">handle</spanx> is absent.</t>
  <t><spanx style="verb">target</spanx>: the octets of the <spanx style="verb">target</spanx> member, the Target octet string of <xref target="TACRA"/>, neither recoded nor normalized.
The member carries the same string as the Target of the <spanx style="verb">attest-initiate</spanx>, on the wire or completed locally.</t>
  <t><spanx style="verb">subject</spanx>: for Enrollment, the DER encoding of the PKCS#10 CSR, the octets of <spanx style="verb">csr</spanx>.
For Retrieval, CEKpub as the request carries it, the octets of <spanx style="verb">cek_pub</spanx>, in the encoding of its KEM in Section "Sealing the Released Credential" of <xref target="TACRA"/>.</t>
</list></t>

<t>The digest is SHA-512, as <xref target="TACRA"/> sets for a freshness input of 64 octets, which REPORT_DATA of AMD SEV-SNP and REPORTDATA of Intel TDX are.
A platform whose freshness input is not 64 octets is outside this document's mandatory method.</t>

<t>The <spanx style="verb">binding</spanx> object (<xref target="cddl"/>) carries no octets of its own.
It names the method and the hash:</t>

<t><list style="symbols">
  <t><spanx style="verb">method</spanx> (string, <bcp14>REQUIRED</bcp14>): <spanx style="verb">binding-input</spanx>, the construction above and the only method this document defines.</t>
  <t><spanx style="verb">hash</spanx> (string, <bcp14>REQUIRED</bcp14>): <spanx style="verb">sha512</spanx>.</t>
</list></t>

<t>A Credential Authority or Secret Vault that does not recognize <spanx style="verb">method</spanx> refuses the request with 400 Bad Request.</t>

</section>
<section anchor="credential-type"><name>Credential Type Tokens</name>

<t><spanx style="verb">credential_type</spanx>, on <spanx style="verb">attest-initiate</spanx> and in both requests, takes one of the Credential Type tokens of <xref target="TACRA"/>, which this profile uses as follows:</t>

<t><list style="symbols">
  <t><spanx style="verb">x509</spanx>: an X.509 certificate (<xref target="RFC5280"/>).
Enrollment mints one.
Retrieval <bcp14>MAY</bcp14> return one that was issued before.</t>
  <t><spanx style="verb">wic</spanx>: a WIMSE Workload Identity Certificate (Section 6.1 of <xref target="WIMSE"/>), an X.509 certificate whose Workload Identifier is its one URI SubjectAltName.
Enrollment mints one, and the Credential Authority sets the Workload Identifier under its policy, as it sets the subject names of any certificate it issues.
Retrieval <bcp14>MAY</bcp14> return one that was issued before.</t>
  <t><spanx style="verb">wit</spanx>: a WIMSE Workload Identity Token (<xref target="WIMSE"/>).
Retrieval only.</t>
  <t><spanx style="verb">jwt</spanx>: a JSON Web Token used as a bearer token (<xref target="RFC7519"/>).
Retrieval only.</t>
  <t><spanx style="verb">api-key</spanx>: an API key.
Retrieval only.</t>
  <t><spanx style="verb">psk</spanx>: a pre-shared symmetric key.
Retrieval only.</t>
  <t><spanx style="verb">private-key</spanx>: a private key shared by the instances of a replicated service.
Retrieval only, under the conditions of <xref target="security"/>.</t>
</list></t>

<t><spanx style="verb">attest-enroll</spanx> mints <spanx style="verb">x509</spanx> or <spanx style="verb">wic</spanx>.
A <spanx style="verb">credential_type</spanx> other than these on <spanx style="verb">attest-enroll</spanx> is a Credential Type the RATS Relying Party does not serve, and the EST Server refuses the request with 403 Forbidden (<xref target="errors"/>).
When <spanx style="verb">credential_type</spanx> is absent, on <spanx style="verb">attest-enroll</spanx> and on <spanx style="verb">attest-retrieve</spanx> alike, the client takes what the RATS Relying Party issues or releases under its policy.
A client that needs a Credential Type names it.
<spanx style="verb">attest-retrieve</spanx> <bcp14>MAY</bcp14> carry any token above.
The Secret Vault selects what it releases from the Attestation Results, its policy and the Credential Hint.
Where the request names a <spanx style="verb">credential_type</spanx>, it releases that Credential Type or refuses the request.
A Credential Type the RATS Relying Party does not serve is refused with 403 Forbidden, and the response names the Credential Types it serves for that <spanx style="verb">target</spanx> (<xref target="errors"/>).
A <spanx style="verb">credential_type</spanx> that is not a token of this section is refused with 400 Bad Request.</t>

</section>
<section anchor="alg-tokens"><name>Protocol Tokens</name>

<t><spanx style="verb">acceptable_csk</spanx>, <spanx style="verb">acceptable_cek</spanx> and <spanx style="verb">acceptable_evidence</spanx> are arrays of ASCII tokens, and <spanx style="verb">profile</spanx> is one such token.
This document defines them.
Further tokens, for other CSK algorithms, digests and freshness inputs, are left for a later revision.</t>

<t>CSK algorithms, for Enrollment:</t>

<t><list style="symbols">
  <t><spanx style="verb">ecdsa-p256-sha256</spanx>: ECDSA on P-256 with SHA-256, the signature of the CSR.
Implementations <bcp14>MUST</bcp14> support it.</t>
</list></t>

<t>CEK suites, for Retrieval: the HPKE suites of the container of <xref target="TACRA"/>, each named by its KEM, its KDF and its AEAD as the HPKE registries name them (<xref target="RFC9180"/>), joined with <spanx style="verb">+</spanx>:</t>

<t><list style="symbols">
  <t><spanx style="verb">DHKEM(P-256, HKDF-SHA256)+HKDF-SHA256+AES-256-GCM</spanx>: the mandatory suite of <xref target="TACRA"/>.
Implementations <bcp14>MUST</bcp14> support it.</t>
  <t><spanx style="verb">MLKEM768-P256+HKDF-SHA256+AES-256-GCM</spanx>: the suite with the hybrid KEM of <xref target="HPKE-PQ"/>, which a Secret Vault <bcp14>MAY</bcp14> offer where a released secret must stay confidential against a later quantum computer.</t>
</list></t>

<t>A Credential Authority or Secret Vault names in <spanx style="verb">acceptable_csk</spanx> or <spanx style="verb">acceptable_cek</spanx> the tokens it accepts, and the Attester generates its key for one of them.</t>

<t>Evidence formats: the media type of the Evidence, in the format the Verifier recognizes, for example <spanx style="verb">application/vnd.veraison.tsm-report+cbor</spanx>.</t>

<t>A client <bcp14>MUST NOT</bcp14> use a token the <spanx style="verb">attest-initiate</spanx> response did not list.
A client that completed <spanx style="verb">attest-initiate</spanx> locally uses the tokens its configuration names.</t>

</section>
</section>
<section anchor="attested-credential-acquisition-modes"><name>Attested Credential Acquisition Modes</name>

<section anchor="credential-enrollment-mode"><name>Credential Enrollment Mode</name>

<section anchor="enrollment-request"><name>Request: AttestedEnrollmentRequest</name>

<t>Fields:</t>

<t><list style="symbols">
  <t>target (string, <bcp14>REQUIRED</bcp14>): the Target of Enroll-Credential (Section 5.2 of <xref target="TACRA"/>)</t>
  <t>freshness_kind (string, <bcp14>REQUIRED</bcp14>): <bcp14>MUST</bcp14> match the preceding <spanx style="verb">attest-initiate</spanx> response, or the configuration under which the EST Client completed <spanx style="verb">attest-initiate</spanx> locally (<xref target="attest-initiate"/>)</t>
  <t>handle (bytes): the freshness element (<xref target="est-binding"/>) - <bcp14>REQUIRED</bcp14> when <spanx style="verb">freshness_kind</spanx> is not <spanx style="verb">absent-none</spanx> and <bcp14>MUST</bcp14> be absent otherwise.
For <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx> it <bcp14>MUST</bcp14> equal the Freshness Handle returned by <spanx style="verb">attest-initiate</spanx>.
For <spanx style="verb">absent-timestamp</spanx> it is the 8-octet timestamp and for <spanx style="verb">absent-epoch</spanx> the locally held epoch marker.
Its size is 16 to 64 octets for <spanx style="verb">present-nonce</spanx>, 8 to 64 for <spanx style="verb">present-epoch</spanx> and <spanx style="verb">absent-epoch</spanx>, and 8 for <spanx style="verb">absent-timestamp</spanx> (<xref target="cddl"/>).</t>
  <t>csr (bytes, <bcp14>REQUIRED</bcp14>): DER-encoded PKCS#10 CSR</t>
  <t>evidence (bytes, <bcp14>REQUIRED</bcp14>): <bcp14>MUST</bcp14> be bound to the Freshness returned by <spanx style="verb">attest-initiate</spanx>, if any</t>
  <t>profile (string, <bcp14>OPTIONAL</bcp14>): the media type of <spanx style="verb">evidence</spanx>, one of the <spanx style="verb">acceptable_evidence</spanx> of the <spanx style="verb">attest-initiate</spanx> (<xref target="initiation-response"/>).
It <bcp14>MUST</bcp14> be absent when that response carried no <spanx style="verb">acceptable_evidence</spanx> or <spanx style="verb">attest-initiate</spanx> was completed locally, and <bcp14>MUST</bcp14> be one of the listed tokens otherwise.
The EST Server refuses another value with 415 Unsupported Media Type, as a format it does not accept.
If absent, the EST Server forwards the Evidence as it is, and the Verifier recognizes its format.
A format the EST Server does not accept is refused with 415 Unsupported Media Type.</t>
  <t>binding (object, <bcp14>REQUIRED</bcp14>): declares how the CSR key is bound to Evidence</t>
  <t>credential_type (string, <bcp14>OPTIONAL</bcp14>): <spanx style="verb">x509</spanx> or <spanx style="verb">wic</spanx> (<xref target="credential-type"/>).
If absent, the client takes what the Credential Authority mints.
When the <spanx style="verb">attest-initiate</spanx> of a <spanx style="verb">present-nonce</spanx> exchange named a <spanx style="verb">credential_type</spanx>, this member <bcp14>MUST</bcp14> carry the same token (<xref target="enrollment-processing"/>).</t>
  <t>credential_hint (string, <bcp14>OPTIONAL</bcp14>): Credential Hint supplied by the Attester; the Credential Authority <bcp14>MAY</bcp14> use it, ignore it, or reject the request.
When the <spanx style="verb">attest-initiate</spanx> of a <spanx style="verb">present-nonce</spanx> exchange named a <spanx style="verb">credential_hint</spanx>, this member <bcp14>MUST</bcp14> carry the same string (<xref target="enrollment-processing"/>).</t>
</list></t>

</section>
<section anchor="response-success"><name>Response (Success)</name>

<t>On success, the EST Server returns the enrollment response produced by the Credential Authority, as for simpleenroll in <xref target="RFC7030"/>.</t>

</section>
<section anchor="key-binding"><name>Key Binding and PoP Requirements</name>

<t><list style="numbers" type="1">
  <t>PoP: The Credential Authority <bcp14>MUST</bcp14> verify possession of the CSR private key.</t>
  <t>Evidence-to-CSR, Evidence-to-Target and Evidence-to-Freshness: the Evidence <bcp14>MUST</bcp14> carry the digest of <xref target="est-binding"/>, the binding of Section "Binding Credential Keys to Evidence" of <xref target="TACRA"/>, with the DER-encoded CSR as its subject.
  As that section requires, the Verifier reports the bound value in the Attestation Results, and the Credential Authority recomputes it from the request and refuses the request with 400 Bad Request on a mismatch.
  A substituted CSR, Target or freshness element fails that check.</t>
</list></t>

<t>The <spanx style="verb">binding</spanx> object (<xref target="cddl"/>) is as <xref target="est-binding"/> defines it.</t>

</section>
<section anchor="enrollment-processing"><name>Enrollment Server Processing</name>

<t>Upon receiving AttestedEnrollmentRequest, the EST Server <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Validate syntax, media type, and size limits.</t>
  <t>Check that a Credential Authority serves this <spanx style="verb">target</spanx> and <spanx style="verb">credential_type</spanx>, and that the <spanx style="verb">mode</spanx> the EST Server's configuration sets for them, which <spanx style="verb">attest-initiate</spanx> reports (<xref target="initiation-response"/>), is <spanx style="verb">enroll</spanx>.
  Refuse the request with 400 Bad Request when a Secret Vault serves them.</t>
  <t>For <spanx style="verb">present-nonce</spanx>, correlate <spanx style="verb">handle</spanx> with the <spanx style="verb">attest-initiate</spanx> that returned it.
  Refuse the request with 400 Bad Request when no <spanx style="verb">attest-initiate</spanx> returned this Handle, when it has expired or was used before, or when its <spanx style="verb">target</spanx> or <spanx style="verb">freshness_kind</spanx> differ from the corresponding <spanx style="verb">attest-initiate</spanx>.
  Refuse it likewise when that <spanx style="verb">attest-initiate</spanx> named a <spanx style="verb">credential_type</spanx> and the request omits it or names another token, or named a <spanx style="verb">credential_hint</spanx> and the request omits it or names another string.
  A request <bcp14>MAY</bcp14> name a <spanx style="verb">credential_type</spanx> its <spanx style="verb">attest-initiate</spanx> omitted, the one the mode and the algorithms returned imply.
  A request <bcp14>MAY</bcp14> name a <spanx style="verb">credential_hint</spanx> its <spanx style="verb">attest-initiate</spanx> omitted.
  A <spanx style="verb">present-nonce</spanx> Handle is single-use.
  For <spanx style="verb">present-epoch</spanx>, <spanx style="verb">handle</spanx> is the epoch marker that every <spanx style="verb">attest-initiate</spanx> of the epoch returned for this <spanx style="verb">target</spanx>, and it serves all requests during that epoch.
  Refuse the request with 400 Bad Request when the marker has moved.
  For the <spanx style="verb">absent-*</spanx> Freshness Kinds no Handle was returned, and the RATS Relying Party checks the freshness element under the Freshness Kind its policy sets for the Target (<xref target="TACRA"/>).
  For <spanx style="verb">present-epoch</spanx> and the <spanx style="verb">absent-*</spanx> Freshness Kinds the EST Server does not correlate <spanx style="verb">credential_type</spanx> or <spanx style="verb">credential_hint</spanx> and forwards them to the RATS Relying Party, which decides under its policy (<xref target="credential-type"/>).
  This correlation keeps the two legs of one exchange together at the EST Server.
  It is not authorization: the Credential Authority takes the Freshness Kind from its policy for the Target, recomputes the digest and decides (<xref target="TACRA"/>).</t>
  <t>Passport: forward Evidence to the Verifier and obtain Attestation Results.
  Background Check: skip this step; the Credential Authority obtains Attestation Results itself.</t>
  <t>Forward the CSR and Attestation Results (Passport) or the CSR and Evidence (Background Check) to the Credential Authority, which verifies PoP and authorizes issuance.</t>
  <t>Return the Credential Authority's enrollment response.</t>
</list></t>

<t>The Credential Authority <bcp14>MUST NOT</bcp14> mint identities (e.g., DNS names) beyond policy for the attested identity context.</t>

</section>
</section>
<section anchor="credential-retrieval-mode"><name>Credential Retrieval Mode</name>

<section anchor="retrieval-request"><name>Request: AttestedRetrievalRequest</name>

<t>Fields:</t>

<t><list style="symbols">
  <t>target (string, <bcp14>REQUIRED</bcp14>): the Target of Retrieve-Credential (Section 5.3 of <xref target="TACRA"/>)</t>
  <t>freshness_kind (string, <bcp14>REQUIRED</bcp14>): <bcp14>MUST</bcp14> match the preceding <spanx style="verb">attest-initiate</spanx> response, or the configuration under which the EST Client completed <spanx style="verb">attest-initiate</spanx> locally (<xref target="attest-initiate"/>)</t>
  <t>handle (bytes): the freshness element (<xref target="est-binding"/>) - <bcp14>REQUIRED</bcp14> when <spanx style="verb">freshness_kind</spanx> is not <spanx style="verb">absent-none</spanx> and <bcp14>MUST</bcp14> be absent otherwise.
For <spanx style="verb">present-nonce</spanx> and <spanx style="verb">present-epoch</spanx> it <bcp14>MUST</bcp14> equal the Freshness Handle returned by <spanx style="verb">attest-initiate</spanx>.
For <spanx style="verb">absent-timestamp</spanx> it is the 8-octet timestamp and for <spanx style="verb">absent-epoch</spanx> the locally held epoch marker.
Its size is 16 to 64 octets for <spanx style="verb">present-nonce</spanx>, 8 to 64 for <spanx style="verb">present-epoch</spanx> and <spanx style="verb">absent-epoch</spanx>, and 8 for <spanx style="verb">absent-timestamp</spanx> (<xref target="cddl"/>).</t>
  <t>evidence (bytes, <bcp14>REQUIRED</bcp14>) -- <bcp14>MUST</bcp14> include CEKpub; <bcp14>MUST</bcp14> be bound to the Freshness returned by <spanx style="verb">attest-initiate</spanx>, if any</t>
  <t>cek_pub (bytes, <bcp14>REQUIRED</bcp14>): CEKpub in the encoding of its KEM in Section "Sealing the Released Credential" of <xref target="TACRA"/>, to which the Secret Vault seals the bundle</t>
  <t>profile (string, <bcp14>OPTIONAL</bcp14>): the media type of <spanx style="verb">evidence</spanx>, one of the <spanx style="verb">acceptable_evidence</spanx> of the <spanx style="verb">attest-initiate</spanx> (<xref target="initiation-response"/>).
It <bcp14>MUST</bcp14> be absent when that response carried no <spanx style="verb">acceptable_evidence</spanx> or <spanx style="verb">attest-initiate</spanx> was completed locally, and <bcp14>MUST</bcp14> be one of the listed tokens otherwise.
The EST Server refuses another value with 415 Unsupported Media Type, as a format it does not accept.
If absent, the EST Server forwards the Evidence as it is, and the Verifier recognizes its format.
A format the EST Server does not accept is refused with 415 Unsupported Media Type.</t>
  <t>binding (object, <bcp14>REQUIRED</bcp14>): declares how CEKpub is bound to Evidence</t>
  <t>credential_type (string, <bcp14>OPTIONAL</bcp14>): one of the tokens of <xref target="credential-type"/>.
If absent, the client takes what the Secret Vault releases.
When the <spanx style="verb">attest-initiate</spanx> of a <spanx style="verb">present-nonce</spanx> exchange named a <spanx style="verb">credential_type</spanx>, this member <bcp14>MUST</bcp14> carry the same token (<xref target="retrieval-processing"/>).</t>
  <t>credential_hint (string, <bcp14>OPTIONAL</bcp14>): Credential Hint supplied by the Attester; the RATS Relying Party (Secret Vault or Credential Authority) <bcp14>MAY</bcp14> use it, ignore it, or reject the request.
When the <spanx style="verb">attest-initiate</spanx> of a <spanx style="verb">present-nonce</spanx> exchange named a <spanx style="verb">credential_hint</spanx>, this member <bcp14>MUST</bcp14> carry the same string (<xref target="retrieval-processing"/>).</t>
</list></t>

</section>
<section anchor="evidence-to-cek"><name>Evidence-to-CEK Binding</name>

<t>The Evidence <bcp14>MUST</bcp14> carry the digest of <xref target="est-binding"/> with the octets of <spanx style="verb">cek_pub</spanx> as its subject.
As Section "Binding Credential Keys to Evidence" of <xref target="TACRA"/> requires, the Verifier reports the bound value in the Attestation Results, and the Secret Vault recomputes it from the request and denies release with 400 Bad Request on a mismatch.
The <spanx style="verb">binding</spanx> object is as <xref target="est-binding"/> defines it.</t>

</section>
<section anchor="group-id"><name>Credential Group ID Determination</name>

<t>The Secret Vault maps Attestation Results to a credential group, as <xref target="TACRA"/> requires: stable for replica workloads, and distinct across security domains, tenants and the credentials it releases.
The mapping is the Secret Vault's policy.
This profile does not specify the construction of <spanx style="verb">group_id</spanx>, and different Secret Vaults need not compute the same value.
<spanx style="verb">credential_hint</spanx> <bcp14>MAY</bcp14> select among the credentials the policy allows for the attested context and <bcp14>MUST NOT</bcp14> enlarge that set.
A Credential Hint the policy does not know is ignored, or the request is refused with 400 Bad Request.
The <spanx style="verb">group_id</spanx> the container carries (<xref target="bundle"/>) is the one the Secret Vault chose, an opaque string to everyone else.</t>

</section>
<section anchor="bundle"><name>Response: EncryptedCredentialBundle</name>

<t>The EST Server returns the container the Secret Vault produced, the <spanx style="verb">encrypted-credential-bundle</spanx> of Section "Sealing the Released Credential" of <xref target="TACRA"/>, as the body of media type <spanx style="verb">application/est-attest-bundle+json</spanx>.
The EST Client and the EST Server <bcp14>MUST</bcp14> treat it as opaque.
That section specifies the container: its members, its suites, the <spanx style="verb">info</spanx> and the associated data of its HPKE sealing, and its plaintext, the Credential Bundle.
In its <spanx style="verb">aad</spanx>, <spanx style="verb">target</spanx> is the base64url of the Target octets of the request, the octets of the <spanx style="verb">target</spanx> member of <xref target="attest-retrieve"/>.
This profile adds nothing to it.
The Secret Vault names in <spanx style="verb">acceptable_cek</spanx> the suites it accepts (<xref target="alg-tokens"/>), the mandatory suite of <xref target="TACRA"/> among them, and the Attester generates its CEK for one of them.</t>

<t>The Attester proceeds as <xref target="TACRA"/> requires: it checks that <spanx style="verb">aad</spanx> names its Target, its freshness element and its Credential Hint, checks the suite, and only then opens the ciphertext.
It <bcp14>MUST</bcp14> refuse the container otherwise.
Who sealed the container, the Attester cannot tell: anyone who saw CEKpub can seal to it.
This profile accepts that, and <xref target="security"/> states the consequence.</t>

</section>
<section anchor="retrieval-processing"><name>Retrieval Server Processing</name>

<t>Upon receiving AttestedRetrievalRequest, the EST Server <bcp14>MUST</bcp14>:</t>

<t><list style="numbers" type="1">
  <t>Validate syntax, media type, and size limits.</t>
  <t>Check that a Secret Vault serves this <spanx style="verb">target</spanx> and <spanx style="verb">credential_type</spanx>, and that the <spanx style="verb">mode</spanx> the EST Server's configuration sets for them, which <spanx style="verb">attest-initiate</spanx> reports (<xref target="initiation-response"/>), is <spanx style="verb">retrieve</spanx>.
  Refuse the request with 400 Bad Request when a Credential Authority serves them.</t>
  <t>For <spanx style="verb">present-nonce</spanx>, correlate <spanx style="verb">handle</spanx> with the <spanx style="verb">attest-initiate</spanx> that returned it, as in Enrollment.
  Refuse the request with 400 Bad Request when no <spanx style="verb">attest-initiate</spanx> returned this Handle, when it has expired or was used before, or when its <spanx style="verb">target</spanx> or <spanx style="verb">freshness_kind</spanx> differ from the corresponding <spanx style="verb">attest-initiate</spanx>.
  Refuse it likewise when that <spanx style="verb">attest-initiate</spanx> named a <spanx style="verb">credential_type</spanx> and the request omits it or names another token, or named a <spanx style="verb">credential_hint</spanx> and the request omits it or names another string.
  A request <bcp14>MAY</bcp14> name a <spanx style="verb">credential_type</spanx> its <spanx style="verb">attest-initiate</spanx> omitted, the one the mode and the algorithms returned imply.
  A request <bcp14>MAY</bcp14> name a <spanx style="verb">credential_hint</spanx> its <spanx style="verb">attest-initiate</spanx> omitted.
  A <spanx style="verb">present-nonce</spanx> Handle is single-use.
  For <spanx style="verb">present-epoch</spanx>, <spanx style="verb">handle</spanx> is the epoch marker that every <spanx style="verb">attest-initiate</spanx> of the epoch returned for this <spanx style="verb">target</spanx>, and it serves all requests during that epoch.
  Refuse the request with 400 Bad Request when the marker has moved.
  For the <spanx style="verb">absent-*</spanx> Freshness Kinds no Handle was returned, and the RATS Relying Party checks the freshness element under the Freshness Kind its policy sets for the Target (<xref target="TACRA"/>).
  For <spanx style="verb">present-epoch</spanx> and the <spanx style="verb">absent-*</spanx> Freshness Kinds the EST Server does not correlate <spanx style="verb">credential_type</spanx> or <spanx style="verb">credential_hint</spanx> and forwards them to the RATS Relying Party, which decides under its policy (<xref target="credential-type"/>).
  This correlation keeps the two legs of one exchange together at the EST Server.
  It is not authorization: the Secret Vault takes the Freshness Kind from its policy for the Target, recomputes the digest and decides (<xref target="TACRA"/>).</t>
  <t>Passport: forward Evidence to the Verifier and obtain Attestation Results.
  Background Check: skip this step; the Secret Vault obtains Attestation Results itself.</t>
  <t>Forward Attestation Results (Passport) or Evidence (Background Check) to the Secret Vault, which computes group_id, authorizes, fetches the bundle and seals it to CEKpub (<xref target="bundle"/>).</t>
  <t>Return the EncryptedCredentialBundle produced by the Secret Vault.</t>
</list></t>

<t>A variant in which the EST Server receives a plaintext secret from the Secret Vault and seals it to CEKpub itself is not permitted: it would expose the secret to the EST Server (<xref target="TACRA"/>).</t>

</section>
</section>
</section>
<section anchor="errors"><name>Error Handling</name>

<t>An error response carries one of the status codes below, and a human-readable body of media type <spanx style="verb">text/plain</spanx>, as a simpleenroll error does (Section 4.2.3 of <xref target="RFC7030"/>, updated by Section 5.1 of <xref target="RFC8951"/>):</t>

<t><list style="symbols">
  <t>400 Bad Request: a request that does not match its definition (<xref target="cddl"/>), or an <spanx style="verb">attest-initiate</spanx> with no <spanx style="verb">target</spanx>.
A <spanx style="verb">credential_type</spanx> that is not a token of <xref target="credential-type"/>.
A <spanx style="verb">present-nonce</spanx> request that omits <spanx style="verb">credential_type</spanx>, or names another token, when its <spanx style="verb">attest-initiate</spanx> named one.
A <spanx style="verb">present-nonce</spanx> request that omits <spanx style="verb">credential_hint</spanx>, or names another string, when its <spanx style="verb">attest-initiate</spanx> named one.
A binding digest that does not recompute (<xref target="est-binding"/>).
A <spanx style="verb">present-nonce</spanx> Handle that no <spanx style="verb">attest-initiate</spanx> returned, that has expired or was used before, or a <spanx style="verb">present-epoch</spanx> marker that has moved.
A Credential Hint the policy does not know and does not ignore.
A <spanx style="verb">present-nonce</spanx> request whose <spanx style="verb">target</spanx> or <spanx style="verb">freshness_kind</spanx> differs from the <spanx style="verb">attest-initiate</spanx> that returned its Handle, or a request to the resource of the other <spanx style="verb">mode</spanx> (<xref target="enrollment-processing"/>, <xref target="retrieval-processing"/>).</t>
  <t>401 Unauthorized: missing/invalid authentication required by deployment policy</t>
  <t>403 Forbidden, forwarded from the RATS Relying Party: attestation failed, its policy denies enrollment or retrieval, the Credential Hint included, or it does not serve the <spanx style="verb">credential_type</spanx> for the <spanx style="verb">target</spanx>.
In the last case the body names the Credential Types it serves for that <spanx style="verb">target</spanx>.</t>
  <t>404 Not Found: a <spanx style="verb">target</spanx> the EST Server does not serve (Section 15.5.5 of <xref target="RFC9110"/>: the query is part of the target URI, and a request of the second leg names the same <spanx style="verb">target</spanx>)</t>
  <t>413 Content Too Large: a request larger than the server takes (Section 15.5.14 of <xref target="RFC9110"/>)</t>
  <t>415 Unsupported Media Type: a request not of the resource's media type (<xref target="media-types"/>), or Evidence of a format that is not accepted, a <spanx style="verb">profile</spanx> the <spanx style="verb">attest-initiate</spanx> response did not list among them</t>
  <t>429 Too Many Requests: rate limiting (Section 4 of <xref target="RFC6585"/>)</t>
  <t>500 Internal Server Error: internal error</t>
  <t>502 Bad Gateway: the RATS Relying Party did not answer, or answered with a message the EST Server cannot pass on</t>
  <t>503 Service Unavailable: the Verifier is unavailable</t>
</list></t>

<t>A client acts on the status code.
A machine-readable body (<xref target="RFC9457"/>) is left for a revision in which a client needs the reason.</t>

<t>Error bodies <bcp14>MUST NOT</bcp14> leak sensitive attestation details.
Servers <bcp14>MAY</bcp14> provide a correlation identifier for debugging.</t>

</section>
<section anchor="security"><name>Security Considerations</name>

<section anchor="specific-to-attested-enrollment-mode"><name>Specific to Attested Enrollment Mode</name>

<t><list style="symbols">
  <t>Key Substitution: attestation success is not sufficient without Evidence-to-CSR binding and PoP</t>
  <t>Identity Over-Issuance: Credential Authority policy must constrain subject/SAN to the attested identity context</t>
</list></t>

</section>
<section anchor="specific-to-attested-retrieval-mode"><name>Specific to Attested Retrieval Mode</name>

<t><list style="symbols">
  <t>Shared Signing Key distribution: If the credential bundle includes a private signing key shared across replicas, compromise of one replica compromises the group. This mode <bcp14>SHOULD</bcp14> be restricted to environments where unwrap and key use are strongly protected.</t>
  <t>Non-Exportability Requirements: Deployments that transport a signing key <bcp14>SHOULD</bcp14> require Evidence to attest that CEKpri is non-exportable and that decryption/unwrapping occurs only within an approved protected environment (e.g., TEE/TPM-sealed key usage).</t>
  <t>Origin of the container: the EST Client and the EST Server saw CEKpub and can return a container of their own, sealed to it.
The Secret Vault's secret stays confidential: a container the Secret Vault sealed can only be unsealed with CEKpri, and one created by the EST Client or the EST Server will not authenticate the Attester to the Target.
This profile accepts that risk, and the Trust Model of <xref target="TACRA"/> states what follows by Credential Type.</t>
  <t>Attribution: Shared keys eliminate per-instance attribution.
If accountability is required, consider per-instance keys with identical identity claims, or a centralized signing service.</t>
</list></t>

</section>
<section anchor="common-to-both-modes"><name>Common to Both Modes</name>

<t><list style="symbols">
  <t>Freshness: the Freshness Kinds and the freshness element are those of <xref target="TACRA"/>, built on the recency methods of Section 10 of <xref target="RFC9334"/>.
A <spanx style="verb">present-*</spanx> Handle comes from the Verifier or the RATS Relying Party, a timestamp from the Attester's clock, and an epoch marker from a local hold or a returned Handle.
Evidence <bcp14>MUST</bcp14> carry the freshness element in the binding (<xref target="est-binding"/>).
The originator of a Handle <bcp14>MUST</bcp14> reject <spanx style="verb">present-nonce</spanx> reuse and a stale <spanx style="verb">present-epoch</spanx>.</t>
  <t>Evidence and Attestation Results: the EST Client and the EST Server see Evidence and, in the Passport model, Attestation Results in plaintext (Section 12.2 of <xref target="RFC9334"/>, the Trust Model of <xref target="TACRA"/>).
A retrieved secret stays inside the EncryptedCredentialBundle (<xref target="bundle"/>), an enrolled certificate is public, and CSKpri and CEKpri never leave the Attester.</t>
  <t>Channel binding: the digest of <xref target="est-binding"/> binds no TLS session and no Credential Authority or Secret Vault.
It binds the Target name, so an EST Server can relay the exchange to another RATS Relying Party that serves the same Target, and that party recomputes the same digest.
What it obtains, and that Evidence can reach any RATS Relying Party, is in the Trust Model of <xref target="TACRA"/>.
A TLS channel binding would have to reach the Attester from the EST Client, which this architecture does not assume (Design Goal 8 of <xref target="TACRA"/>), so this profile puts none in the Evidence.</t>
  <t>Client authentication: <xref target="TACRA"/> leaves the authentication of the EST Client to the EST Server to profiles.
This profile requires none for the <spanx style="verb">attest-*</spanx> resources: Remote Attestation authenticates the Attester, and the EST Client holds no credential of its own.
A deployment <bcp14>MAY</bcp14> require TLS client authentication on them, as on simpleenroll (Section 3.3 of <xref target="RFC7030"/>).
An EST Server that returns <spanx style="verb">present-nonce</spanx> Handles on an unauthenticated <spanx style="verb">attest-initiate</spanx> <bcp14>SHOULD</bcp14> rate-limit those requests and cap the Handles outstanding per client.</t>
  <t>The channels from the EST Server to the Verifier and to the Credential Authority or Secret Vault <bcp14>MUST</bcp14> provide integrity, authenticity, and replay protection.</t>
  <t>The EST Server <bcp14>SHOULD</bcp14> enforce size and rate limits on Evidence.</t>
  <t>The Credential Type and the Credential Hint are not in the binding.
The RATS Relying Party decides by its policy what it issues or releases for them.
The EST Server's correlation of a <spanx style="verb">present-nonce</spanx> Handle with its <spanx style="verb">attest-initiate</spanx> only checks that the second leg does not change a <spanx style="verb">credential_type</spanx> or <spanx style="verb">credential_hint</spanx> the <spanx style="verb">attest-initiate</spanx> named, and authorizes nothing (<xref target="TACRA"/>).</t>
  <t>If classic EST and attested resources both exist, the RATS Relying Party <bcp14>MUST</bcp14> be able to require attestation.
The EST Server <bcp14>MUST NOT</bcp14> substitute a classic EST operation for an attested request.</t>
</list></t>

</section>
</section>
<section anchor="privacy"><name>Privacy Considerations</name>

<t>Evidence can identify the device, its firmware level and the launched software (Section 11 of <xref target="RFC9334"/>).
The EST Client, the EST Server, the Verifier and the RATS Relying Party see it.
The Trust Model of <xref target="TACRA"/> states what the EST Client and the EST Server read, and a deployment that operates them accepts that exposure.
Error bodies <bcp14>MUST NOT</bcp14> echo Evidence or Attestation Results.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>The <spanx style="verb">attest-*</spanx> resources are additional services of an EST server (Section 3.2.2 of <xref target="RFC7030"/>), under the well-known URI suffix "est" that <xref target="RFC7030"/> registered.
No registry of EST operation paths exists, so none is requested.</t>

<t>IANA is requested to register the media types of <xref target="media-types"/> in the "Media Types" registry (<xref target="RFC6838"/>).</t>

<t>The operation names this document adds are <spanx style="verb">attest-initiate</spanx>, <spanx style="verb">attest-enroll</spanx> and <spanx style="verb">attest-retrieve</spanx>.</t>

<section anchor="applicationest-attest-initiatejson"><name>application/est-attest-initiate+json</name>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>est-attest-initiate+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>The response of <spanx style="verb">attest-initiate</spanx>.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>EST implementations of the <spanx style="verb">attest-*</spanx> resources of this document.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/json".
At publication of this specification, no fragment identification syntax is defined for "application/json".</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File extension(s): N/A; Macintosh file type code(s): N/A</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>Mark F. Novak <eref target="mailto:mark.f.novak@jpmchase.com">mark.f.novak@jpmchase.com</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>See the Authors' Addresses section of this document.</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IESG</t>
  </dd>
</dl>

</section>
<section anchor="applicationest-attest-enrolljson"><name>application/est-attest-enroll+json</name>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>est-attest-enroll+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>The request of <spanx style="verb">attest-enroll</spanx>; its response is that of simpleenroll.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>EST implementations of the <spanx style="verb">attest-*</spanx> resources of this document.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/json".
At publication of this specification, no fragment identification syntax is defined for "application/json".</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File extension(s): N/A; Macintosh file type code(s): N/A</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>Mark F. Novak <eref target="mailto:mark.f.novak@jpmchase.com">mark.f.novak@jpmchase.com</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>See the Authors' Addresses section of this document.</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IESG</t>
  </dd>
</dl>

</section>
<section anchor="applicationest-attest-retrievejson"><name>application/est-attest-retrieve+json</name>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>est-attest-retrieve+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>The request of <spanx style="verb">attest-retrieve</spanx>; its response is <spanx style="verb">application/est-attest-bundle+json</spanx>.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>EST implementations of the <spanx style="verb">attest-*</spanx> resources of this document.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/json".
At publication of this specification, no fragment identification syntax is defined for "application/json".</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File extension(s): N/A; Macintosh file type code(s): N/A</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>Mark F. Novak <eref target="mailto:mark.f.novak@jpmchase.com">mark.f.novak@jpmchase.com</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>See the Authors' Addresses section of this document.</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IESG</t>
  </dd>
</dl>

</section>
<section anchor="applicationest-attest-bundlejson"><name>application/est-attest-bundle+json</name>

<dl>
  <dt>Type name:</dt>
  <dd>
    <t>application</t>
  </dd>
  <dt>Subtype name:</dt>
  <dd>
    <t>est-attest-bundle+json</t>
  </dd>
  <dt>Required parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Optional parameters:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Encoding considerations:</dt>
  <dd>
    <t>binary</t>
  </dd>
  <dt>Security considerations:</dt>
  <dd>
    <t>See <xref target="security"/> of this document.</t>
  </dd>
  <dt>Interoperability considerations:</dt>
  <dd>
    <t>The response of <spanx style="verb">attest-retrieve</spanx>, the EncryptedCredentialBundle (<xref target="bundle"/>).
The JSON object is the <spanx style="verb">encrypted-credential-bundle</spanx> that <xref target="TACRA"/> specifies.</t>
  </dd>
  <dt>Published specification:</dt>
  <dd>
    <t>This document.</t>
  </dd>
  <dt>Applications that use this media type:</dt>
  <dd>
    <t>EST implementations of the <spanx style="verb">attest-*</spanx> resources of this document.</t>
  </dd>
  <dt>Fragment identifier considerations:</dt>
  <dd>
    <t>The syntax and semantics of fragment identifiers are as specified for "application/json".
At publication of this specification, no fragment identification syntax is defined for "application/json".</t>
  </dd>
  <dt>Additional information:</dt>
  <dd>
    <t>Deprecated alias names for this type: N/A; Magic number(s): N/A; File extension(s): N/A; Macintosh file type code(s): N/A</t>
  </dd>
  <dt>Person &amp; email address to contact for further information:</dt>
  <dd>
    <t>Mark F. Novak <eref target="mailto:mark.f.novak@jpmchase.com">mark.f.novak@jpmchase.com</eref></t>
  </dd>
  <dt>Intended usage:</dt>
  <dd>
    <t>COMMON</t>
  </dd>
  <dt>Restrictions on usage:</dt>
  <dd>
    <t>N/A</t>
  </dd>
  <dt>Author:</dt>
  <dd>
    <t>See the Authors' Addresses section of this document.</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IESG</t>
  </dd>
</dl>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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="RFC5198">
  <front>
    <title>Unicode Format for Network Interchange</title>
    <author fullname="J. Klensin" initials="J." surname="Klensin"/>
    <author fullname="M. Padlipsky" initials="M." surname="Padlipsky"/>
    <date month="March" year="2008"/>
    <abstract>
      <t>The Internet today is in need of a standardized form for the transmission of internationalized "text" information, paralleling the specifications for the use of ASCII that date from the early days of the ARPANET. This document specifies that format, using UTF-8 with normalization and specific line-ending sequences. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5198"/>
  <seriesInfo name="DOI" value="10.17487/RFC5198"/>
</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="RFC7030">
  <front>
    <title>Enrollment over Secure Transport</title>
    <author fullname="M. Pritikin" initials="M." role="editor" surname="Pritikin"/>
    <author fullname="P. Yee" initials="P." role="editor" surname="Yee"/>
    <author fullname="D. Harkins" initials="D." role="editor" surname="Harkins"/>
    <date month="October" year="2013"/>
    <abstract>
      <t>This document profiles certificate enrollment for clients using Certificate Management over CMS (CMC) messages over a secure transport. This profile, called Enrollment over Secure Transport (EST), describes a simple, yet functional, certificate management protocol targeting Public Key Infrastructure (PKI) clients that need to acquire client certificates and associated Certification Authority (CA) certificates. It also supports client-generated public/private key pairs as well as key pairs generated by the CA.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7030"/>
  <seriesInfo name="DOI" value="10.17487/RFC7030"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</reference>
<reference anchor="RFC8610">
  <front>
    <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="C. Vigano" initials="C." surname="Vigano"/>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="June" year="2019"/>
    <abstract>
      <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8610"/>
  <seriesInfo name="DOI" value="10.17487/RFC8610"/>
</reference>
<reference anchor="RFC8951">
  <front>
    <title>Clarification of Enrollment over Secure Transport (EST): Transfer Encodings and ASN.1</title>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="T. Werner" initials="T." surname="Werner"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <date month="November" year="2020"/>
    <abstract>
      <t>This document updates RFC 7030: Enrollment over Secure Transport to resolve some errata that were reported and that have proven to cause interoperability issues when RFC 7030 was extended.</t>
      <t>This document deprecates the specification of "Content-Transfer-Encoding" headers for Enrollment over Secure Transport (EST) endpoints. This document fixes some syntactical errors in ASN.1 that were present.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8951"/>
  <seriesInfo name="DOI" value="10.17487/RFC8951"/>
</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="RFC9180">
  <front>
    <title>Hybrid Public Key Encryption</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
    <author fullname="B. Lipp" initials="B." surname="Lipp"/>
    <author fullname="C. Wood" initials="C." surname="Wood"/>
    <date month="February" year="2022"/>
    <abstract>
      <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
      <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9180"/>
  <seriesInfo name="DOI" value="10.17487/RFC9180"/>
</reference>
<reference anchor="RFC9334">
  <front>
    <title>Remote ATtestation procedureS (RATS) Architecture</title>
    <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="N. Smith" initials="N." surname="Smith"/>
    <author fullname="W. Pan" initials="W." surname="Pan"/>
    <date month="January" year="2023"/>
    <abstract>
      <t>In network protocol exchanges, it is often useful for one end of a communication to know whether the other end is in an intended operating state. This document provides an architectural overview of the entities involved that make such tests possible through the process of generating, conveying, and evaluating evidentiary Claims. It provides a model that is neutral toward processor architectures, the content of Claims, and protocols.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9334"/>
  <seriesInfo name="DOI" value="10.17487/RFC9334"/>
</reference>
<reference anchor="RFC9741">
  <front>
    <title>Concise Data Definition Language (CDDL): Additional Control Operators for the Conversion and Processing of Text</title>
    <author fullname="C. Bormann" initials="C." surname="Bormann"/>
    <date month="March" year="2025"/>
    <abstract>
      <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point. RFCs have added to this extension point in both an application-specific and a more general way.</t>
      <t>The present document defines a number of additional generally applicable control operators for text conversion (bytes, integers, printf-style formatting, and JSON) and for an operation on text.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9741"/>
  <seriesInfo name="DOI" value="10.17487/RFC9741"/>
</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 title='Informative References' anchor="sec-informative-references">




<reference anchor="ATTESTATION-FRESHNESS">
   <front>
      <title>Requesting a Freshness Nonce for Attestation Evidence in Certificate Signing Requests</title>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>Siemens</organization>
      </author>
      <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
         <organization>Siemens</organization>
      </author>
      <author fullname="Joe Mandel" initials="J." surname="Mandel">
         <organization>AKAYLA, Inc.</organization>
      </author>
      <author fullname="Sean Turner" initials="S." surname="Turner">
         <organization>sn3rd</organization>
      </author>
      <date day="17" month="October" year="2026"/>
      <abstract>
	 <t>   When an end entity includes attestation statements in a Certificate
   Signing Request (CSR), the freshness of the conveyed Evidence often
   needs to be established.  A common mechanism is a nonce that is
   obtained from a Relying Party or Verifier and included by the
   Attester in the Evidence.

   This document specifies how an end entity requests such an
   attestation freshness nonce from an RA/CA when using certificate
   lifecycle management protocols.  It defines message formats and
   protocol bindings for the conveyance of nonce request and response
   messages in the Certificate Management Protocol (CMP), Enrollment
   over Secure Transport (EST), and Certificate Management over CMS
   (CMC), including optional type-specific information needed to produce
   fresh Evidence for inclusion in a CSR.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-attestation-freshness-09"/>
   
</reference>

<reference anchor="CSR-ATTEST">
   <front>
      <title>Use of Remote Attestation with Certification Signing Requests</title>
      <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
         <organization>Cryptic Forest Software</organization>
      </author>
      <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         <organization>Siemens</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Monty Wiseman" initials="M." surname="Wiseman">
         <organization>Independent</organization>
      </author>
      <author fullname="Ned Smith" initials="N." surname="Smith">
         </author>
      <date day="22" month="October" year="2026"/>
      <abstract>
	 <t>   Certification Authorities (CAs) issuing certificates to Public Key
   Infrastructure (PKI) end entities may require a certificate signing
   request (CSR) to include additional verifiable information to confirm
   policy compliance.  For example, a CA may require an end entity to
   demonstrate that the private key corresponding to a CSR&#x27;s public key
   is secured by a hardware security module (HSM), is not exportable,
   etc.  The process of generating, transmitting, and verifying
   additional information required by the CA is called remote
   attestation.  While work is currently underway to standardize various
   aspects of remote attestation, a variety of proprietary mechanisms
   have been in use for years, particularly regarding protection of
   private keys.

   This specification defines ASN.1 structures which may carry
   attestation data for PKCS#10 and Certificate Request Message Format
   (CRMF) messages.  Both standardized and proprietary attestation
   formats are supported by this specification.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-csr-attestation-32"/>
   
</reference>

<reference anchor="HPKE-PQ">
   <front>
      <title>Post-Quantum and Post-Quantum/Traditional Hybrid Algorithms for HPKE</title>
      <author fullname="Richard Barnes" initials="R." surname="Barnes">
         <organization>Cisco</organization>
      </author>
      <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
         <organization>Selkie Cryptography</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   Updating key exchange and public-key encryption protocols to resist
   attack by quantum computers is a high priority given the possibility
   of &quot;harvest now, decrypt later&quot; attacks.  Hybrid Public Key
   Encryption (HPKE) is a widely-used public key encryption scheme based
   on combining a Key Encapsulation Mechanism (KEM), a Key Derivation
   Function (KDF), and an Authenticated Encryption with Associated Data
   (AEAD) scheme.  In this document, we define KEM algorithms for HPKE
   based on both post-quantum KEMs and hybrid constructions of post-
   quantum KEMs with traditional KEMs, as well as a KDF based on SHA-3
   that is suitable for use with these KEMs.  When used with these
   algorithms, HPKE is resilient with respect to attacks by a quantum
   computer.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-pq-05"/>
   
</reference>

<reference anchor="INTERACTION-MODELS">
   <front>
      <title>Reference Interaction Models for Remote Attestation Procedures</title>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Michael Eckel" initials="M." surname="Eckel">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Wei Pan" initials="W." surname="Pan">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Eric Voit" initials="E." surname="Voit">
         <organization>Cisco Systems</organization>
      </author>
      <date day="28" month="October" year="2026"/>
      <abstract>
	 <t>   This document describes interaction models for remote attestation
   procedures (RATS) [RFC9334].  Three conveying mechanisms --
   Challenge/Response, Uni-Directional, and Streaming Remote Attestation
   -- are illustrated and defined.  Analogously, a general overview
   about the information elements typically used by corresponding
   conveyance protocols are highlighted.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-rats-reference-interaction-models-20"/>
   
</reference>

<reference anchor="TACRA">
   <front>
      <title>Trustworthy Acquisition of Credentials via Remote Attestation</title>
      <author fullname="Mark Novak" initials="M." surname="Novak">
         <organization>J.P. Morgan Chase &amp; Co.</organization>
      </author>
      <author fullname="Michael Richardson" initials="M." surname="Richardson">
         <organization>Sandelman Software Works</organization>
      </author>
      <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname="Serhii Nikolaichuk" initials="S." surname="Nikolaichuk">
         <organization>The Capital Index LLC</organization>
      </author>
      <date day="2" month="November" year="2026"/>
      <abstract>
	 <t>   There is a large class of &quot;RATS-Unaware&quot; Relying Parties (RUPs) that
   Attesters nevertheless need to interoperate with.  Existing deployed
   services, which precede the introduction of Remote Attestation, are
   often difficult to change/update in significant ways due to, among
   other reasons, organizational friction, technological inertia, and
   regulatory policies.  There are significant advantages if workloads
   can be incrementally updated in the trustworthiness of the platform,
   without disrupting their clients and servers.

   This document describes an architecture by which Remote Attestation
   is utilized for providing Attesters with Identity Documents (keys or
   credentials) to authenticate to RUPs.  This architecture is intended
   to work with common credential acquisition protocols and mechanisms
   such as EST, SPIFFE/SPIRE, ACMEv2, and many others.

   Another important but separate goal is to encapsulate the Attester-
   side complexity of Remote Attestation and credential acquisition.
   This allows Attesters to be implemented in a way that abstracts away
   the details of credential acquisition: both the protocols used and
   the Credential Acquisition Mechanisms employed, whether minting new
   (Enrollment), or requesting existing (Retrieval) credentials.
   Likewise, the choice between RATS Passport and Background Check
   models is made opaque to the Attester, further simplifying its
   development.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-novak-rats-tacra-03"/>
   
</reference>

<reference anchor="WIMSE">
   <front>
      <title>WIMSE Workload Credentials</title>
      <author fullname="Brian Campbell" initials="B." surname="Campbell">
         <organization>Ping Identity</organization>
      </author>
      <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
         <organization>Palo Alto Networks</organization>
      </author>
      <author fullname="Arndt Schwenkschuster" initials="A." surname="Schwenkschuster">
         <organization>Defakto Security</organization>
      </author>
      <author fullname="Yaron Sheffer" initials="Y." surname="Sheffer">
         <organization>Independent</organization>
      </author>
      <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
         <organization>Zscaler</organization>
      </author>
      <date day="30" month="October" year="2026"/>
      <abstract>
	 <t>   The WIMSE architecture defines authentication and authorization for
   software workloads in a variety of runtime environments, from the
   most basic ones up to complex multi-service, multi-cloud, multi-
   tenant deployments.

   This document defines the credentials that workloads use to represent
   their identity.  They can be used in various protocols to
   authenticate workloads to each other.  To use these credentials,
   workloads must provide proof of possession of the associated private
   key material, which is covered in other documents.  This document
   focuses on the credentials alone, independent of the proof-of-
   possession mechanism.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-workload-creds-03"/>
   
</reference>
<reference anchor="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</reference>
<reference anchor="RFC6585">
  <front>
    <title>Additional HTTP Status Codes</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <date month="April" year="2012"/>
    <abstract>
      <t>This document specifies additional HyperText Transfer Protocol (HTTP) status codes for a variety of common situations. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6585"/>
  <seriesInfo name="DOI" value="10.17487/RFC6585"/>
</reference>
<reference anchor="RFC7519">
  <front>
    <title>JSON Web Token (JWT)</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 Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7519"/>
  <seriesInfo name="DOI" value="10.17487/RFC7519"/>
</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="RFC9148">
  <front>
    <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
    <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
    <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
    <author fullname="M. Richardson" initials="M." surname="Richardson"/>
    <author fullname="S. Raza" initials="S." surname="Raza"/>
    <date month="April" year="2022"/>
    <abstract>
      <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9148"/>
  <seriesInfo name="DOI" value="10.17487/RFC9148"/>
</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="TWISIGDef" target="https://github.com/confidential-computing/twi/blob/main/TWI_Definitions.md">
  <front>
    <title>Trustworthy Workload Identity (TWI) Special Interest Group - Definitions</title>
    <author >
      <organization>Confidential Computing Consortium Trustworthy Workload Identity SIG</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="TWISIGReq" target="https://github.com/confidential-computing/twi/blob/main/TWI_Requirements.md">
  <front>
    <title>Trustworthy Workload Identity (TWI) Special Interest Group - Requirements</title>
    <author >
      <organization>Confidential Computing Consortium Trustworthy Workload Identity SIG</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>

</references>


<?line 1023?>

<section anchor="examples"><name>Example Messages</name>

<t>These examples are informative.
They are exchanges recorded on 29 October 2026 between an EST Client and an EST Server that implement this profile, on an AMD SEV-SNP guest, with the mandatory CEK suite.
The Targets, the Handles and the structures are as they crossed the wire, with long base64url values shortened to their first 24 characters and marked <spanx style="verb">...</spanx>.
An EST Server that uses a path segment of Section 3.2.2 of <xref target="RFC7030"/> serves the same resources under it, <spanx style="verb">/.well-known/est/arbitraryLabel1/attest-initiate</spanx> for instance.
The Host header names the EST Server as this document's examples do.
Lines longer than 69 characters are folded as <xref target="RFC8792"/> describes.</t>

<section anchor="ex-initiate-enroll"><name>attest-initiate for Enrollment</name>

<figure><artwork><![CDATA[
NOTE: '\' line wrapping per RFC 8792

GET /.well-known/est/attest-initiate?credential_type=x509&\
    credential_hint=payments.workload.tacra.example&target=https%3A%\
    2F%2Fdb-nonce.tacra.example HTTP/1.1
Host: est.tacra.example
Accept: application/est-attest-initiate+json

HTTP/1.1 200 OK
Content-Type: application/est-attest-initiate+json

{
  "freshness_kind": "present-nonce",
  "handle": "JguWe4G_4VRGo0tZY4URL8xT...",
  "expires_in": 300,
  "acceptable_evidence": [
    "application/vnd.veraison.tsm-report+cbor"
  ],
  "acceptable_csk": [
    "ecdsa-p256-sha256"
  ],
  "mode": "enroll"
}
]]></artwork></figure>

</section>
<section anchor="ex-enroll"><name>attest-enroll</name>

<figure><artwork><![CDATA[
POST /.well-known/est/attest-enroll HTTP/1.1
Host: est.tacra.example
Content-Type: application/est-attest-enroll+json

{
  "target": "https://db-nonce.tacra.example",
  "credential_type": "x509",
  "freshness_kind": "present-nonce",
  "handle": "JguWe4G_4VRGo0tZY4URL8xT...",
  "csr": "MIHkMIGMAgEAMCoxKDAmBgNV...",
  "evidence": "o2dhdXhibG9iWRKbY9p1jeZk...",
  "binding": {
    "method": "binding-input",
    "hash": "sha512"
  },
  "profile": "application/vnd.veraison.tsm-report+cbor",
  "credential_hint": "payments.workload.tacra.example"
}

HTTP/1.1 200 OK
Content-Type: application/pkcs7-mime; smime-type=certs-only

MIICswYJKoZIhvcNAQcCoIICpDCCAqACAQExADAL...
]]></artwork></figure>

</section>
<section anchor="ex-initiate-retrieve"><name>attest-initiate for Retrieval</name>

<figure><artwork><![CDATA[
NOTE: '\' line wrapping per RFC 8792

GET /.well-known/est/attest-initiate?credential_type=api-key&\
    credential_hint=payments.workload.tacra.example&target=https%3A%\
    2F%2Fledger-nonce.tacra.example HTTP/1.1
Host: est.tacra.example
Accept: application/est-attest-initiate+json

HTTP/1.1 200 OK
Content-Type: application/est-attest-initiate+json

{
  "freshness_kind": "present-nonce",
  "handle": "JRAAJxYwTJ-tsqU1Kqk_PQpA...",
  "expires_in": 300,
  "acceptable_evidence": [
    "application/vnd.veraison.tsm-report+cbor"
  ],
  "acceptable_cek": [
    "DHKEM(P-256, HKDF-SHA256)+HKDF-SHA256+AES-256-GCM"
  ],
  "mode": "retrieve"
}
]]></artwork></figure>

</section>
<section anchor="ex-retrieve"><name>attest-retrieve</name>

<figure><artwork><![CDATA[
NOTE: '\' line wrapping per RFC 8792

POST /.well-known/est/attest-retrieve HTTP/1.1
Host: est.tacra.example
Content-Type: application/est-attest-retrieve+json

{
  "target": "https://ledger-nonce.tacra.example",
  "credential_type": "api-key",
  "freshness_kind": "present-nonce",
  "handle": "JRAAJxYwTJ-tsqU1Kqk_PQpA...",
  "cek_pub": "MFkwEwYHKoZIzj0CAQYIKoZI...",
  "evidence": "o2dhdXhibG9iWRKbY9p1jeZk...",
  "binding": {
    "method": "binding-input",
    "hash": "sha512"
  },
  "profile": "application/vnd.veraison.tsm-report+cbor",
  "credential_hint": "payments.workload.tacra.example"
}

HTTP/1.1 200 OK
Content-Type: application/est-attest-bundle+json

{
  "container": "hpke-base",
  "suite": {
    "kem": "DHKEM(P-256, HKDF-SHA256)",
    "kdf": "HKDF-SHA256",
    "aead": "AES-256-GCM"
  },
  "enc": "BFR-7sH5nfSJ7HuGs5K0dydE...",
  "ciphertext": "FrhDDRwvpBSZgk-1tjX-IBHR...",
  "aad": {
    "group_id": "0156b1ec5fc72a6ccc6c04b33e23cb114c9e19979cd3fe68bdd\
    7e9495544a46c",
    "target": "aHR0cHM6Ly9sZWRnZXItbm9uY2UudGFjcmEuZXhhbXBsZQ",
    "handle": "JRAAJxYwTJ-tsqU1Kqk_PQpA...",
    "credential_hint": "payments.workload.tacra.example"
  }
}
]]></artwork></figure>

</section>
</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank the Confidential Computing Consortium's Trustworthy Workload Identity (TWI) Special Interest Group (<xref target="TWISIGDef"/>, <xref target="TWISIGReq"/>) for creating the TACRA architecture.</t>

</section>


  </back>

<!-- ##markdown-source:
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
2w2OkrX5VguA4FPs2iidR+5HleLQpnusmj2UMTX1yrWqBLmH83RSGqmJvo4s
Mf0zgxuj1x449erhw42aTXvfGmjAufxGZH57+0WuxNjL/K10MOPIE96DIZpm
5SILuTGDUiqpK7CxdsQOMp2xo4U5UnVYSQaSzSRssk+RTL3G5KQCCgAkBEoJ
Q3WTj7gvqcywX2ylE1qgiLsuq7K5+uFOrEipYBzb5sf49EiKgLHT6B/MPF+X
U7PXTTMZiwTtG8nVdqvn2N4oZGTetcWL3Xe+04+yUNhoQ67md7I0twQzjuwM
SKTQP1m6ZBjJQH3sMmRRCO0dMC4yWLm9+cdz8DYkzg1NAMG/pTumezLu1BpK
HNZD67mXUACaSXQ7aJxVlGRMsooZVz2HuPXLNOjkknNkIqBseBlXtpWrM3q3
4tmmV3n3nCTJuSniTfa+tsjFK8RWZmSXNJB3ai8CXoQpjCgI0SQ8DfGMjung
cpknEDKWX/i3n3tdauMCVH9UBbDXm0stBrUTNrq8q5D9Rs9zOLLtEHnpMIJG
t9iyjm/slu0YGBAaCSkG/o2eJ7sI+xjIFSeI6cjlCLru94Unsgxdk6T22uHK
beL1e2R7cDRTUIwCqvcFeNgzPeziKWuj1uuI7Z4W7Pd8xpP0XDncTpZ1QDrg
JjiJAJqSFxntDN+N7N2oW/UcM4cJCMZzg+kFPkSaIsZCH3/rTTU9RofFTq9k
YosMtVFMVvNmBCM7OKAJKASEvnjZNe8YcQSFhiC4DhHXnXItMnRD0Vqt7RyJ
HmNG0tU10jTD7DM1jevppm+r+pPWc79aXSC7VxmgVKI49YS+tR4HgqRPBSd1
79WiVqOkkpCLNBC3Rrg2uRok1CbNEsU2ND1QG9q0mvSUeuXEN2EIsjHh20SI
zU2VDXFwvtU0vA3Ec325SCxz7aYMg8ZAbLOPiNzr7WpVosl4q9xhBBosqJwg
nhLaNn1kLF/LD7gnuHqfmqSkBqi7mpiJ8GAmZs8v0FCZYp0grn8GeVDcivgy
WXLRciTGW57thx4doTWdNLg3ZvzDR6/jIUoi8ZZI+rtCjVqS39JiesXtRi9B
vhiknMTzDE4QdJP8rKTfnb6zVtF2Vqo5ndVErnYD9TYDFdUzk594J2vndo0P
fVvGG+vxX47yzCTpkIL6geVFQcc5hiianVgqGeeeq7NoDlHDSe33D/v1Y6Jb
y6ULyqJr5PG2X3wfGIMYQdKvnLYnPt/gXvX1qhzwO2Zfqcmkg5GYjFqxk5Pq
fbQEUy/xlr0PpZcqeiu7rcPctFalSGeIpLO4HGsmFU2qASsC2mArDtAiGPjP
mGB4ClrcNLw5vOJYNrxwyTmq9ZJbFDsst7YfbnP4l4wQu0LjaPe79lJOLMK4
oVywqWl2rS01m6N3uUgclmNaXPdaPf+TVmswH5b+j4vHODYBIdBO4WW8LBo/
OFztt1qvZ4IlDb/tmUrGJMBA/B0ES1xcwyKMq7T+ygDIMcgNNa2cDSDxbNFD
TtAWj0B9mJOx13rauynZS6JrHaGhoonjiFOSNUX6PJyx70AoxMrJUakfnMAP
EVPTSg/eSg1kQHQNu3tWxOds/Dp3c/MGOTNVshymMWoVNOJZfQQhb21T2DlJ
bMlHJzz2pW6rX4oJ56nEqQ5h1OZbLyvTyBeyrFTC/TdM1eo7foNJ8hi3kRPY
VVg3TspgPEljLTRlM9v4cllAuCfRQXwOgiybY376MtZz09NnqI+D1YxO/zxz
zw/iBK+70uOINHYiBgxOmDcALwBcsI0/RgBTvDdxNCropqicPXx89VV0Jn23
K+s+iIuL6Fk3Oswv44voP9A30j3rZvjXX36ZTUH90KoLdt6fGI0zjKCSxxM/
3nl9cPD6EEmP/ciMPpl7gdbHSqchFrIS6In+JurzWpXrfN6AYDusAsk92BNF
Q+3vDZ7fxGCYNX0JewlG+DdgLjbKWuHeT0jJscwnFYYBL/q21Ff+85X/fOU/
d+c/Rg36Eg5UGePfkQdZbbHOhe5WKveVK33lSl+50l25kkc7n8mTghH+DThS
3eSyLKn9CREm48eii8hcyT9xjBurjMWtULt8/Stn+8rZvnK2KmfrdDrRME4u
qHxBbpQ54BxBdBnKJTOa3YZamVtnGLssJORitGu+RFkCo5rimZQhDMtafxy9
TsocK8jXH6xvRUNVXimVGc+i50uN6zEkS2BBELAtsSP/ktZzLuq1paOuOtze
FSWeXgrBSoG+CRcZVy53vJgXylJRibujlDEplMYLeWWeCSaGujp76m8B5zHG
PNdMmahRWqDfG5S19Q2MQRSAVkSlMCXlT4yi0263izcE1vfPjaXI7wnnfG6u
jr7JDVuLOTsWZOrD2tHpatd5aFGsrcbFMC0LEBiv4qGarK3WAh9ICSbLhiH5
IodNjVWMg7oEY28LccUTiv0YDRqN8m7rFXVsQSia/OKtxwGICoykTkZ8BSVX
oTx6vE7dXnRSpEO+M+heVFls5YYyQmf7oxjrgNh///vfW4evT/Z60Tf/9U00
SbGy3WS2YcwQpotwvlbr+d5JVIdYOOmfK1Gl7/BGhz/+F0izqNqi6btZzMl7
XdMKpgvMpoi7Ap0/cnr2d+OynOk/POz/gUdZf/aH9WejIYfGwi+iFycnR6tr
3bUWHgqpGeELrT7FG3p39CKb4YBkH0SvX7YkQbwjWdt3GuMDLHoprKFY6kVL
QYBvqY0vcQ0s/vj9+fyt2nj+buOvx8/zB+XPP228OX61/f4ECIRf5WIS/S7N
4PWHDx7Qw4YecPDrfxLQlu56S9YSvP7f1eESfeFGqt1x5z7BPB5cP+PWUusj
IZeHmhJGJ0wMEPDo9WAxbslXtx7unY4n8MLR4TCa4boJ03qrq83YxaCv4Dd+
hijOP/7e55zoAt872H9xcbD//KB/vtc/2Mnfv9ztT5+eH/7V4YM776V8fTQe
/ThOh88fp2+PXw5/ejxb+0X9fGFflug2vPuBT5Rz7PDb4IZrepvWq8f4I19H
jaf9kcYRMYQ/3Rm7qiBEPkBgupkVICp9AjXOLhL9qDNNp+pJpPE/FNT6DvO0
dAcj5a3Wwf7+jr766fuX+c/748vksP9DspPDs9nuzk7/1/5O/4e99/3d/iuA
WhWJA/7qMrdD9mpbw/zDGaxcMPz789iJGoFE+rfms8f9/vfvf7o6+b5T6l/f
rL389eLd0Q+z/j+NzyqPz37yDZl1PmyQsIETm58YbT8LW2/k2Xb834drVzyX
C/j2YoxdyLuFej6Pfd+GPtLFkFj4s4urvaufXiC/+dsvD4C//LSP//7Kwm89
+8BDRCdvCw3o8GcXqoPmB6+MbBwHmAs1xZcWEpOB0MXoDN/zfjK/xKDa408V
SmMAwonhb0+fHXce6Reb2dng+0cv5s/15ssHo+vRnsME25oKX39WjHd3j68u
Z08HP59fdNbKX37s7D99cWxfj2lK2YLpVoBfPljb3BquqWTzLHm0Hm8lSbKV
PNgYPnyo1h8mw7W1jeSxWnv8+NHjZPTwTG1tD0cj5uiP1OONx5ubGxvxxlZi
tuYoKH5x/CB5cbD16vqx/vntcfbzj/vlcPp4/tP6m/no+bNfkune/Ocfx+Ph
j0/1zz84tLorKXwmygCYDevCS1ETZDNI5PRV60OPfSBq9N3SWTwBDJD0Hk5J
I8dVdsEJf/7dujuUZUydQ/NMA2Kn8ykYZZT8BCspx9fRW1mQKxFbPnm7v8LV
WzAEuQMx9MBNNTHh7e3+YP/5rjrjymT+81j9ivV8qChQQYtp+UfeuSAfuNv6
fxkHwumn9QAA

-->

</rfc>

