<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-rats-ear-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="EAR">EAT Attestation Results</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ear-05"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>NVIDIA</organization>
      <address>
        <email>tfossati@nvidia.com</email>
      </address>
    </author>
    <author initials="E." surname="Voit" fullname="Eric Voit">
      <organization>Cisco</organization>
      <address>
        <email>evoit@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Trofimov" fullname="Sergei Trofimov">
      <organization>Arm Limited</organization>
      <address>
        <email>sergei.trofimov@arm.com</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization>Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@ietf.contact</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>Remote ATtestation ProcedureS</workgroup>
    <keyword>EAT</keyword>
    <keyword>attestation result</keyword>
    <keyword>attestation verifier</keyword>
    <keyword>AR4SI</keyword>
    <abstract>
      <?line 77?>

<t>This document defines the EAT Attestation Result (EAR) message format.</t>
      <t>EAR is used by a verifier to encode the result of the appraisal over an
attester's evidence.
It embeds an AR4SI's "trustworthiness vector" to present a normalized view of
the evaluation results, thus easing the task of defining and computing
authorization policies by relying parties.
Alongside the trustworthiness vector, EAR provides contextual information bound
to the appraisal process.
This allows a relying party (or an auditor) to reconstruct the frame of
reference in which the trustworthiness vector was originally computed.
EAR supports simple devices with one attester as well as composite devices that
are made of multiple attesters, allowing the state of each attester to be
separately examined.
EAR can also accommodate registered and unregistered extensions.
It can be serialized and protected using either CWT or JWT.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thomas-fossati.github.io/draft-ear/draft-fv-rats-ear.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-rats-ear/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Remote ATtestation ProcedureS Working Group mailing list (<eref target="mailto:rats@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/rats/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/rats/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/thomas-fossati/draft-ear"/>.</t>
    </note>
  </front>
  <middle>
    <?line 96?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the EAT <xref target="RFC9711"/> Attestation Result (EAR) message format.</t>
      <t>EAR is used by a verifier to encode the result of the appraisal over an
attester's evidence.
It embeds an AR4SI's "trustworthiness vector" <xref target="I-D.ietf-rats-ar4si"/> to present a
normalized view of the evaluation results, thus easing the task of defining and
computing authorization policies by relying parties.
Alongside the trustworthiness vector, EAR provides contextual information bound
to the appraisal process.
This allows a relying party (or an auditor) to reconstruct the frame of
reference in which the trustworthiness vector was originally computed.
EAR supports simple devices with one attester as well as composite devices that
are made of multiple attesters (see <xref section="3.3" sectionFormat="of" target="RFC9334"/>) allowing the
state of each attester to be separately examined.
EAR can also accommodate registered and unregistered extensions.
It can be serialized and protected using either CWT <xref target="RFC8392"/> or JWT <xref target="RFC7519"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>This document uses terms and concepts defined by the RATS architecture.
For a complete glossary see <xref section="4" sectionFormat="of" target="RFC9334"/>.</t>
      <t>The terminology from CBOR <xref target="STD94"/>, CDDL <xref target="RFC8610"/> and COSE <xref target="STD96"/> applies;
in particular, CBOR diagnostic notation is defined in <xref section="8" sectionFormat="of" target="STD94"/>
and <xref section="G" sectionFormat="of" target="RFC8610"/>.</t>
      <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>
    <section anchor="sec-ear">
      <name>EAT Attestation Result</name>
      <t>EAR is an EAT token which can be serialized as JWT <xref target="RFC7519"/> or CWT <xref target="RFC8392"/>.</t>
      <t>The EAR claims-set is as follows:</t>
      <figure anchor="fig-cddl-ear">
        <name>EAR (CDDL Definition)</name>
        <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat
;# import ar4si as ar4si
;# import cmw as cmw
;# import eat-measured-component as mc

EAR = {
  eat.profile-label => "tag:ietf.org,2026:rats/ear#05"
  ? status-label => ar4si.trustworthiness-tier
  ? status-details-label => details-type
  eat.iat-claim-label => ~eat.time-int
  ? eat.exp-claim-label => ~eat.time-int
  verifier-id-label => ar4si.verifier-id
  ? raw-evidence-label => cmw-record
  eat.submods-label => { + text => $submod-value }
  ? eat.nonce-label => eat.nonce-type
  ? topology-label => topology-type
  ? input-digest-label => mc.digest
  * $$ear-extension
}

cmw-record = eat.JC<cmw.json-record, cmw.cbor-record>

; A submod carries one of:
;  - EAR-appraisal: the appraisal of a single attester;
;  - EAR: an unsigned EAR claims-set from a sub-verifier, in the same
;    serialization as the enclosing token;
;  - eat.Nested-Token: a complete, signed EAR from a sub-verifier, possibly
;    in a different serialization than the enclosing token (see
;    Section 4.2.18.3 of RFC 9711 for how the nested token is identified).
$submod-value /= EAR-appraisal
$submod-value /= EAR
$submod-value /= eat.Nested-Token

; EAR-specific claims
raw-evidence-label = eat.JC<"ear_raw_evidence", 1002>
verifier-id-label = eat.JC<"ear_verifier_id", 1004>
topology-label = eat.JC<"ear_device_topology", 1007>
input-digest-label = eat.JC<"ear_input_digest", 1008>
]]></sourcecode>
      </figure>
      <t>Where:</t>
      <dl newline="true">
        <dt><tt>eat_profile</tt> (mandatory)</dt>
        <dd>
          <t>The EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) associated with the EAR claims-set
and encodings defined by this document.
It <bcp14>MUST</bcp14> be the following tag URI (<xref target="RFC4151"/>)
<tt>tag:ietf.org,2026:rats/ear#05</tt>.</t>
        </dd>
        <dt><tt>ear_status</tt> (optional)</dt>
        <dd>
          <t>The overall appraisal status for the (composite) attester represented as one of the five trustworthiness tiers (<xref section="3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>).
The <tt>none</tt> tier is the neutral element of this computation: it does not affect the result and <bcp14>MUST NOT</bcp14> be used as the value of this claim.
The value of this claim <bcp14>MUST</bcp14> be set to a tier of no higher trust than the tier corresponding to the worst status found across all submods, regardless of whether a given submod is represented as an <tt>EAR-appraisal</tt>, a nested <tt>EAR</tt>, or a <tt>Nested-Token</tt> (see <xref target="sec-nested-submods"/>).
When a submod is a <tt>Nested-Token</tt> whose contents the verifier cannot parse or independently verify -- for example, because it uses a serialization or a signature scheme the verifier does not support, or because it does not contain an EAR -- the verifier <bcp14>MUST</bcp14> treat that submod as having the <tt>incomplete</tt> tier (<xref section="3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>) for the purposes of computing this claim.
That is, the verifier was unable to complete the appraisal of that submod, and therefore cannot vouch for the trustworthiness of the attester it represents.
The verifier <bcp14>MUST NOT</bcp14> infer from the opaque submod any tier it has not itself established.
Relying Parties that need to know whether the whole tree has been appraised have to inspect the <tt>Nested-Token</tt> submods individually.
This claim exists to help Relying Parties easily determine the overall status of the appraisal without having to inspect each submod.</t>
        </dd>
        <dt><tt>ear_status_details</tt> (optional)</dt>
        <dd>
          <t>A non-empty array of strings, each giving a reason for the value of <tt>ear_status</tt>.
See <xref target="sec-details"/> for the rules that apply to all <tt>*_details</tt> claims.</t>
        </dd>
        <dt><tt>iat</tt> (mandatory)</dt>
        <dd>
          <t>"Issued At" claim -- the time at which the EAR is issued.
See <xref section="4.1.6" sectionFormat="of" target="RFC7519"/> and <xref section="4.3.1" sectionFormat="of" target="RFC9711"/> for the EAT-specific encoding restrictions (i.e., disallowing the floating point representation).</t>
        </dd>
        <dt><tt>exp</tt> (optional)</dt>
        <dd>
          <t>"Expiration Time" claim -- the time at which the EAR expires and <bcp14>MUST NOT</bcp14> be accepted for processing.
See <xref section="4.1.4" sectionFormat="of" target="RFC7519"/>.
Similar to <tt>iat</tt>, an EAR token <bcp14>MUST NOT</bcp14> contain an <tt>exp</tt> claim in floating-point format.
Any recipient of a token with a floating-point format <tt>exp</tt> claim <bcp14>MUST</bcp14> consider it an error.</t>
        </dd>
        <dt><tt>ear_verifier_id</tt> (mandatory)</dt>
        <dd>
          <t>Identifying information about the appraising verifier.
See <xref section="3.3" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for further details on its structure and serialization.</t>
        </dd>
        <dt><tt>ear_raw_evidence</tt> (optional)</dt>
        <dd>
          <t>The unabridged evidence submitted for appraisal, including any signed
container/envelope, wrapped in a Record CMW (see <xref section="3.1" sectionFormat="of" target="RFC9999"/>).
This field may be consumed by other Verifiers in multi-stage verification
scenarios or by auditors.
There are privacy considerations associated with this claim.  See
<xref target="sec-priv-cons"/>.</t>
        </dd>
        <dt><tt>submods</tt> (mandatory)</dt>
        <dd>
          <t>A submodule map (<xref section="4.2.18" sectionFormat="of" target="RFC9711"/>) holding, for each separately
appraised attester or sub-verifier, one of: an <tt>EAR-appraisal</tt>; a nested <tt>EAR</tt>
claims-set; or a <tt>Nested-Token</tt> carrying a complete, independently signed EAR
produced by a sub-verifier.
The map <bcp14>MUST</bcp14> contain at least one entry.
For each appraised attester or sub-verifier the verifier chooses a unique
label.
For example, when evidence is in EAT format, the label could be constructed
from the associated EAT profile.
A verifier <bcp14>SHOULD</bcp14> publicly and permanently document its labelling scheme for
each supported evidence type, unless EAR payloads are produced and consumed
entirely within a private deployment.
See <xref target="sec-ear-appraisal"/> for the details about the contents of an
<tt>EAR-appraisal</tt>, and <xref target="sec-nested-submods"/> for the recursive and tunnelled
cases.</t>
        </dd>
        <dt><tt>eat_nonce</tt> (optional)</dt>
        <dd>
          <t>A user supplied nonce that is echoed by the verifier to provide freshness.
The nonce is a sequence of bytes between 8 and 64 bytes long. When serialized
as JWT, the nonce <bcp14>MUST</bcp14> be base64 encoded, resulting in a string between 12 and
88 bytes long.
See <xref section="4.1" sectionFormat="of" target="RFC9711"/>.</t>
        </dd>
        <dt><tt>ear_device_topology</tt> (optional)</dt>
        <dd>
          <t>A map that describes the device attester graph using adjacency lists.
Attesters are represented by their corresponding labels in the <tt>submods</tt> claim.
Each map key represents an attester in the graph, and the associated map value is an array of labels representing the list of sub-attesters for that attester.
If the claim is present, the map <bcp14>MUST</bcp14> contain at least one element.</t>
        </dd>
        <dt><tt>ear_input_digest</tt> (optional)</dt>
        <dd>
          <t>A cryptographic digest of the appraisal request input that produced this EAR, used to bind the EAR to the exact input the Verifier received.
Its value is the <tt>digest</tt> type defined in <xref section="4.2" sectionFormat="of" target="I-D.ietf-rats-eat-measured-component"/>.
See <xref target="sec-ear-input-digest"/> for the details.</t>
        </dd>
        <dt><tt>$$ear-extension</tt> (optional)</dt>
        <dd>
          <t>Any registered or unregistered extension.
See <xref target="sec-extensions"/> for further details.</t>
        </dd>
      </dl>
      <section anchor="sec-ear-input-digest">
        <name>Input Digest</name>
        <t>The <tt>ear_input_digest</tt> claim cryptographically binds an EAR to the exact appraisal request input received by the Verifier, providing a protection that <tt>eat_nonce</tt> alone does not provide.
While <tt>eat_nonce</tt> establishes freshness and confirms that the Verifier processed the requester's nonce, it does not bind the remainder of the request.</t>
        <t>For example, an adversary positioned between the TLS terminator and the Verifier's trust boundary could substitute the evidence carried in the request while leaving the nonce intact.
The Relying Party would then receive an EAR with a valid nonce, but for attacker-chosen evidence.
<tt>ear_input_digest</tt> closes this attack by allowing the Relying Party to check that the digest matches the appraisal request input it originally sent (or caused to be sent), exposing any substitution.
Other, similar, attacks that rely on tampering with the appraisal request input without affecting the nonce are also expected to be closed by the same mechanism.</t>
        <t>The digest is computed over the raw wire bytes of the complete appraisal request input:</t>
        <ul spacing="normal">
          <li>
            <t>The sender computes the digest over the encoded request bytes, after encoding and before transmission, and retains those exact bytes for later verification.</t>
          </li>
          <li>
            <t>The Verifier computes the digest over the raw bytes as received on the wire, before any decoding or processing.</t>
          </li>
        </ul>
        <t>Because neither side re-encodes the input before hashing, encoding format and field ordering are irrelevant: the sender and the Verifier are comparing the same bytes -- the ones that were sent on the wire.
This also means <tt>ear_input_digest</tt> is transport-agnostic: it does not matter whether the bytes are carried in an HTTP body, a gRPC message, or any other framing, as long as the sender has access to, and retains, the exact bytes that the Verifier will hash.</t>
        <t>When using <tt>ear_input_digest</tt>, use of CMW (<xref target="RFC9999"/>) as the appraisal request format is <bcp14>RECOMMENDED</bcp14>.
CMW provides a well-defined encapsulation boundary that makes it straightforward for both parties to identify which bytes constitute the complete request input, and to apply the hash at the correct point in their respective pipelines.</t>
        <section anchor="sec-ear-input-digest-applicability">
          <name>Applicability</name>
          <t>Deployments that produce or verify <tt>ear_input_digest</tt> <bcp14>MUST</bcp14> satisfy both of the following conditions:</t>
          <ol spacing="normal" type="1"><li>
              <t>Encapsulation: the appraisal request input <bcp14>MUST</bcp14> be carried in a single, self-delimiting encapsulation; between the sender's encoding step and the Verifier's hashing step, this encapsulation <bcp14>MUST NOT</bcp14> be modified.</t>
            </li>
            <li>
              <t>Byte access: the sender <bcp14>MUST</bcp14> have access to, and retain, the literal octets of the encoded appraisal request input.</t>
            </li>
          </ol>
          <t>If either condition does not hold, <tt>ear_input_digest</tt> <bcp14>SHOULD NOT</bcp14> be produced or verified.</t>
          <t>When both conditions hold, <tt>ear_input_digest</tt> provides strong end-to-end request binding, and Relying Parties <bcp14>SHOULD</bcp14> verify it.</t>
        </section>
      </section>
      <section anchor="sec-ear-appraisal">
        <name>EAR Appraisal Claims</name>
        <figure anchor="fig-cddl-ear-appraisal">
          <name>EAR Appraisal Claims (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import ar4si as ar4si
;# import rfc9711 as eat

EAR-appraisal = {
  ? eat.profile-label => eat.general-uri / eat.general-oid
  status-label => ar4si.trustworthiness-tier
  ? status-details-label => details-type
  ? trustworthiness-vector-label => ar4si.trustworthiness-vector
  ? trustworthiness-vector-details-label => trustworthiness-vector-details
  ? appraisal-policy-ids-label => [ + text ]
  ? eat.nonce-label => eat.nonce-type
  ? attester-claims-label => claims-map-type
  ? verifier-claims-label => claims-map-type
  ? endorser-claims-label => supply-chain-claims-type
  ? reference-value-provider-claims-label => supply-chain-claims-type
  * $$ear-appraisal-extension
}

status-label = eat.JC<"ear_status", 1000>
trustworthiness-vector-label = eat.JC<"ear_trustworthiness_vector", 1001>
status-details-label = eat.JC<"ear_status_details", 1010>
trustworthiness-vector-details-label =
  eat.JC<"ear_trustworthiness_vector_details", 1011>

details-type = [ + text ]

trustworthiness-vector-details = ar4si.non-empty<{
  ? ar4si.instance-identity-label => details-type,
  ? ar4si.configuration-label => details-type,
  ? ar4si.executables-label => details-type,
  ? ar4si.file-system-label => details-type,
  ? ar4si.hardware-label => details-type,
  ? ar4si.runtime-opaque-label => details-type,
  ? ar4si.storage-opaque-label => details-type,
  ? ar4si.sourced-data-label => details-type,
}>
appraisal-policy-ids-label = eat.JC<"ear_appraisal_policy_ids", 1003>
attester-claims-label = eat.JC<"ear_attester_claims", 1005>
verifier-claims-label = eat.JC<"ear_verifier_claims", 1006>
endorser-claims-label = eat.JC<"ear_endorser_claims", 1008>
reference-value-provider-claims-label = eat.JC<"ear_reference_value_provider_claims", 1009>

; supply chain entity name => claims it asserted
supply-chain-claims-type = { + text => claims-map-type }
]]></sourcecode>
        </figure>
        <dl newline="true">
          <dt><tt>eat_profile</tt> (optional)</dt>
          <dd>
            <t>The EAT profile (<xref section="6" sectionFormat="of" target="RFC9711"/>) associated with the <tt>EAR-appraisal</tt> claims-set.
Note that if multiple <tt>EAR-appraisal</tt> submods exist within the same <tt>EAR</tt> token, they may all have different values for this claim.
If the <tt>EAR-appraisal</tt> contains extensions, this claim <bcp14>SHOULD</bcp14> be present unless the profile can be implied by other means (e.g., via the application context or outer protocol elements).</t>
          </dd>
          <dt><tt>ear_status</tt> (mandatory)</dt>
          <dd>
            <t>The overall appraisal status for this attester represented as one of the five
trustworthiness tiers (<xref section="3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>).
The <tt>none</tt> tier is the neutral element of this computation: it does not affect the result and <bcp14>MUST NOT</bcp14> be used as the value of this claim.
The value of this claim <bcp14>MUST</bcp14> be set to a tier of no higher trust than the tier
corresponding to the worst trustworthiness claim across the entire
trustworthiness vector.</t>
          </dd>
          <dt><tt>ear_status_details</tt> (optional)</dt>
          <dd>
            <t>A non-empty array of strings, each giving a reason for the value of <tt>ear_status</tt>.</t>
          </dd>
          <dt><tt>ear_trustworthiness_vector</tt> (optional)</dt>
          <dd>
            <t>The AR4SI trustworthiness vector providing the breakdown of the appraisal for
this attester.
See <xref section="3.1" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for the details.</t>
          </dd>
          <dt><tt>ear_trustworthiness_vector_details</tt> (optional)</dt>
          <dd>
            <t>A map from trustworthiness vector categories to non-empty arrays of strings, each giving a reason for the value of the corresponding category.
Each key <bcp14>MUST</bcp14> be a category that is present in <tt>ear_trustworthiness_vector</tt>.
This claim <bcp14>MUST</bcp14> be present unless the party requesting Evidence appraisal
explicitly asks for it to be dropped, e.g., via an API parameter or similar
arrangement.  Such consumer would therefore rely entirely on the semantics of
the <tt>ear_status</tt> claim.  This behaviour is <bcp14>NOT RECOMMENDED</bcp14> because of the
resulting loss of quality of the appraisal result.</t>
          </dd>
          <dt><tt>ear_appraisal_policy_ids</tt> (optional)</dt>
          <dd>
            <t>A list of one or more unique identifiers for appraisal policies used to evaluate the attestation results.
The order of the identifiers in the list represents the order in which the policies are applied, with those appearing earlier being applied first.
The list <bcp14>MUST NOT</bcp14> be empty.</t>
          </dd>
          <dt><tt>eat_nonce</tt> (optional)</dt>
          <dd>
            <t>The nonce extracted from Evidence corresponding to this appraisal record.
Note that this is entirely distinct from the nonce in <xref target="sec-ear"/>.
It reflects evidence freshness rather than attestation results freshness.
Specifically, it reflects the freshness of the evidence whose attestation results are contained in this appraisal record.
This is useful when the relying party is the challenger in the remote attestation protocol and needs to verify that the nonce in the supplied evidence matches, without having to parse the evidence format.
See also <xref section="4.1" sectionFormat="of" target="RFC9711"/>.</t>
          </dd>
          <dt><tt>ear_attester_claims</tt> (optional)</dt>
          <dd>
            <t>A map containing claims with Attester authority, i.e., claims extracted from the appraised Evidence.</t>
          </dd>
          <dt><tt>ear_verifier_claims</tt> (optional)</dt>
          <dd>
            <t>A map containing claims with Verifier authority, i.e., claims added by the Verifier during appraisal and derived from evaluating the Appraisal Policy for Evidence.</t>
          </dd>
          <dt><tt>ear_endorser_claims</tt> (optional)</dt>
          <dd>
            <t>A map containing claims with Endorser authority, i.e., claims that are not present in the appraised Evidence and that the Verifier added during appraisal using Endorsements.
Each key identifies the supply chain entity that asserted the claims in the associated value, which is a map of claims.
Identifiers are subject to the rules given under <tt>ear_reference_value_provider_claims</tt>.</t>
          </dd>
          <dt><tt>ear_reference_value_provider_claims</tt> (optional)</dt>
          <dd>
            <t>A map containing claims with Reference Value Provider authority, i.e., claims that are present in the appraised Evidence and that the Verifier corroborated using Reference Values.
Each key identifies the supply chain entity that provided the Reference Values, and the associated value is a map of the corroborated claims.
A corroborated claim <bcp14>MAY</bcp14> be omitted from <tt>ear_attester_claims</tt>: the complete set of claims extracted from the Evidence is the union of the two maps.
The identifier is a human-readable string (e.g., "Arm" or "NVIDIA") that the Verifier derives from the cryptographic identity of the supply chain entity (e.g., the key that signed the Endorsements or Reference Values) when it ingests them, so that Relying Parties do not have to handle keys.
The same entity <bcp14>MUST</bcp14> be given the same identifier throughout an EAR, and an identifier <bcp14>MUST NOT</bcp14> be shared by distinct entities.
A claim asserted by more than one authority appears under the identifier of each of them.
Each occurrence is an independent assertion.
To avoid arbitrary values, the Verifier <bcp14>SHOULD</bcp14> derive the identifier from the first of the following sources that is available: the subject name (e.g., the organization or common name attribute) of the certificate of the key that signed the CoRIM conveying the Endorsements or Reference Values, provided the certification path validates to a trust anchor of the Verifier; the <tt>entity-name</tt> of the entity with the <tt>manifest-signer</tt> role in the <tt>corim-entity-map</tt> (<xref section="4.1.5" sectionFormat="of" target="I-D.ietf-rats-corim"/>); the <tt>signer-name</tt> in the <tt>corim-signer-map</tt> (<xref section="4.2.3.1" sectionFormat="of" target="I-D.ietf-rats-corim"/>); a name configured in the Appraisal Policy for Evidence.
The <tt>entity-name</tt> and <tt>signer-name</tt> are asserted by the signer itself, so the Verifier <bcp14>MUST NOT</bcp14> use them unless it has authenticated the binding between the name and the key that signed the CoRIM.</t>
          </dd>
          <dt><tt>$$ear-appraisal-extension</tt> (optional)</dt>
          <dd>
            <t>Any registered or unregistered extension.
See <xref target="sec-extensions"/> for further details.</t>
          </dd>
        </dl>
      </section>
      <section anchor="sec-details">
        <name>Details Claims</name>
        <t>The <tt>ear_status_details</tt> and <tt>ear_trustworthiness_vector_details</tt> claims let a Verifier tell the Relying Party the reasons for the values of <tt>ear_status</tt> and of the trustworthiness vector categories.
They are optional, and are intended for values other than <tt>affirming</tt>.</t>
        <t>Each string states one reason, in text meant for people (e.g., logs, diagnostics, support).
The text is not standardised: it can change between Verifiers, versions of the same Verifier and, if localised, languages.
A Relying Party <bcp14>MUST NOT</bcp14> base automated decisions on it.
Those rely entirely on <tt>ear_status</tt> and <tt>ear_trustworthiness_vector</tt>, which remain authoritative.</t>
        <t>The text can reproduce data controlled by the Attester (e.g., file names found in the Evidence), so a Relying Party <bcp14>MUST</bcp14> treat it as untrusted input (see <xref target="sec-sec-cons"/>).
It can also reveal details of the Attester's state, see <xref target="sec-priv-cons"/>.</t>
      </section>
      <section anchor="sec-nested-submods">
        <name>Recursive and Tunnelled Submods</name>
        <t>In addition to a flat <tt>EAR-appraisal</tt>, a submod <bcp14>MAY</bcp14> instead carry a nested
<tt>EAR</tt> or a <tt>Nested-Token</tt> (<xref section="4.2.18.3" sectionFormat="of" target="RFC9711"/>).
This gives the EAR a recursive structure that can directly reflect the
topology of a mesh of cooperating verifiers, e.g., the lead verifier of the
Hierarchical pattern defined in <xref target="I-D.ietf-rats-multi-verifier"/>, which
dispatches the appraisal of composite evidence to one or more sub-verifiers
and then collects their results into its own EAR.</t>
        <t>The three $submod-value alternatives serve different purposes:</t>
        <dl newline="true">
          <dt><tt>EAR-appraisal</tt></dt>
          <dd>
            <t>The existing, flat representation.
Used when the verifier itself performs the appraisal of the associated
attester, or restates a sub-verifier's result as its own appraisal.</t>
          </dd>
          <dt><tt>EAR</tt></dt>
          <dd>
            <t>A complete EAR claims-set produced by a sub-verifier, embedded directly, in
the same serialization (JSON or CBOR) as the enclosing EAR.
This lets a sub-verifier's full result -- including its own <tt>submods</tt>,
potentially several levels deep -- be embedded as plain claims data,
integrity-protected only by the enclosing EAR's own signature.</t>
          </dd>
          <dt><tt>Nested-Token</tt></dt>
          <dd>
            <t>A complete, independently signed EAR produced by a sub-verifier and
tunnelled opaquely, using the nesting mechanics described in <xref section="4.2.18.3" sectionFormat="of" target="RFC9711"/>.
This is the only alternative that supports a sub-verifier whose EAR uses a
different serialization than the enclosing token (e.g., a JWT-serialized
sub-EAR nested inside a CWT-serialized top-level EAR, or vice versa).
The nested token's encoding is self-describing, so the consumer needs no
out-of-band knowledge of it: for CBOR it is given by the CBOR tag found after
removing the byte string wrapping, for JSON by the <tt>JSON-Selector</tt> name
(<xref section="4.2.18" sectionFormat="of" target="RFC9711"/>).
EAR restricts <tt>Nested-Token</tt> to its <tt>"JWT"</tt> and <tt>"CBOR"</tt> forms; the
<tt>"BUNDLE"</tt> and <tt>"DIGEST"</tt> forms defined by <xref target="RFC9711"/> for detached claims-sets
are out of scope for EAR.
The content of a <tt>Nested-Token</tt> <bcp14>MUST</bcp14> be an EAR.
The CDDL cannot enforce this, because the token is opaque to the schema; a
verifier that finds otherwise treats the submod as <tt>incomplete</tt> (see <tt>ear_status</tt>
in <xref target="sec-ear"/>).</t>
          </dd>
        </dl>
        <t>The existing flat representation of device topology, the
<tt>ear_device_topology</tt> claim (<xref target="sec-ear"/>), is unaffected by, and can be used
independently of, the above; it remains the appropriate choice when a single
verifier appraises a composite attester made up of several evidence sources
without delegating appraisal to other verifiers.</t>
        <t>A Relying Party that only consumes the top-level <tt>ear_status</tt> claim (see
<xref target="sec-ear"/>) does not need to understand any of the above: correctness only
depends on the verifier correctly rolling up the status of every submod,
regardless of its representation, into that claim.
A Relying Party that wants a full audit trail, however, needs to be able to
recurse into nested <tt>EAR</tt> submods and to decode <tt>Nested-Token</tt> submods --
which, per above, may require support for a different serialization or
signature scheme than the one used by the enclosing token.</t>
        <t><xref target="fig-ex-json-3"/> shows a lead verifier's EAR for a confidential computing
scenario: a confidential VM ("cvm") running on a confidential platform
("cpu") and using a trusted device ("gpu") to offload a specialized ML
workload.
Each submod uses a different $submod-value kind, reflecting a realistic split
of appraisal responsibilities across independent, vendor-specific verifiers:
"cvm" is appraised directly by the lead verifier and carries a flat
<tt>EAR-appraisal</tt>; "cpu" is appraised by Vendor-A's confidential computing
verifier, whose full EAR claims-set, including its own "platform" submod, is
embedded in-band as a nested <tt>EAR</tt>, because it happens to use the same
(JSON) serialization as the enclosing token; "gpu" is appraised by Vendor-B's
confidential computing verifier, whose EAR is tunnelled opaquely as a
<tt>Nested-Token</tt>, JWT-serialized regardless of the serialization of the
enclosing token.
The lead verifier's <tt>ear_status</tt> reflects the worst status found across all
three; the one it cannot itself parse is accounted for as <tt>incomplete</tt>.</t>
        <figure anchor="fig-ex-json-3">
          <name>JSON claims-set: recursive and tunnelled submods</name>
          <sourcecode type="cbor-diag"><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529184,
  "ear_status": "warning",
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "submods": {
    "cvm": {
      "ear_status": "affirming",
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 2,
        "configuration": 2
      }
    },
    "cpu": {
      "eat_profile": "tag:ietf.org,2026:rats/ear#05",
      "iat": 1666529150,
      "ear_verifier_id": {
        "developer": "https://vendor-a.example/cc-verifier",
        "build": "cc-verifier 1.2.0"
      },
      "submods": {
        "platform": {
          "ear_status": "warning",
          "ear_trustworthiness_vector": {
            "hardware": 2,
            "configuration": 1
          }
        }
      }
    },
    "gpu": [
      "JWT",
      "eyJhbGciOiJFUzI1NiJ9.\
eyJlYXRfcHJvZmlsZSI6InRhZzppZXRmLm9yZywyMDI2OnJhdHMvZWFyIzA0IiwiaWF0\
IjoxNjY2NTI5MTAwLCJlYXJfc3RhdHVzIjoiYWZmaXJtaW5nIn0.\
                         QjJyZlBoM0tzWjF2WHdRbjlMbURhU3lFb1RjNGdIak0"
    ]
  }
}
]]></sourcecode>
        </figure>
      </section>
      <section anchor="json-serialisation">
        <name>JSON Serialisation</name>
        <section anchor="examples">
          <name>Examples</name>
          <t>The example in <xref target="fig-ex-json-1"/> shows an EAR claims-set corresponding to a
"contraindicated" appraisal, meaning the verifier has found some problems with
the attester's state reported in the submitted evidence.
Specifically, the identified issue is related to unauthorized code or
configuration loaded in runtime memory (i.e., value 96 in the executables
category).
The appraisal is for a device with one attester labelled "PSA".  Note that in
case there is only one attester, the labelling can be freely chosen because
there is no ambiguity.</t>
          <figure anchor="fig-ex-json-1">
            <name>JSON claims-set: contraindicated appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529184,
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear_raw_evidence": [
    "application/vnd.evidence",
    "NzQ3MjY5NzM2NTYzNzQK"
  ],
  "ear_input_digest": [
    "sha-256",
    "TInrSlzsaz9jfL7abgvJ2roo2P93Jozst3x3OU_afNg"
  ],
  "submods": {
    "PSA": {
      "ear_status": "contraindicated",
      "ear_status_details": [
        "The 'executables' category is contraindicated."
      ],
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear_trustworthiness_vector_details": {
        "executables": [ "unauthorized code found in runtime memory" ]
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ]
    }
  }
}
]]></sourcecode>
          </figure>
          <t>The breakdown of the trustworthiness vector is as follows:</t>
          <ul spacing="normal">
            <li>
              <t>Instance Identity (affirming): recognized and not compromised</t>
            </li>
            <li>
              <t>Configuration (warning): known vulnerabilities</t>
            </li>
            <li>
              <t>Executables (contraindicated): contraindicated run-time</t>
            </li>
            <li>
              <t>File System (none): no claim being made</t>
            </li>
            <li>
              <t>Hardware (affirming): genuine</t>
            </li>
            <li>
              <t>Runtime Opaque (none): no claim being made</t>
            </li>
            <li>
              <t>Storage Opaque (none): no claim being made</t>
            </li>
            <li>
              <t>Sourced Data (none): no claim being made</t>
            </li>
          </ul>
          <t>The example in <xref target="fig-ex-json-2"/> contains the appraisal for a composite device
with two attesters named "CCA Platform" and "CCA Realm" respectively.
Both attesters have either "affirming" or (implicit) "none" values in their
associated trustworthiness vectors.
Note that the "none" values can refer to either an AR4SI category that is
unapplicable for the specific attester (ideally, the applicability should be
specified by the evidence format itself), or to the genuine lack of information
at the attester site regarding the specific category.  For example, the
reference values for the "CCA Realm" executables (i.e., the confidential
computing workload) may not be known to the CCA platform verifier.
In such cases, it is up to the downstream entity (typically, the relying party)
to complete the partial appraisal.</t>
          <figure anchor="fig-ex-json-2">
            <name>JSON claims-set: simple affirming appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529300,
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear_raw_evidence": [
    "application/vnd.evidence",
    "NzQ3MjY5NzM2NTYzNzQKNzQ3MjY5NzM2NTYzNzQK"
  ],
  "submods": {
    "CCA Platform": {
      "ear_status": "affirming",
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ]
    },
    "CCA Realm": {
      "ear_status": "affirming",
      "ear_trustworthiness_vector": {
        "instance-identity": 2
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ]
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="cbor-serialisation">
        <name>CBOR Serialisation</name>
        <section anchor="examples-1">
          <name>Examples</name>
          <t>The example in <xref target="fig-ex-cbor-1"/> is semantically equivalent to that in
<xref target="fig-ex-json-1"/>.  It shows the same "contraindicated" appraisal using the
more compact CBOR serialization of the EAR claims-set.</t>
          <figure anchor="fig-ex-cbor-1">
            <name>CBOR claims-set: contraindicated appraisal</name>
            <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:ietf.org,2026:rats/ear#05",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: [
    "application/vnd.evidence",
    h'6C696665626F61746D616E'
  ],
  1008: [
    1,
    h'4c89eb4a5cec6b3f637cbeda6e0bc9daba28d8ff77268cecb77c77394fda7cd8'
  ],
  266: {
    "PSA": {
      1000: 96,
      1010: [ "The 'executables' category is contraindicated." ],
      1001: {
        0: 2,
        2: 96,
        4: 2
      },
      1011: {
        2: [ "unauthorized code found in runtime memory" ]
      },
      1003: [ "https://veraison.example/policy/1/60a0068d" ]
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="sec-extensions">
      <name>EAR Extensions</name>
      <t>EAR provides core semantics for describing the result of appraising attestation
evidence.
However, a given application may offer extra functionality to its relying
parties, or tailor the attestation result to the needs of the application (e.g.,
TEEP <xref target="I-D.ietf-teep-protocol"/>).
To accommodate such cases, both <tt>EAR</tt> and <tt>EAR-appraisal</tt> claims-sets can be
extended by plugging new claims into the <tt>$$ear-extension</tt> (or
<tt>$$ear-appraisal-extension</tt>, respectively) CDDL socket.</t>
      <t>The rules that govern extensibility of EAR are those defined in <xref target="RFC8392"/> and
<xref target="RFC7519"/> for CWTs and JWTs respectively.</t>
      <t>An extension <bcp14>MUST NOT</bcp14> change the semantics of the <tt>EAR</tt> and <tt>EAR-appraisal</tt>
claims-sets.</t>
      <t>Whether or not an extension requires a new EAR profile identifier depends on whether it must be understood by all consumers of that EAR token.</t>
      <t>If an extension is optional, meaning a receiver that does not understand it can safely ignore it while still processing the rest of the EAR correctly, then the existing EAR profile identifier <bcp14>MAY</bcp14> be retained.
(This is enabled by the requirement to ignore unknown claims stated in <xref section="4" sectionFormat="of" target="RFC9711"/>.)</t>
      <t>However, if an extension introduces claims that <bcp14>MUST</bcp14> be understood and acted upon by all consumers, i.e., a receiver that does not recognise the extension cannot safely process the EAR, then a new EAT profile identifier <bcp14>MUST</bcp14> be used to signal this requirement.
Such a profile identifier would typically be defined in a specification document alongside the mandatory extension claims.</t>
      <section anchor="unregistered-claims">
        <name>Unregistered claims</name>
        <t>An application-specific extension will normally mint its claim from the "private
space" - using integer values less than -65536 for CWT, and Public or
Private Claim Names as defined in Sections <xref target="RFC7519" section="4.2" sectionFormat="bare"/> and <xref target="RFC7519" section="4.3" sectionFormat="bare"/> of <xref target="RFC7519"/> when
serializing to JWT.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> that JWT EARs use Collision-Resistant Public Claim Names
(<xref section="2" sectionFormat="of" target="RFC7519"/>) rather than Private Claim Names.</t>
      </section>
      <section anchor="sec-registered-claims">
        <name>Registered claims</name>
        <t>If an extension will be used across multiple applications, or is intended to be
used across multiple environments, the associated extension claims
<bcp14>SHOULD</bcp14> be registered in one, or both, the CWT and JWT claim registries.</t>
        <t>In general, if the registration policy requires an accompanying specification
document (as it is the case for "specification required" and "standards
action"), such document <bcp14>SHOULD</bcp14> explicitly say that the extension is expected to
be used in EAR claims-sets identified by this profile.</t>
        <t>An up-to-date view of the registered claims can be obtained via the
<xref target="IANA.cwt"/> and <xref target="IANA.jwt"/> registries.</t>
      </section>
      <section anchor="choosing-between-registered-and-unregistered-claims">
        <name>Choosing between registered and unregistered claims</name>
        <t>If an extension supports functionality of a specific application (e.g.
Project Veraison Services), its claims <bcp14>MAY</bcp14> be registered.</t>
        <t>If an extension supports a protocol that may be applicable across multiple
applications or environments (e.g., TEEP), its claims <bcp14>SHOULD</bcp14> be registered.</t>
        <t>Since, in general, there is no guarantee that an application will be confined
within an environment, it is <bcp14>RECOMMENDED</bcp14> that extension claims that have
meaning outside the application's context are always registered.</t>
        <t>It is also possible that claims that start out as application-specific acquire
a more stable meaning over time. In such cases, it is <bcp14>RECOMMENDED</bcp14> that new
equivalent claims are created in the "public space" and are registered as
described in <xref target="sec-registered-claims"/>. The original "private space" claims
<bcp14>SHOULD</bcp14> then be deprecated by the application.</t>
      </section>
      <section anchor="grouping-claims-under-a-single-top-level-key">
        <name>Grouping Claims Under a Single Top-Level Key</name>
        <t>EAR places no constraint on the type of value carried by an extension claim.
An extension may therefore use any CBOR or JSON value type that is appropriate for the information it conveys.</t>
        <t>However, when an extension introduces more than one logically related claim and those claims are intended to be registered in the CWT or JWT claim registries, it is <bcp14>RECOMMENDED</bcp14> to group them as members of a single map value carried under one top-level registered key.
This minimises consumption of the public codepoint namespace, which is a finite shared resource.</t>
        <t>This recommendation does not apply to claims minted from the private space (integer values less than -65536 for CWT, and Private Claim Names as defined in <xref section="4.3" sectionFormat="of" target="RFC7519"/> for JWT), where namespace pressure is not a concern.</t>
      </section>
      <section anchor="sec-extensions-teep">
        <name>TEEP Extension</name>
        <t>The TEEP protocol <xref target="I-D.ietf-teep-protocol"/> specifies the required claims that an attestation
result must carry for a TAM (Trusted Application Manager) to make decisions on
how to remediate a TEE (Trusted Execution Environment) that is out of
compliance, or update a TEE that is requesting an authorized change.</t>
        <t>The list is provided in <xref section="4.3.1" sectionFormat="of" target="I-D.ietf-teep-protocol"/>.</t>
        <t>EAR defines a TEEP application extension for the purpose of conveying such claims.</t>
        <figure anchor="fig-cddl-teep">
          <name>TEEP Extension (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat
;# import rfc9393

$$ear-appraisal-extension //= (
  ear.teep-claims-label => ear-teep-claims
)

ear-teep-claims = non-empty<{
  ? eat.nonce-label => eat.nonce-type
  ? eat.ueid-label => eat.ueid-type
  ? eat.oemid-label => eat.oemid-pen / eat.oemid-ieee / eat.oemid-random
  ? eat.hardware-model-label => eat.hardware-model-type
  ? eat.hardware-version-label => eat.hardware-version-type
  ? eat.manifests-label => eat.manifests-type
}>

ear.teep-claims-label = eat.JC<"ear_teep_claims", 65000>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-example">
          <name>JSON Serialization Example</name>
          <sourcecode type="cddl"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529184,
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear_raw_evidence": [
    "application/vnd.evidence",
    "NzQ3MjY5NzM2NTYzNzQK"
  ],
  "submods": {
    "PSA": {
      "ear_status": "contraindicated",
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ],
      "ear_teep_claims": {
        "eat_nonce": "80FH7byS7VjfARIq0_KLqu6B9j-F79QtV6p",
        "ueid": "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "oemid": "Av8B",
        "hwmodel": "fJYq",
        "hwversion": ["1.2.5", 16384]
      }
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="cbor-serialization-example">
          <name>CBOR Serialization Example</name>
          <sourcecode type="cddl"><![CDATA[
{
  265: "tag:ietf.org,2026:rats/ear#05",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: [
    "application/vnd.evidence",
    h'6C696665626F61746D616E'
  ],
  266: {
    "PSA": {
      1000: 0,
      1001: {
        0: 2,
        1: 2,
        2: 2,
        4: 2
      },
      1003: [ "https://veraison.example/policy/1/60a0068d" ],
      65000: {
        10: h'948f8860d13a463e',
        256: h'0198f50a4ff6c05861c8860d13a638ea',
        258: 64242,
        259: h'ee80f5a66c1fb9742999a8fdab930893',
        260: ["1.2.5", 16384]
      }
    }
  }
}
]]></sourcecode>
        </section>
      </section>
      <section anchor="sec-extensions-veraison">
        <name>Project Veraison Extensions</name>
        <t>The Project Veraison verifier defines a private, application-specific
extension:</t>
        <dl newline="true">
          <dt><tt>ear_veraison_key_attestation</tt></dt>
          <dd>
            <t>contains the public key part of a successfully verified attested key.
The key is a DER encoded ASN.1 SubjectPublicKeyInfo structure (<xref section="4.1.2.7" sectionFormat="of" target="RFC5280"/>).</t>
          </dd>
        </dl>
        <figure anchor="fig-cddl-veraison">
          <name>Project Veraison Extension (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
;# import rfc9711 as eat

$$ear-appraisal-extension //= (
  ear.veraison.key-attestation-label => ear-veraison-key-attestation
)

ear-veraison-key-attestation = {
  "akpub" => eat.binary-data
}

ear.veraison.key-attestation-label = eat.JC<"ear_veraison_key_attestation", -70002>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-examples">
          <name>JSON Serialization Examples</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529184,
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear_raw_evidence": [
    "application/vnd.evidence",
    "NzQ3MjY5NzM2NTYzNzQK"
  ],
  "submods": {
    "PSA_IOT": {
      "ear_status": "contraindicated",
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ],
      "ear_attester_claims": {
        "eat-profile": "http://arm.com/psa/2.0.0",
        "psa-client-id": 1,
        "psa-security-lifecycle": 12288,
        "psa-implementation-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-software-components": [
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          },
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          }
        ],
        "psa-nonce":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-instance-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "psa-certification-reference": "1234567890123-12345"
      },
      "ear_endorser_claims": {
        "ACME Security Lab": {
          "psa-certified": {
            "certificate-number": "1234567890123-12345",
            "date-of-issue": "23/06/2022",
            "test-lab": "Riscure",
            "certification-holder": "ACME Inc.",
            "certified-product": "RoadRunner",
            "hardware-version": "Gizmo v1.0.2",
            "software-version": "TrustedFirmware-M v1.0.6",
            "certification-type": "PSA Certified Level 1 v2.1",
            "developer-type": "PSA Certified – Device"
          }
        }
      },
      "ear_reference_value_provider_claims": {
        "Arm": {
          "psa-implementation-id":
            "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
        }
      }
    }
  }
}
]]></sourcecode>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:ietf.org,2026:rats/ear#05",
  "iat": 1666529184,
  "ear_verifier_id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear_raw_evidence": [
    "application/vnd.evidence",
    "NzQ3MjY5NzM2NTYzNzQK"
  ],
  "submods": {
    "PARSEC_TPM": {
      "ear_status": "affirming",
      "ear_trustworthiness_vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear_appraisal_policy_ids":
        [ "https://veraison.example/policy/1/60a0068d" ],
      "ear_veraison_key_attestation": {
        "akpub":
          "MFkwEwYHKoZIzj0CAQYIKoZIz___"
      }
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="cbor-serialization-example-1">
          <name>CBOR Serialization Example</name>
          <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:ietf.org,2026:rats/ear#05",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: [
    "application/vnd.evidence",
    h'6C696665626F61746D616E'
  ],
  266: {
    "PSA_IOT": {
      1000: 0,
      1001: {
        0: 2,
        1: 2,
        2: 2,
        4: 2
      },
      1003: [ "https://veraison.example/policy/1/60a0068d" ],
      1005: {
        "eat-profile": "http://arm.com/psa/2.0.0",
        "psa-client-id": 1,
        "psa-security-lifecycle": 12288,
        "psa-implementation-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-software-components": [
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          },
          {
            "measurement-value":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
            "signer-id":
              "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
          }
        ],
        "psa-nonce":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA=",
        "psa-instance-id":
          "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAh",
        "psa-certification-reference": "1234567890123-12345"
      },
      1008: {
        "ACME Security Lab": {
          "psa-certified": {
            "certificate-number": "1234567890123-12345",
            "date-of-issue": "23/06/2022",
            "test-lab": "Riscure",
            "certification-holder": "ACME Inc.",
            "certified-product": "RoadRunner",
            "hardware-version": "Gizmo v1.0.2",
            "software-version": "TrustedFirmware-M v1.0.6",
            "certification-type": "PSA Certified Level 1 v2.1",
            "developer-type": "PSA Certified – Device"
          }
        }
      },
      1009: {
        "Arm": {
          "psa-implementation-id":
            "AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyA="
        }
      }
    }
  }
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="media-types">
      <name>Media Types</name>
      <t>Media types for EAR are automatically derived from the base EAT media type
<xref target="RFC9782"/> using the profile string defined in <xref target="sec-ear"/>.</t>
      <t>For example, a JWT serialization would use:</t>
      <artwork><![CDATA[
application/eat-jwt; eat_profile="tag:ietf.org,2026:rats/ear#05"
]]></artwork>
      <t>A CWT serialization would instead use:</t>
      <artwork><![CDATA[
application/eat-cwt; eat_profile="tag:ietf.org,2026:rats/ear#05"
]]></artwork>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol
defined by this specification at the time of posting of this Internet-Draft,
and is based on a proposal described in <xref target="RFC7942"/>.
The description of implementations in this section is intended to assist the
IETF in its decision processes in progressing drafts to RFCs.
Please note that the listing of any individual implementation here does not
imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a catalog of
available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature.
It is up to the individual working groups to use this information as they see
fit".</t>
      <section anchor="project-veraison">
        <name>Project Veraison</name>
        <t>The organization responsible for this implementation is Project Veraison, a
Linux Foundation project hosted at the Confidential Computing Consortium.</t>
        <t>The organization currently provides three separate implementations: one in
Golang, one in Rust and another in C17.</t>
        <t>The developers can be contacted on the Zulip channel:
<eref target="https://veraison.zulipchat.com/#narrow/stream/357929-EAR/"/>.</t>
        <section anchor="githubcomveraisonear">
          <name><tt>github.com/veraison/ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/ear"/>, provides a Golang
package that allows encoding, decoding, signing and verification of EAR
payloads together with a CLI (<tt>arc</tt>) to create, verify and visualize EARs on
the command line.
The maturity level is currently alpha, and only the JWT serialization is
implemented.
The license is Apache 2.0.
The package is used by the Project Veraison verifier to produce attestation
results.</t>
        </section>
        <section anchor="githubcomveraisonc-ear">
          <name><tt>github.com/veraison/c-ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/c-ear"/>, provides a C17
library that allows verification and partial decoding of EAR payloads.
The maturity level is currently pre-alpha, and only the JWT serialization is
implemented.
The license is Apache 2.0.
The library targets relying party applications that need to verify attestation
results.</t>
        </section>
        <section anchor="githubcomveraisonrust-ear">
          <name><tt>github.com/veraison/rust-ear</tt></name>
          <t>The software, hosted at <eref target="https://github.com/veraison/rust-ear"/>, provides a
Rust (2021 edition) library that allows verification and partial decoding of
EAR payloads. The maturity level is currently pre-alpha, with limitted
algorithm support.  Both JWT and COSE serializations are implemented.  The
license is Apache 2.0.  The library targets verifiers that need to produce
attestation results as well as relying party applications that need to verify
and consume attestation results.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-sec-cons">
      <name>Security Considerations</name>
      <t>EAR is a profile of the EAT specification <xref target="RFC9711"/>, it also reuses the CWT specification <xref target="RFC8392"/>.
The security considerations of these specifications therefore apply here too.</t>
      <t>Any textual fields (e.g., the strings in <tt>ear_status_details</tt> and <tt>ear_trustworthiness_vector_details</tt>) that are stored in a file, inserted into a database, or displayed to humans must be properly sanitized to prevent attacks and undesirable behavior.
Further discussion and references on this topic can be found in <xref section="7" sectionFormat="of" target="RFC9839"/>.</t>
      <t>The <tt>ear_endorser_claims</tt> and <tt>ear_reference_value_provider_claims</tt> claims attribute claims to supply chain entities.
The attribution is the Verifier's.
Relying Parties cannot see or check the keys and signatures on which it is based.
Consequently, they rely on the Verifier's mapping from cryptographic identities to identifiers and on the integrity protection of the EAR.</t>
      <section anchor="binding-ear-to-the-appraisal-request">
        <name>Binding EAR to the Appraisal Request</name>
        <t><tt>eat_nonce</tt> alone only proves that the Verifier processed a request carrying a given nonce; it does not prove that the request contained the evidence (or any other input) that the requester actually sent.
An on-path attacker able to tamper with the appraisal request without disturbing the nonce -- for example, by substituting the evidence while leaving the nonce intact -- can therefore cause a Relying Party to accept an EAR that has a valid nonce but does not reflect the evidence the Relying Party asked to have appraised.</t>
        <t>The <tt>ear_input_digest</tt> claim (see <xref target="sec-ear-input-digest"/>), when applicable, mitigates this class of attack by binding the EAR to the exact wire bytes of the appraisal request the Verifier received.
Implementers and deployers are strongly encouraged to read <xref target="sec-ear-input-digest"/> in full before deciding to produce or verify <tt>ear_input_digest</tt>, since an inappropriate deployment topology can silently negate its security benefit.</t>
      </section>
    </section>
    <section anchor="sec-priv-cons">
      <name>Privacy Considerations</name>
      <t>EAR is designed to expose as little identifying information as possible about
the attester.
However, certain EAR claims have direct privacy implications.
Implementations should therefore allow applying privacy-preserving techniques
to those claims, for example allowing their redaction, anonymisation or
outright removal.
Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional
<tt>ear_status_details</tt> and <tt>ear_trustworthiness_vector_details</tt> claims</t>
        </li>
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional <tt>ear_raw_evidence</tt>
claim</t>
        </li>
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to disable inclusion of the optional
<tt>ear_attester_claims</tt>, <tt>ear_verifier_claims</tt>, <tt>ear_endorser_claims</tt> and
<tt>ear_reference_value_provider_claims</tt> claims</t>
        </li>
        <li>
          <t>It <bcp14>SHOULD</bcp14> be possible to allow redaction, anonymisation or removal of
specific claims from the <tt>ear_attester_claims</tt>, <tt>ear_verifier_claims</tt>,
<tt>ear_endorser_claims</tt> and <tt>ear_reference_value_provider_claims</tt> objects</t>
        </li>
      </ul>
      <t>EAR is an EAT, therefore the privacy considerations in <xref section="8" sectionFormat="of" target="RFC9711"/>
apply.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="sec-iana-ear-claims">
        <name>New EAT Claims</name>
        <t>This specification adds the following values to the "JSON Web Token Claims"
registry <xref target="IANA.jwt"/> and the "CBOR Web Token Claims" registry <xref target="IANA.cwt"/>.</t>
        <t>Each entry below is an addition to both registries.</t>
        <t>The "Claim Description", "Change Controller" and "Specification Documents" are
common and equivalent for the JWT and CWT registries.
The "Claim Key" and "Claim Value Types(s)" are for the CWT registry only.
The "Claim Name" is as defined for the CWT registry, not the JWT registry.
The "JWT Claim Name" is equivalent to the "Claim Name" in the JWT registry.</t>
        <section anchor="ear-status">
          <name>EAR Status</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_status</t>
            </li>
            <li>
              <t>Claim Description: EAR Status</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_status</t>
            </li>
            <li>
              <t>Claim Key: 1000 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): unsigned integer (0, 2, 32, 96)</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="trustworthiness-vector">
          <name>Trustworthiness Vector</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_trustworthiness_vector</t>
            </li>
            <li>
              <t>Claim Description: EAR Trustworthiness Vector</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_trustworthiness_vector</t>
            </li>
            <li>
              <t>Claim Key: 1001 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="status-details">
          <name>Status Details</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_status_details</t>
            </li>
            <li>
              <t>Claim Description: EAR Status Details</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_status_details</t>
            </li>
            <li>
              <t>Claim Key: 1010 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): array</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> and <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="trustworthiness-vector-details">
          <name>Trustworthiness Vector Details</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_trustworthiness_vector_details</t>
            </li>
            <li>
              <t>Claim Description: EAR Trustworthiness Vector Details</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_trustworthiness_vector_details</t>
            </li>
            <li>
              <t>Claim Key: 1011 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-raw-evidence">
          <name>EAR Raw Evidence</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_raw_evidence</t>
            </li>
            <li>
              <t>Claim Description: EAR Raw Evidence as CMW</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_raw_evidence</t>
            </li>
            <li>
              <t>Claim Key: 1002 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): array</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-appraisal-policy-identifier">
          <name>EAR Appraisal Policy Identifier</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_appraisal_policy_ids</t>
            </li>
            <li>
              <t>Claim Description: EAR Appraisal Policy Identifiers</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_appraisal_policy_ids</t>
            </li>
            <li>
              <t>Claim Key: 1003 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): array</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="verifier-software-identifier">
          <name>Verifier Software Identifier</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_verifier_id</t>
            </li>
            <li>
              <t>Claim Description: AR4SI Verifier Software Identifier</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_verifier_id</t>
            </li>
            <li>
              <t>Claim Key: 1004 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="attester-claims">
          <name>Attester Claims</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_attester_claims</t>
            </li>
            <li>
              <t>Claim Description: Attester Claims</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_attester_claims</t>
            </li>
            <li>
              <t>Claim Key: 1005 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="verifier-claims">
          <name>Verifier Claims</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_verifier_claims</t>
            </li>
            <li>
              <t>Claim Description: Verifier Claims</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_verifier_claims</t>
            </li>
            <li>
              <t>Claim Key: 1006 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="endorser-claims">
          <name>Endorser Claims</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_endorser_claims</t>
            </li>
            <li>
              <t>Claim Description: Endorser Claims</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_endorser_claims</t>
            </li>
            <li>
              <t>Claim Key: 1008 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="reference-value-provider-claims">
          <name>Reference Value Provider Claims</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_reference_value_provider_claims</t>
            </li>
            <li>
              <t>Claim Description: Reference Value Provider Claims</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_reference_value_provider_claims</t>
            </li>
            <li>
              <t>Claim Key: 1009 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="device-topology">
          <name>Device Topology</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_device_topology</t>
            </li>
            <li>
              <t>Claim Description: Device Attesters Arrangement</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_device_topology</t>
            </li>
            <li>
              <t>Claim Key: 1007 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): map</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-input-digest">
          <name>EAR Input Digest</name>
          <ul spacing="normal">
            <li>
              <t>Claim Name: ear_input_digest</t>
            </li>
            <li>
              <t>Claim Description: Digest of the EAR Appraisal Request Input</t>
            </li>
            <li>
              <t>JWT Claim Name: ear_input_digest</t>
            </li>
            <li>
              <t>Claim Key: 1008 (suggested)</t>
            </li>
            <li>
              <t>Claim Value Type(s): array</t>
            </li>
            <li>
              <t>Change Controller: IESG</t>
            </li>
            <li>
              <t>Specification Document(s): <xref target="sec-ear-input-digest"/> of RFCthis</t>
            </li>
          </ul>
        </section>
        <section anchor="ear-teep-claims">
          <name>EAR TEEP Claims</name>
          <t>TODO</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </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="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="STD94">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="STD96">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="I-D.ietf-rats-ar4si">
          <front>
            <title>Attestation Results for Secure Interactions</title>
            <author fullname="Eric Voit" initials="E." surname="Voit">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Hardjono" initials="T." surname="Hardjono">
              <organization>MIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   This document defines reusable Attestation Result information
   elements.  When these elements are offered to Relying Parties as
   Evidence, different aspects of Attester trustworthiness can be
   evaluated.  Additionally, where the Relying Party is interfacing with
   a heterogeneous mix of Attesting Environment and Verifier types,
   consistent policies can be applied to subsequent information exchange
   between each Attester and the Relying Party.

   This document also defines two serialisations of the proposed
   information model, utilising CBOR and JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-11"/>
        </reference>
        <reference anchor="RFC9711">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="G. Mandyam" initials="G." surname="Mandyam"/>
            <author fullname="J. O'Donoghue" initials="J." surname="O'Donoghue"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>An Entity Attestation Token (EAT) provides an attested claims set that describes the state and characteristics of an entity, a device such as a smartphone, an Internet of Things (IoT) device, network equipment, or such. This claims set is used by a relying party, server, or service to determine the type and degree of trust placed in the entity.</t>
              <t>An EAT is either a CBOR Web Token (CWT) or a JSON Web Token (JWT) with attestation-oriented claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9711"/>
          <seriesInfo name="DOI" value="10.17487/RFC9711"/>
        </reference>
        <reference anchor="I-D.ietf-teep-protocol">
          <front>
            <title>Trusted Execution Environment Provisioning (TEEP) Protocol</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Mingliang Pei" initials="M." surname="Pei">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Dave Wheeler" initials="D. M." surname="Wheeler">
              <organization>Amazon</organization>
            </author>
            <author fullname="Dave Thaler" initials="D." surname="Thaler">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
              <organization>Openchip &amp; Software Technologies, S.L.</organization>
            </author>
            <date day="26" month="February" year="2026"/>
            <abstract>
              <t>   This document specifies the Trusted Execution Environment
   Provisioning (TEEP) Protocol, which enables secure lifecycle
   management of Trusted Components in devices with a Trusted Execution
   Environment (TEE).  The protocol defines message exchanges between a
   Trusted Application Manager (TAM) and a TEEP Agent to query device
   state, convey attestation evidence, and install, update, or delete
   Trusted Components.  Messages are encoded in CBOR and secured using
   COSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-protocol-26"/>
        </reference>
        <reference anchor="RFC9782">
          <front>
            <title>Entity Attestation Token (EAT) Media Types</title>
            <author fullname="L. Lundblade" initials="L." surname="Lundblade"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="May" year="2025"/>
            <abstract>
              <t>The payloads used in Remote ATtestation procedureS (RATS) may require an associated media type for their conveyance, for example, when the payloads are used in RESTful APIs.</t>
              <t>This memo defines media types to be used for Entity Attestation Tokens (EATs).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9782"/>
          <seriesInfo name="DOI" value="10.17487/RFC9782"/>
        </reference>
        <reference anchor="RFC9999">
          <front>
            <title>Remote ATtestation procedureS (RATS) Conceptual Message Wrapper (CMW)</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="N. Smith" initials="N." surname="Smith"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>The conceptual messages introduced by the Remote ATtestation procedureS (RATS) architecture (RFC 9334) are protocol-agnostic data units that are conveyed between RATS roles during RATS interactions. Conceptual messages describe the meaning and function of such data units within RATS data flows without specifying a wire format, encoding, transport mechanism, or processing details. The initial set of conceptual messages is defined in Section 8 of RFC 9334 and includes Evidence, Attestation Results, Endorsements, Reference Values, and Appraisal Policies.</t>
              <t>This document introduces the Conceptual Message Wrapper (CMW) that provides a common structure to encapsulate these messages. It defines a dedicated Concise Binary Object Representation (CBOR) tag, corresponding JSON Web Token (JWT) and CBOR Web Token (CWT) claims, and an X.509 extension.</t>
              <t>Together, these mechanisms allow CMWs to be used in CBOR-based protocols, web APIs using JWTs and CWTs, and PKIX artifacts such as X.509 certificates. Additionally, this document defines media types and CoAP Content-Formats that may be used to identify CMWs when transported over protocols such as HTTP, MIME, and CoAP.</t>
              <t>The goal is to improve the interoperability and flexibility of remote attestation protocols. Introducing a shared message format such as CMW enables consistent support for different attestation message types, enables the evolution of message serialization formats without breaking compatibility, and avoids the need to redefine how messages are handled within each protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9999"/>
          <seriesInfo name="DOI" value="10.17487/RFC9999"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-measured-component">
          <front>
            <title>Entity Attestation Token (EAT) Measured Component</title>
            <author fullname="Simon Frost" initials="S." surname="Frost">
              <organization>Arm</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="20" month="February" year="2026"/>
            <abstract>
              <t>   The term "measured component" refers to an object within the
   attester's target environment whose state can be sampled and
   typically digested using a cryptographic hash function.  Examples of
   measured components include firmware stored in flash memory, software
   loaded into memory at start time, data stored in a file system, or
   values in a CPU register.  This document provides the information
   model for the "measured component" and two associated data models.
   This separation is intentional: the JSON and CBOR serializations,
   coupled with the media types and associated Constrained Application
   Protocol (CoAP) Content-Formats, enable the immediate use of the
   semantics within the Entity Attestation Token (EAT) framework.
   Meanwhile, the information model can be reused in future
   specifications to provide additional serializations, for example,
   using ASN.1.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-measured-component-12"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9839">
          <front>
            <title>Unicode Character Repertoire Subsets</title>
            <author fullname="T. Bray" initials="T." surname="Bray"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="August" year="2025"/>
            <abstract>
              <t>This document discusses subsets of the Unicode character repertoire for use in protocols and data formats and specifies three subsets recommended for use in IETF specifications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9839"/>
          <seriesInfo name="DOI" value="10.17487/RFC9839"/>
        </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="I-D.ietf-rats-multi-verifier">
          <front>
            <title>Remote Attestation with Multiple Verifiers</title>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>Arm Ltd</organization>
            </author>
            <author fullname="zhang jun" initials="Z." surname="jun">
              <organization>Huawei Technologies France S.A.S.U.</organization>
            </author>
            <author fullname="Houda Labiod" initials="H." surname="Labiod">
              <organization>Huawei Technologies France S.A.S.U.</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="30" month="October" year="2026"/>
            <abstract>
              <t>   IETF RATS Architecture, defines the key role of a Verifier.  In a
   complex system, this role needs to be performed by multiple Verifiers
   coordinating together to assess the full trustworthiness of an
   Attester.  This document focuses on various topological patterns for
   a multiple Verifier system.  It only covers the architectural aspects
   introduced by the Multi Verifier concept, which is neutral with
   regard to specific wire formats, encoding, transport mechanisms, or
   processing details.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-multi-verifier-01"/>
        </reference>
        <reference anchor="I-D.ietf-rats-corim">
          <front>
            <title>Concise Reference Integrity Manifest</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Yogesh Deshpande" initials="Y." surname="Deshpande">
              <organization>arm</organization>
            </author>
            <author fullname="Ned Smith" initials="N." surname="Smith">
              <organization>Independent</organization>
            </author>
            <author fullname="Wei Pan" initials="W." surname="Pan">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   Remote Attestation Procedures (RATS) enable Relying Parties to assess
   the trustworthiness of a remote Attester and therefore to decide
   whether or not to engage in secure interactions with it.  Evidence
   about trustworthiness can be rather complex and it is deemed
   unrealistic that every Relying Party is capable of the appraisal of
   Evidence.  Therefore that burden is typically offloaded to a
   Verifier.  In order to conduct Evidence appraisal, a Verifier
   requires not only fresh Evidence from an Attester, but also trusted
   Endorsements and Reference Values from Endorsers and Reference Value
   Providers, such as manufacturers, distributors, or device owners.
   This document specifies the information elements for representing
   Endorsements and Reference Values in CBOR format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-corim-12"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC4151">
          <front>
            <title>The 'tag' URI Scheme</title>
            <author fullname="T. Kindberg" initials="T." surname="Kindberg"/>
            <author fullname="S. Hawke" initials="S." surname="Hawke"/>
            <date month="October" year="2005"/>
            <abstract>
              <t>This document describes the "tag" Uniform Resource Identifier (URI) scheme. Tag URIs (also known as "tags") are designed to be unique across space and time while being tractable to humans. They are distinct from most other URIs in that they have no authoritative resolution mechanism. A tag may be used purely as an entity identifier. Furthermore, using tags has some advantages over the common practice of using "http" URIs as identifiers for non-HTTP-accessible resources. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4151"/>
          <seriesInfo name="DOI" value="10.17487/RFC4151"/>
        </reference>
        <reference anchor="IANA.cwt" target="https://www.iana.org/assignments/cwt">
          <front>
            <title>CBOR Web Token (CWT) Claims</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.jwt" target="https://www.iana.org/assignments/jwt">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
    </references>
    <?line 1389?>

<section anchor="collated-cddl">
      <name>Collated CDDL</name>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================

;;; *** undefined: $$ear-extension
;;; *** undefined: $$ear-appraisal-extension
EAR = {
  eat.profile-label => "tag:ietf.org,2026:rats/ear#05",
  ? status-label => ar4si.trustworthiness-tier,
  ? status-details-label => details-type,
  eat.iat-claim-label => ~eat.time-int,
  ? eat.exp-claim-label => ~eat.time-int,
  verifier-id-label => ar4si.verifier-id,
  ? raw-evidence-label => cmw-record,
  eat.submods-label => {+ text => $submod-value},
  ? eat.nonce-label => eat.nonce-type,
  ? topology-label => topology-type,
  ? input-digest-label => mc.digest,
  * $$ear-extension,
}
cmw-record = eat.JC<cmw.json-record, cmw.cbor-record>
$submod-value /= EAR-appraisal / EAR / eat.Nested-Token
raw-evidence-label = eat.JC<"ear_raw_evidence", 1002>
verifier-id-label = eat.JC<"ear_verifier_id", 1004>
topology-label = eat.JC<"ear_device_topology", 1007>
input-digest-label = eat.JC<"ear_input_digest", 1008>
EAR-appraisal = {
  ? eat.profile-label => eat.general-uri / eat.general-oid,
  status-label => ar4si.trustworthiness-tier,
  ? status-details-label => details-type,
  ? trustworthiness-vector-label => ar4si.trustworthiness-vector,
  ? trustworthiness-vector-details-label => trustworthiness-vector-\
                                                             details,
  ? appraisal-policy-ids-label => [+ text],
  ? eat.nonce-label => eat.nonce-type,
  ? attester-claims-label => claims-map-type,
  ? verifier-claims-label => claims-map-type,
  ? endorser-claims-label => supply-chain-claims-type,
  ? reference-value-provider-claims-label => supply-chain-claims-\
                                                                type,
  * $$ear-appraisal-extension,
}
status-label = eat.JC<"ear_status", 1000>
trustworthiness-vector-label = eat.JC<"ear_trustworthiness_vector", \
                                                                1001>
status-details-label = eat.JC<"ear_status_details", 1010>
trustworthiness-vector-details-label = eat.JC<"\
                           ear_trustworthiness_vector_details", 1011>
details-type = [+ text]
trustworthiness-vector-details = ar4si.non-empty<{
    ? ar4si.instance-identity-label => details-type,
    ? ar4si.configuration-label => details-type,
    ? ar4si.executables-label => details-type,
    ? ar4si.file-system-label => details-type,
    ? ar4si.hardware-label => details-type,
    ? ar4si.runtime-opaque-label => details-type,
    ? ar4si.storage-opaque-label => details-type,
    ? ar4si.sourced-data-label => details-type,
}>
appraisal-policy-ids-label = eat.JC<"ear_appraisal_policy_ids", 1003>
attester-claims-label = eat.JC<"ear_attester_claims", 1005>
verifier-claims-label = eat.JC<"ear_verifier_claims", 1006>
endorser-claims-label = eat.JC<"ear_endorser_claims", 1008>
reference-value-provider-claims-label = eat.JC<"\
                          ear_reference_value_provider_claims", 1009>
supply-chain-claims-type = {+ text => claims-map-type}
claims-map-type = eat.JC<claims-map-type-json, claims-map-type-cbor>
claims-map-type-json = {+ text => any}
claims-map-type-cbor = {+ (text / int) => any}
topology-type = {+ text => [+ text]}
eat.JC<J, C> = eat.JSON-ONLY<J> / eat.CBOR-ONLY<C>
eat.JSON-ONLY<J> = J .feature "json"
eat.CBOR-ONLY<C> = C .feature "cbor"
ar4si.non-empty<M> = M .within ({+ any => any})
ar4si.trustworthiness-tier /= ar4si.trustworthiness-tier-none-label \
/ ar4si.trustworthiness-tier-affirming-label / ar4si.trustworthiness\
-tier-warning-label / ar4si.trustworthiness-tier-contraindicated-\
                  label / ar4si.trustworthiness-tier-incomplete-label
ar4si.verifier-id = {
  ar4si.developer-label => text,
  ar4si.build-label => text,
}
ar4si.trustworthiness-vector = ar4si.non-empty<{
    ? ar4si.instance-identity-label => ar4si.trustworthiness-claim,
    ? ar4si.configuration-label => ar4si.trustworthiness-claim,
    ? ar4si.executables-label => ar4si.trustworthiness-claim,
    ? ar4si.file-system-label => ar4si.trustworthiness-claim,
    ? ar4si.hardware-label => ar4si.trustworthiness-claim,
    ? ar4si.runtime-opaque-label => ar4si.trustworthiness-claim,
    ? ar4si.storage-opaque-label => ar4si.trustworthiness-claim,
    ? ar4si.sourced-data-label => ar4si.trustworthiness-claim,
}>
ar4si.instance-identity-label = ar4si.JC<"instance-identity", 0>
ar4si.configuration-label = ar4si.JC<"configuration", 1>
ar4si.executables-label = ar4si.JC<"executables", 2>
ar4si.file-system-label = ar4si.JC<"file-system", 3>
ar4si.hardware-label = ar4si.JC<"hardware", 4>
ar4si.runtime-opaque-label = ar4si.JC<"runtime-opaque", 5>
ar4si.storage-opaque-label = ar4si.JC<"storage-opaque", 6>
ar4si.sourced-data-label = ar4si.JC<"sourced-data", 7>
ar4si.JC<J, C> = ar4si.JSON-ONLY<J> / ar4si.CBOR-ONLY<C>
ar4si.JSON-ONLY<J> = J .feature "json"
ar4si.CBOR-ONLY<C> = C .feature "cbor"
ar4si.trustworthiness-tier-none-label = ar4si.JC<"none", 0>
ar4si.trustworthiness-tier-affirming-label = ar4si.JC<"affirming", 2>
ar4si.trustworthiness-tier-warning-label = ar4si.JC<"warning", 32>
ar4si.trustworthiness-tier-contraindicated-label = ar4si.JC<"\
                                                contraindicated", 96>
ar4si.trustworthiness-tier-incomplete-label = ar4si.JC<"incomplete"\
                                                               , 127>
ar4si.developer-label = ar4si.JC<"developer", 0>
ar4si.build-label = ar4si.JC<"build", 1>
ar4si.trustworthiness-claim = -128 .. 127
cmw.json-record = [
  type: cmw.media-type,
  value: cmw.base64url-string,
  ? ind: uint .bits cmw.cm-type,
]
cmw.cbor-record = [
  type: cmw.coap-content-format-type / cmw.media-type,
  value: bytes,
  ? ind: uint .bits cmw.cm-type,
]
cmw.media-type = text .abnf ("Content-Type" .cat cmw.Content-Type-\
                                                                ABNF)
cmw.base64url-string = text .regexp "[A-Za-z0-9_-]+"
cmw.cm-type = &(
  reference-values: 0,
  endorsements: 1,
  evidence: 2,
  attestation-results: 3,
  appraisal-policy: 4,
)
cmw.coap-content-format-type = uint .size 2
cmw.Content-Type-ABNF = '

Content-Type   = Media-Type-Name *( *SP ";" *SP parameter )
parameter      = token "=" ( token / quoted-string )

token          = 1*tchar
tchar          = "!" / "#" / "$" / "%" / "&" / "\'" / "*"
               / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
               / DIGIT / ALPHA
quoted-string  = %x22 *( qdtext / quoted-pair ) %x22
qdtext         = SP / %x21 / %x23-5B / %x5D-7E
quoted-pair    = "\\" ( SP / VCHAR )

Media-Type-Name = type-name "/" subtype-name

type-name = restricted-name
subtype-name = restricted-name

restricted-name = restricted-name-first *126restricted-name-chars
restricted-name-first  = ALPHA / DIGIT
restricted-name-chars  = ALPHA / DIGIT / "!" / "#" /
                         "$" / "&" / "-" / "^" / "_"
restricted-name-chars =/ "." ; Characters before first dot always
                             ; specify a facet name
restricted-name-chars =/ "+" ; Characters after last plus always
                             ; specify a structured syntax suffix

DIGIT     =  %x30-39           ; 0 - 9
POS-DIGIT =  %x31-39           ; 1 - 9
ALPHA     =  %x41-5A / %x61-7A ; A - Z / a - z
SP        =  %x20
VCHAR     =  %x21-7E           ; printable ASCII (no SP)
'
mc.digest = [
  alg: int / text,
  val: mc.digest-value-type,
]
mc.digest-value-type = mc.eat.JC<mc.bytes-b64u, bytes>
mc.eat.JC<J, C> = mc.eat.JSON-ONLY<J> / mc.eat.CBOR-ONLY<C>
mc.eat.JSON-ONLY<J> = J .feature "json"
mc.eat.CBOR-ONLY<C> = C .feature "cbor"
mc.bytes-b64u = text .b64u bytes
eat.profile-label = eat.JC<"eat_profile", 265>
eat.iat-claim-label = eat.JC<"iat", 6>
eat.time-int = #6.1(int)
eat.exp-claim-label = eat.JC<"exp", 4>
eat.submods-label = eat.JC<"submods", 266>
eat.nonce-label = eat.JC<"eat_nonce", 10>
eat.nonce-type = eat.JC<tstr .size (8 .. 88), bstr .size (8 .. 64)>
eat.Nested-Token = eat.CBOR-Nested-Token / eat.JSON-Selector
eat.general-uri = eat.JC<text, ~uri>
eat.general-oid = eat.JC<eat.json-oid, ~eat.oid>
eat.CBOR-Nested-Token = eat.JSON-Token-Inside-CBOR-Token / eat.CBOR-\
                                              Token-Inside-CBOR-Token
eat.JSON-Selector = eat.$JSON-Selector
eat.json-oid = tstr .regexp "([0-2])((\\.0)|(\\.[1-9][0-9]*))*"
eat.oid = #6.111(bstr)
eat.JSON-Token-Inside-CBOR-Token = tstr
eat.CBOR-Token-Inside-CBOR-Token = bstr .cbor eat.$CBOR-Tagged-Token
eat.$JSON-Selector /= [
    type: "JWT",
    nested-token: eat.JWT-Message,
] / [
    type: "CBOR",
    nested-token: eat.CBOR-Token-Inside-JSON-Token,
]
eat.$CBOR-Tagged-Token /= #6.61(bstr) / #6.18(bstr) / #6.17(bstr) / \
                                                          #6.16(bstr)
eat.JWT-Message = tstr .regexp "[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\.[A\
                                                        -Za-z0-9_-]*"
eat.CBOR-Token-Inside-JSON-Token = eat.base64-url-text
eat.base64-url-text = tstr .regexp "[A-Za-z0-9_-]+"
]]></artwork>
    </section>
    <section anchor="open-policy-agent-example">
      <name>Open Policy Agent Example</name>
      <t>Open Policy Agent <eref target="https://www.openpolicyagent.org">OPA</eref> is a popular and
flexible policy engine that is used in a variety of contexts, from cloud to
IoT.  OPA policies are written using a purpose-built, declarative programming
language called
<eref target="https://www.openpolicyagent.org/docs/latest/policy-language/">Rego</eref>.  Rego has
been designed to handle JSON claim-sets and their JWT envelopes as first class
objects, which makes it an excellent fit for dealing with JWT EARs.</t>
      <t>The following example illustrates an OPA policy that a Relying Party would use
to make decisions based on a JWT EAR received from a trusted verifier.</t>
      <sourcecode type="rego"><![CDATA[
package ear

ear_appraisal = {
    "verified": signature_verified,
    "appraisal-status": status,
    "trustworthiness-vector": trust_vector,
} {
    # verify EAR signature is correct and from one of the known and
    # trusted verifiers
    signature_verified := io.jwt.verify_es256(
        input.ear_token,
        json.marshal(input.trusted_verifiers)
    )

    # extract the EAR claims-set
    [_, payload, _] := io.jwt.decode(input.ear_token)

    # access the attester-specific appraisal record
    app_rec := payload.submods.PARSEC_TPM
    status := app_rec["ear_status"] == "affirming"

    # extract the trustworhiness vector for further inspection
    trust_vector := app_rec["ear_trustworthiness_vector"]
}

# add further conditions on the trust_vector here
# ...
]]></sourcecode>
      <t>The result of the policy appraisal is the following JSON object:</t>
      <sourcecode type="json"><![CDATA[
{
    "ear_appraisal": {
        "appraisal-status": true,
        "trustworthiness-vector": {
            "executables": 2,
            "hardware": 2,
            "instance-identity": 2
        },
        "verified": true
    }
}
]]></sourcecode>
      <t>For completeness, the trusted verifier public key and the EAR JWT used in the
example are provided below.</t>
      <artwork><![CDATA[
=============== NOTE: '\' line wrapping per RFC 8792 ================
{
    "ear_token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJlYXIucmF3L\
WV2aWRlbmNlIjoiTnpRM01qWTVOek0yTlRZek56UUsiLCJlYXIudmVyaWZpZXItaWQiO\
nsiYnVpbGQiOiJ2dHMgMC4wLjEiLCJkZXZlbG9wZXIiOiJodHRwczovL3ZlcmFpc29uL\
XByb2plY3Qub3JnIn0sImVhdF9wcm9maWxlIjoidGFnOmdpdGh1Yi5jb20sMjAyMzp2Z\
XJhaXNvbi9lYXIiLCJpYXQiOjEuNjY2NTI5MTg0ZSswOSwianRpIjoiNTViOGIzZmFkO\
GRkMWQ4ZWFjNGU0OGYxMTdmZTUwOGIxMWY4NDRkOWYwMTg5YmZlZDliODc1MTVhNjc1N\
DI2NCIsIm5iZiI6MTY3NzI0Nzg3OSwic3VibW9kcyI6eyJQQVJTRUNfVFBNIjp7ImVhc\
i5hcHByYWlzYWwtcG9saWN5LWlkIjoiaHR0cHM6Ly92ZXJhaXNvbi5leGFtcGxlL3Bvb\
GljeS8xLzYwYTAwNjhkIiwiZWFyLnN0YXR1cyI6ImFmZmlybWluZyIsImVhci50cnVzd\
HdvcnRoaW5lc3MtdmVjdG9yIjp7ImV4ZWN1dGFibGVzIjoyLCJoYXJkd2FyZSI6Miwia\
W5zdGFuY2UtaWRlbnRpdHkiOjJ9LCJlYXIudmVyYWlzb24ua2V5LWF0dGVzdGF0aW9uI\
jp7ImFrcHViIjoiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFY2pTc\
DhfTVdNM2d5OFR1Z1dPMVRwUVNqX3ZJa3NMcEMtZzhsNVMzbHBHYjdQV1dHb0NBakVQO\
F9BNTlWWndMWGd3b1p6TjBXeHVCUGpwYVdpV3NmQ1EifX19fQ.3Ym-f1LEgamxePUM7h\
6Y2RJDGh9eeL0xKor0n1wE9jdAnLNwm3rTKFV2S2LbqVFoDtK9QGalT2t5RnUdfwZNmg\
",
    "trusted_verifiers": {
        "keys": [
            {
                "alg": "ES256",
                "crv": "P-256",
                "kty": "EC",
                "x": "usWxHK2PmfnHKwXPS54m0kTcGJ90UiglWiGahtagnv8",
                "y": "IBOL-C3BttVivg-lSreASjpkttcsz-1rb7btKLv8EX4"
            }
        ]
    }
}
]]></artwork>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
      <t>The list of currently open issues for this document can be found at
<eref target="https://github.com/thomas-fossati/draft-ear/issues"/>.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks to
Dave Thaler,
Dhawal Kumar,
Ding Ma,
Greg Kostal,
Jerry Yu,
Raghuram Yeluri,
Simon Frost,
Tobin Feldman-Fitzthum,
Yogesh Deshpande
for helpful comments and discussions that have shaped this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
JjET3YgLE+o/1taZkHlNJseU7lnB5KiZutBERh8py4Ir8pB1sLt3rK5a2T45
ApXthItIsaMTbMouWGtapYrC22lhZaR24ykpeZOr8Auny96rkT1Q/1KoCnN1
NECYypgi61IrqZktei+uOqm5VwDHmtRD+mC6pzMq9Y93VDxkGuXy+pWbBzjp
PAVialeoJ7KPVFEWY+avUleyP4O9v0Fp+dR92/tTcZlTXMpXTpSVF0dDJvwK
fMRNxw2wNVcmmbvShg1t6voDPAS9Hq+YdwhtWqV3GSbC0IUlYBZ4M49GbrXb
GxulhhSvNJap1TSYamB/k070vDy/LBnkZMhQwC1ePW3G2dvlHKpx4KIHAmfD
CbvGXH7LfKivqOtWWuK3D6t1/lr/L7Ua9fdPpa0UqvXvhRkaFf/qQUdz5KDX
QnRUuC9SVKu9urbeebqx2YS/HPo1nz1YdUOLQabbO4d7ICKYsOwDt19OKdRm
Efill5gHWJSFdOIpujkXza201ehgwvIrlKOFfdqrK83OCsiZdrkpchkUrNjq
OMxgrkG5iQknvJONJ0LL68ZeY0GHwHe4Rk9Ogyeuf4z5dWm5edl/ga1fhbfj
xL5uARubm7JiE1p74ZHbD9MxvTrkvp2714KuD+wNYsjekZO22bffsq/bIBPL
kJVidkHf//e//jdoC3h0Vk0nXyux6L67eUysmk9NvZ8v/2oiL2WZ6jr9n0rO
A5Wc7eOTvZ1PvXeH/81DwcvZ39WKu7E4NhYMln+4f3Wzd3P++vvkont72dzZ
fn/epb8/ffpUW4ytD3GF/FeOPC75Q0pq9x/YJ4JXrf2p/eL//vPri39qv/9V
tF9OZPhT2f1T2f0GZRdvmPxj6rKP7EM84rd7sNDMsvgHrjqTRRc5HotrUovw
F+NOGipN6WZ8t+RY9be4zKNDTwiOX79qdUhlVLKoZ2kEZGjXOFlGdioV/ywl
VHEs8zQLtkiV0WPpVvD7lzf5M1vTz5/fo9kwWLYpPKfqS7Jw8+Iver/qi4/s
rrH59gnpyCJ2JhOhDnw1VFaqCsjh8SbyqKQHGV9iaSU4KebTDEwV8aSUaAQ9
JwkHZcjLFrsxVnoNcmc3dQd5nYoq43VtbkY1bznoETpRBW4jho2Q2uHJchHZ
QDRRIUblmcsrseSqS/HEboYh0hRp2t3r7WNzDIuUESwyqJ7TxOHHMBX5DD7O
nWqrHe/vZA3rXRQg4sZGfngUqpVj1Bm6YEHjnGK1FXODKCxIRjFZ+HIm78Cm
yF0RZYdTbFj7fBsABpTVMVwuGAzwvALr1/Qx5hU2g3Me1GVcZvBacbMnftYS
ZRuz4nou+BoBgxzHeMsGpb7LPAsqeSZB6IobdChaSCRjc/jeVMar1fkaQzdK
EBCWuvxjHslSTsS3BwFVXoRvHgN5yIuSXP86FHkKBZS5TGd5JAz6o0QSDEL2
EM1FFH0Zheogz3BZFKvqYpEJrP0eBjf0UVgXZptjX4qXw+3GKgGgBtn+lBeK
LgZXlmuXkdZasCrztCAGgqHDLlmsEc+u6lyskqbLFcBd7YY5Ee5IoMJo7DQs
8AWnNggCv4+5+1pgrCuiYRVAAF6SaEUI4lhUjO6W8t815JxbtKgfSLRT4BGX
DMSpBxasrtaoPKK0xK2E2l0uqsKjqnyAI5sUAU/KIwEiWQdhPP1i72M6o7qG
jhqNEjoqFIS3oxcl3FG1A+BxBqQSTseNimnxjTk5p9JwMiEXbs8CvMsyn8PY
LS4EGFuvEryRoS5+2sd8+wuGnAv8jO2d1lPxTaURqKB3OiAVFb9p+hfTKJxQ
2FocRFvWjz8tzVl9t9gEWuRksD2K3TRNbla4gMHK6vrTzfYm1rJeWW6w2f55
GOajaZ9ay0FQanzmSUkVqa4BUvvsgs7L9QJUrs1QsCaAk+5QxoRT4RZVALvO
9Vu57jWQEcfqyfKMnsprhpnDODOs84D4N+S0NyoZ4to7B1176bObep8p5JBj
o+uS29FwYTalypGcFZNwmXgMGcW3WFiRZQfRAqraHMyKyboKB9xoMnKZuVEx
KxxhXmUIM0ujNXndpRfEXApye4IVqW20pemVhE2YGSVkFx/N40WI4tqM+RjN
7K69Jb3n1+8udTf3F1DYisI+XRKlb66xeQgvWQlD7rXM2JQ7ej/wQUQ5/5AN
UPN302FQpOeK+y+N5AkRks8SRyLXt+0B2hi/bRvkCMZOWMRglkD7a9kBXxay
bP/anbGMnbG/YWeIHKOQS95ZboQ39uSjscxeadg2Ved5I1Kodt6e7JmbJ6Lb
te3Dm3sDq3r/6N3cBqrCv+Z+CaKxKu9MBXmPlxi537r9pKmKtM3qC3hB9Vbm
+46uHcjwHHXlDMcVh5mWVakyY3slfVpWuadYfnFBDRVdlrH/c80pXUpccifn
45nz4a9lgdk505IlOJieVNM8SSifa0b3+aCOADCP/Ey/rk1chK1upv61906J
2G+6GxOey0RSBBGmIolbwSgB3aXLM9BwoKhwvOklcme8ZXThYabypNGkCFJK
ecMolFuJJoDhmI6agwC+ykSOGBBZmJLeJa6QTpXSjd/wplkmCUr5fEQJdkzZ
SyZUFYnrG8rCC0WIOUceTeMQVUC8+gcT6chAxe2qvmdVwe7e+z1l2oi8H09F
+icVNzLKC7ZUc6F54XbK+6cekxpuXqwoE48DuicHCJS0UL5akeaqqqeLtHVK
68iVldewkDgwXD+W2d8zW7/lu/g45qFQHhE5CCqvnBSXs+t3XbPQEHqtuFjF
FheraLkofEMPcO+X4i44zpSnd8U1dsecV2BeV40JzOLmEtwDWbBAn7wyHn1K
7aZBOKOCc+y5ogSNR3chqCwWGrAYT3VV9zwbFb6WMDsDbwoQqiboustznTH3
ykPCpTtqMKV7GxORHLq9kLGfCuZHfFuFO55IfSs3irnJuajrE8DImqaqtAZf
9+w4pNYrX0ufrhkAUzifqvuGtbutkfeB9XxtDhKSToxjeVx4X3AlLm9evvYr
p+IXwUTezSmNIuSvdDmjGLU/NfLq1WVV2v1Po/LVdm52JVgK2nOqDrpOsHr1
Tf2uh8ID5VATh5vQ5RmcLaYyOes2CNJwyJdIIh+BUbjcOW8PQlFeWSgLKAhU
BUB7uCUpX+yiVw0pbZuBnqLaACxEuYsk7fjBJEpm6oriPE3iIbkkvGSKtQV9
Tulx/YULRJ5Hxe77vG3oUZFWuNRok1TqVfNARPuAbwqGkfR0PJ6aKOsgLhij
QhRhxBpKjPd5BOTGUbJPGOAkoCmPy1sgn4t73JSARmnA9z8maIfTTewZ6CF5
XlRCmHHBAMM2Vomlbh8oxaggrBWWQf+yayRWM5rxlQUckAuT5eKFPFVtv8Tc
RSFATXSTK4MEOKk3PIpDnp+UCS3wRnGIWGERFhUph3WdeHkkgXN00ZnP2eWo
mCfxbCzKaWHlA1hlGg5HdKlLco317/Tix1y8M9dSjYvM2wT5CPuE8CqETGPR
sjiJZf8ut1n+pjkIEazFO3yGadHAv8vaytdD1+3K2+Pri5UEOdID1YS7Zi29
YQv3W24z2hC2Vg6SkVj5879pZXL+v0EBSigOPCv0a6StXl0jDpUI6s0pxYai
pt1sRY75GbEPrD5Q4h2kQhyJMivGdayhG7vEHFU1jF6Fu9wXXvjixmSRkCr4
O1e8Owv6Nl2PIT5Rs0SW78ysiSCvr+VSW3O97HIvYSvwlS7AU1Jkl7j3DDz9
OkqqI2XUXOjRh0je7RaO+FodHnLxpB15z2cqylScGGvflR7TGkoaS1zxjA21
RHiZWKksSfhXn4U2ie+DmSwZS7/56no6kVrKlukjajhtmBlpcsZImOBbE/WH
5XFHVc86qRJyevKpGAoflYYr1w0sfzCuGItrFQI+y4OcJ9qoW3bBF9ULbTO2
9J5PbHNKlZ0BiFsUzQI6zHQ4pCSMZfW2AClAdAvMJSEeZTL1UrNut+v2Kvx/
s0PdypiwZXf3Tl5h8eFKXKBhC71CaTGA20CQv/zyryd7B/tfRQpBr1Sp95TY
fhWEqgXEYogtGLkagvcMLiHaeghEweL5R0ONsUFeIb0Yn6T4vA+v1Eh34dfc
YAIqrQfhGdhN7uw3w0UVkfkt2HUX3O5WQ74V2+6B6wM/JuH8R8E+XO+xe6Nu
cq6Co65lLYaaPgoy6p3DswWgqhxPkmX7n4qA1QAp/A3vuGhUV/kzquBTFVa6
GE53DL4It+78gATc6j8PcPfglLJqT4ST/R74abHR1WDjsu13DlsNuKqRJbzW
/lkUWAkjdcP6jqh8VYFWpqK+ADSlcRYg0IKhJCzW/yDcSG3xYqiU7JRqqJTH
uQc7FkCl8weByp6wwO6ASslIW8B9SuNUQ2XRUBIqG38QqByr+wz42++E9XkH
lO4xWKuhdt93Fsi4B35KQnXzDwJVjn/EmmDkzquCYuk+4mqoiXG21XUg2yB5
YNo4oQUgWzSuBNHT/1CGjaK7i15Re5e8olWQ0b2mC8BC7/TCu3NnG/yVBTCq
/MI3UebvpAGUPMzV8KJaOZIce29331qW4zg2Rkqh+waro1K9NUxK56DL3+kK
zmfPntlPnjyh80NyF2zZpdrYi5tUVBUg/xWn+2OuvjgkLsoIPCCr5jsR11l0
ctO1LGyUzAYnx3ta9fbCgCj6yQcYe1sXMwoxPhXhXDT7Oz7HsE/YqpxHxCfB
l8m9LaVcdPQqUTxd7RWPCbq8I3X5orE3vnE4plXOUGSRFU1++SudX+Ofxh3F
X4u53lnxiptJZlG0Uk+KRjquFg3HXoMfYaMnZfyoW1+tYhVFkQZ41qD7JMTy
cKkNSrTiBy8s88bllee2UZPcXiHK4KJa+kW7VhUkjdIQRnJfnWylF1bFXpXr
Sai8Q+qz9sIqA83oUOLC3OnpC6sKiEZH49Y76rXxwjLXziT0XTUR4UNR2tSZ
pqEAkXySMML9o4jou/I1Uw7b7/d9iVvdOcLctxe0u+Py0If8T3yGp1LwMDYY
ATu0CfzIpPfTN1GaNCHmCtqJ3yB4tdYKLR/UWqqcc605TMKhMAn5suimdCym
NUfqWA8a5jeCG/4nJ/JkseBALmKirEEyIl+WiKUJdHknCpp166oTaev2b18W
ukZfWNWEUzF7daNindyHC1exaKQ7J3y/Y40/CxPWKRqGlzh+z3SgJRO2WXGR
EJ6ez2UjL+YhRSfjitiHdNBymh/SnBhnRpcZPqS5ytF6QFtxKY3DV8I/pEfG
Vxx+Sw++55CKJC1q//WFdRcTMxCxMq2biGr1hbWAb5kDlIrTUN91Tbje0bfk
ROC+nRfWAp5m9C1X25BS84GM7UE09JB6DPTdTSD6BewWBXehrpVY+Fer9EBT
lswXdBFXvdyfLiV6UR6E2prfdePZ3LeoMzdbonYrePa1rJob2qA5nOQQXy0x
2zd1e+eFnPzJ2yPn7dHB+d/evBCaCB7h8qOdF9Zcm+f2G7shkmXsGk6+ZpV7
QaMdrRFOvWaV2c8hNju0G6JC+xLMGCPKxIKWrcUaD+qai99iEq+kzo/Wyl0t
VfEG0XxB448WNxfXtt7dmJuWyl9VCuEHDBPG8rZH/qg1Z5wIVZOfF3mfhQ4G
O19XDaisRvnl1wWgFrfh/gbBUT0uYfaD5MiD+1eKlQf3rpQyD+49L3Qe3HWR
DHrwAItE0sMHqJRQd3ZHgXX3xov+yLDna5zU7aYcoHLXtc7Ge+TdsmPFdmvd
9LopdbstO1XsstZJewudVmWn8uZqPVQRlrq9JptXb6jWyWwAXddl1+qt1Lqa
DbCIs+pasYl6R+01dHsqu2mSQDwwZQE/NKRBRbsqeTDf8w6JcB8P15dCVx9r
GPQgrq4PoJXrKTCjchST2etjiDeIJncPURYC80N9uxEzV1fR3uzcOYmyCCmR
p3z5K6ZS+h/QZ1vh1pwk0j5aFIPSdtKQTFpjLgSl0X4lV4IuTqu9YTcaOAmr
5LtCK8liM3aL3FhFTj95AVFV5BeYKNBZm6aYrIuJJdKt5m/ZU7w2otGn+2vQ
EzYW/X+ySo6xua95CehwdDlMnDscrcta2sriyVBI9YO/XgwBHye1r+H244G9
VNsRn0WveM1ueHjbDHTQH/8ODoLtl0f7y1YVANV80mAYfJnYtR+3nQvXuW06
m5+cn/5as7TVQNt/xYq2JaMgE+WNtNT0TBQCkk5CUchILzkrsqO27FV6U7Kw
tuy1usUzXrg7zwXQM0zpbFtzYMNFQ6PHlqU/Bmg855IU3ApPNOwnS/aTk3d2
7VmN/sXE3nGAZ9nLVvE3/e8535lo157X7CXx94r98zRB/iFAumxZ/EL977nd
epKDMZNa9F/9Re1fajBA7RH99y/03/9B//1X+u/Hx/TPk1oZB+DhX+mVQ/9t
0H//J/33E/33M/333+m/f6/ovtt91e3Bv9sH715vW+YKYF7/40u7jXD52RfW
jGgxcUMAC722xLtiMQC7FXzV4n9WnfWX9Nf6rvN0z9JH4LV//IhQpF6nO6+3
jxF05b15TpTqxHRF8koNk0bUAwC0evecbpJMQ0yZ5pd6y4rXVunBfBMHZFGW
209a7U75DW5jVh5BtIeBCKgSyHPNqPNcM9yoAhkW07zAkn/Vdl/u+4IvPWcE
eYZHbSnmlKeZzMDgGft4ywzdiHU3q3kmgpRnmHrnegHf03PHV/9a+qo7QEqK
XPjmJJpm3/xRVbvbt7NZnLtfAB1AY/hiWQxCxivAuNWms7ppDNK0HXvTevf2
xOGm3KxVbtaiZrwxarS1lrO+TZjcaTlPt6HZNjS7QB0M/r21AIMVDSDiNy1G
5+IJdNszvjNJMZcJw+q3T3a6XXspToAQlq3HljoOEoLKjYZb6EuAr0ljEfju
VnFsJHwzUuBUPYeh4LFwL8BfJL6cPkiCOouyF1bxXiqd8ompdYqnhtpZ1bJK
76zoW6l4GjNUIop+0HOr4txG82cVtTLrWGyQnSRzJ5OqA5bKJG1dP36E9486
jRbeBrVsVZ5XFh/8MmEbo+J4UTWSxStxRuJTxlmHMX0uc4bOML2l6dLKgRaE
8FsixWpjYxk2s/y0s7bMY+hHfGIU2gfj+UrhczoJIg5XLh+HFTNAbLT/Ds9e
GI2SUDumxH9I1cNzMz7hhb9eWNXf13xe9MDpUkqFQy31KdKDb1WMFgxpza1Z
zOMv84CQS0GkJFBLvWnpx6bT/ml5aenjx0Zz+d/xnx9bzuZP8HjzpyfLy0/Y
C8ddEbNarSXcrGXr3hXzpwqILW7Hu0+eSJo/v3SHQ3W2O78sdNZxLUTWiDE9
QdQri3lrSJnZ4p056zmHoNWDnQusBvbC6ImfW9h1furFopFtVU8YZwfQ6ghg
wRcRdhvGr6fq12/RlHGkjr4lxVLnNttUknGr5x/8+rloQz2pLdj2AnYCV1mx
d1CzR7q0Kp7dswxVJ+wt3r4lQoK3h5iTomq5zr/68e277aJaxc3NTQMsx5i1
eBdbYCTKsqhpkEymkZtSTtogCr5QVpm4DTeIhxhXI69tk1fLYqJuGgZ806q4
wBOTESnvO0qmdBVtN+k1bBsmwoNh6jcG5d6kWIQiFkXhXHkFm4Mma05FZyKs
4BNeB1zEyx2j48HCejVT3HXMUAx868fjYJjcu8QVP/GyFYwiynJRddWRI60s
w/RwFMw9tqgcl54/OgJ4ACAon4slDN2iK1K2Qr7CMYjZKKfUI9baPMwFtkRq
m7wnEe/ao3uC6cpJL4g4WSrkhCk/cCMEBiVxywuiRcZWkWgm0zzDCHQ0vLWY
LylWAJb1REop0apSnjV/559Wx018VmUa82a6HI0Q+OrEnu9fwYSnRJUPCsCE
soyTNuFfB7VYXhFT2yoqDchDMV8UmC7sTFUhmv8Q76td7NCKXnySQRZfxTcf
yVRlXI/6KNVG4VvsuSYXro8KA3CwHVfT48RMHKO8cNaH59dgbz23wwQT+viA
YfYpyNrrnSXFaCjwpUFH1cxV5QuUWo0xKOUjN1riVuKj6tQwW6bWYIDxpIDO
UGlX0YHiuAswkxr8+Kku68PU7U8/aVOjKjLBUmkualzXU/fRqwNR/f5klZuO
rhrqAw8/wU/8hPiiVLIaRQFwBhmnHUFD0edHPbjhJ/v5c70eeNVK5f6LfBtx
woKUMxClPsIYZ0u1frC7jhdzH14QG/ET3sfzCHMo1ajA2TihMlOX2+oDU0m+
R6DONZhH96iGA93IKYswMl0WAAzL2aPEXphZcF1JwgpLEI9BU6VK4fM0g4X8
tKq3C6mmVIl2YcF0eqsXTS+9qqzEXlQf1aaiMQGcpKhHKmqRYq1P6U/FidYL
SGvkp99GJdNmkQKQb0mxhKUhVTJ8GhT3hlKSbOP3DCHVNogoCavFBrM3o/4r
L3wbvtn/cNttHYXdrBsfr3s73U73avLD6c6bzQY0is5/6E698f7qwUfr7LTt
nh1H/fFR1L1Mwl48OT5stn4+652+Da6as150fBFcrXc+fMjCgx3u6Y9PZ+7Z
xeTih27unr0P3360QPs4j08n/Vfv8eNt//Xh8HBn7ebgcg97XV38cBH1X23e
QA98n/ivj2+82+T6YPUignlMvPbmFObyw8tZvz2JzlffT/urb+Ju3My649OR
v7954403x+7ZF5qj/2o/fjv2J/6rUes8XL/st5vZ4eX27PB20r6AUd6M3B+O
rvvhJs4Wvz85/wHmdbk3Pbo8bx/1uuuHvWHz4iS7eXtyE7rx8QRHPeqdhm9f
dW8vxvtXsKJXx1eHZ+/XLs72L49efWi+fXX+5bDnjy96H26g1ZfDs/O1o93j
q7dn5zcw2vr5+CK62I3Ct7te67B3Ojq69FpHH63dbvtoBzZhvB5ehN3OYe98
9ei22zy6Ha7it73V07B/tnnlzbod2Jf370/f9I4/HA1O918edS8nT3H13kcr
XB95r1/Ozs+i2/Ozm9x7tZm5Z0frB2fRFc7cfX3c9F4fdg5mm+0Ltfr1KHi1
D22/RAerL6/7sKLoMjjZ+HJwe35z3tu+ObocXXXDmxBWODuIj5rnPxy3cB7d
8f74YhzN+mfR9GLWpR3wwvWmF5/e+h+t1/61Fx8n7tl65K0e5oALl/6rzZmY
LcDrqAX7E/Zfnd7C3GYA/eT8hzdXfnt/dnECEIAvuoB167fQanre/pAT9sEe
+K+vYI/ebOpYhivut9embvsUVrvf9GFU6Nd0zzan3Y8WfXM/9V6fhoS7Hy5S
v3m6evZhdNBvTd4E4+TmfXP/+OxDpH4f7+0fnzePjy+a+/vn7UkPoLs7GvRO
/aPDtr/+dv+4ddHy3x2eHt98OD36+YfVizfu6tGht3eYX9yOsqPTw9v+65ev
zy/996ct/3W/efTSvTp9D/iyv/nyqBedncX+4dkrfxW+1+ldvvwheH268+HV
5Ob81J+crh6N37f2wsEPrc3B+8bq+dgZtA72hu74S/Duw+HT0Uerc94+frP7
arQZBAfNL98naTNu3extXvrb8cHRzXg17X2/f9o+aR/0fz7dT3bz7zffv3Kj
XjtfP44/+IObi6Px8KNV09UWXZibHBwrMJUq3perxDOnj4bIXfZOQKsolaym
9156TbWqnQXvr4gx1/Z2ql5+wVfT7OzL6+/b78aD+PX3Nz+8O1lfGzevet6r
N5vND+EwOgtfuaPcHcbXG1Vj0PDdl28PnJ3Vl3l+Gl4PnegkDbZPLidXee5l
t04r7T/t598fXG/s/bBmur21svKmXBAmTxfrnGeW9TcvDQYvjqicLFXytfdA
OCfplj3her5U4yKQLlQWF3zL/d9WqK92qTSaLapOHtoNNpVTz4oap7I+rFkd
zM2t6iqA+SgZu5kzSDIsurFCJYcxEWKFx6XSnva2h0omWC9DOo6xftniyu+B
/7w2cKMsqIEKcojhPHiz+RXVsN3FCjM90BAxZHl35N6AFvH9FLRG+IVi6tCt
W69AG7e/T0AaR3XrTYD3gJ9P69axOxxNwX6yz4NomoZ16yTEig37aYJB7b2k
DyJzP4j8sRs7+2F+C4sZ163zZBhkI0xLGU1A0AbWgFSdaDKYRjZf5S7MoKK+
ml5EF7TZCdW90oDYsP4/VLJnnGkMAQA=

-->

</rfc>
