<?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.6.24 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fv-rats-ear-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="EAR">EAT Attestation Results</title>
    <seriesInfo name="Internet-Draft" value="draft-fv-rats-ear-00"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>Arm Limited</organization>
      <address>
        <email>thomas.fossati@arm.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>
    <date year="2023" month="March" 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>
      <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-fv-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>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines the EAT <xref target="I-D.ietf-rats-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" <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>
    </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[
EAR = {
  eat.profile => "tag:github.com,2023:veraison/ear"
  iat => int
  ear.verifier-id => ar4si.verifier-id
  ? ear.raw-evidence => ear-bytes
  eat.submods => { + text => EAR-appraisal }
  ? eat.nonce => eat.nonce-type
  * $$ear-extension
}
]]></sourcecode>
      </figure>
      <t>Where:</t>
      <dl>
        <dt><tt>eat.profile</tt> (mandatory)</dt>
        <dd>
          <t>The EAT profile (<xref section="6" sectionFormat="of" target="I-D.ietf-rats-eat"/>) 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:github.com,2023:veraison/ear</tt>.</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="I-D.ietf-rats-eat"/> for the
EAT-specific encoding restrictions (i.e., disallowing the floating point
representation).</t>
        </dd>
        <dt><tt>ear.verifier-id</tt> (mandatory)</dt>
        <dd>
          <t>Identifying information about the appraising verifier.
See <xref target="sec-verifier-id"/> 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.
This field may be consumed by other Verifiers in multi-stage verification
scenarios or by auditors.</t>
        </dd>
        <dt><tt>eat.submods</tt> (mandatory)</dt>
        <dd>
          <t>A submodule map (<xref section="4.2.18" sectionFormat="of" target="I-D.ietf-rats-eat"/>) holding one <tt>EAR-appraisal</tt> for
each separately appraised attester.
The map <bcp14>MUST</bcp14> contain at least one entry.
For each appraised attester 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>.</t>
        </dd>
        <dt><tt>eat.nonce</tt> (optional)</dt>
        <dd>
          <t>A user supplied nonce that is echoed by the verifier to provide freshness.
See <xref section="4.1" sectionFormat="of" target="I-D.ietf-rats-eat"/>.</t>
        </dd>
        <dt><tt>$$ear-extension</tt> (optional)</dt>
        <dd>
          <t>Any registered or unregistered extension.
An EAR extension <bcp14>MUST</bcp14> be a map.
See <xref target="sec-extensions"/> for further details.</t>
        </dd>
      </dl>
      <section anchor="sec-verifier-id">
        <name>Verifier Software Identification</name>
        <t><xref section="2.2.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> defines an information model for identifying the
software that runs the verifier.  The <tt>ar4si.verifier-id</tt> claim provides its
serialization as follows:</t>
        <figure anchor="fig-cddl-verifier-id">
          <name>Verifier Software Identification Claim (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
ar4si.verifier-id = {
  build => text
  developer => text
}
]]></sourcecode>
        </figure>
        <t>Where:</t>
        <dl>
          <dt><tt>build</tt> (mandatory)</dt>
          <dd>
            <t>A text string that uniquely identifies the software build running the verifier.</t>
          </dd>
          <dt><tt>developer</tt> (mandatory)</dt>
          <dd>
            <t>A text string that uniquely identifies the organizational unit responsible
for this <tt>build</tt>.</t>
          </dd>
        </dl>
      </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[
EAR-appraisal = {
  ear.status => $ar4si.trust-tier
  ? ear.trustworthiness-vector => ar4si.trustworthiness-vector
  ? ear.appraisal-policy-id => text
  * $$ear-appraisal-extension
}
]]></sourcecode>
        </figure>
        <dl newline="true">
          <dt><tt>ear.status</tt> (mandatory)</dt>
          <dd>
            <t>The overall appraisal status for this attester represented as one of the four
trustworthiness tiers (<xref target="sec-trusttiers"/>).
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.trustworthiness-vector</tt> (optional)</dt>
          <dd>
            <t>The AR4SI trustworthiness vector providing the breakdown of the appraisal for
this attester.
See <xref target="sec-tvector"/> for the details.
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-id</tt> (optional)</dt>
          <dd>
            <t>An unique identifier of the appraisal policy used to evaluate the attestation
result.</t>
          </dd>
          <dt><tt>$$ear-appraisal-extension</tt> (optional)</dt>
          <dd>
            <t>Any registered or unregistered extension.
An EAR appraisal extension <bcp14>MUST</bcp14> be a map.
See <xref target="sec-extensions"/> for further details.</t>
          </dd>
        </dl>
        <section anchor="sec-tvector">
          <name>Trustworthiness Vector</name>
          <t>The <tt>ar4si-trustworthiness-vector</tt> claim is an embodiment of the AR4SI
trustworthiness vector (<xref section="2.3.5" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>) and it is defined as
follows:</t>
          <figure anchor="fig-cddl-tvec">
            <name>Trustworthiness Vector (CDDL Definition)</name>
            <sourcecode type="cddl"><![CDATA[
ar4si.trustworthiness-vector = non-empty<{
  ? instance-identity => $ar4si.trustworthiness-claim
  ? configuration => $ar4si.trustworthiness-claim
  ? executables => $ar4si.trustworthiness-claim
  ? file-system => $ar4si.trustworthiness-claim
  ? hardware => $ar4si.trustworthiness-claim
  ? runtime-opaque => $ar4si.trustworthiness-claim
  ? storage-opaque => $ar4si.trustworthiness-claim
  ? sourced-data => $ar4si.trustworthiness-claim
}>

$ar4si.trustworthiness-claim = -128..127
]]></sourcecode>
          </figure>
          <t>It contains an entry for each one of the eight AR4SI appraisals that have been
conducted on the submitted evidence (<xref section="2.3.4" sectionFormat="of" target="I-D.ietf-rats-ar4si"/>).
The value of each entry is chosen in the -128..127 range according to the rules
described in Sections <xref target="I-D.ietf-rats-ar4si" section="2.3.3" sectionFormat="bare"/> and <xref target="I-D.ietf-rats-ar4si" section="2.3.4" sectionFormat="bare"/> of <xref target="I-D.ietf-rats-ar4si"/>.
All categories are optional.
A missing entry means that the verifier makes no claim about this specific
appraisal facet because the category is not applicable to the submitted
evidence.
As required by the <tt>non-empty</tt> macro, at least one entry <bcp14>MUST</bcp14> be present in the
vector.</t>
        </section>
        <section anchor="sec-trusttiers">
          <name>Trust Tiers</name>
          <t>The trust tier type represents one of the equivalency classes in which the
<tt>$ar4si-trustworthiness-claim</tt> space is partitioned.
See <xref section="2.3.2" sectionFormat="of" target="I-D.ietf-rats-ar4si"/> for the details.
The allowed values for the type are as follows:</t>
          <figure anchor="fig-cddl-ttiers">
            <name>Trustworthiness Tiers (CDDL Definition)</name>
            <sourcecode type="cddl"><![CDATA[
$ar4si.trust-tier /= ar4si.trust-tier-none
$ar4si.trust-tier /= ar4si.trust-tier-affirming
$ar4si.trust-tier /= ar4si.trust-tier-warning
$ar4si.trust-tier /= ar4si.trust-tier-contraindicated
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="json-serialisation">
        <name>JSON Serialisation</name>
        <t>To serialize the EAR claims-set in JSON format, the following substitutions are
applied to the encoding-agnostic CDDL definitions in <xref target="sec-ear"/>,
<xref target="sec-tvector"/> and <xref target="sec-trusttiers"/>:</t>
        <sourcecode type="cddl"><![CDATA[
; $ar4si.trust-tier choice
ar4si.trust-tier-none = "none"
ar4si.trust-tier-affirming = "affirming"
ar4si.trust-tier-warning = "warning"
ar4si.trust-tier-contraindicated = "contraindicated"

; EAR JWT claims
ear.status = "ear.status"
ear.trustworthiness-vector = "ear.trustworthiness-vector"
ear.raw-evidence = "ear.raw-evidence"
ear.appraisal-policy-id = "ear.appraisal-policy-id"
ear.verifier-id = "ear.verifier-id"
; EAT JWT claims
eat.profile = "eat_profile"
eat.nonce = "eat_nonce"
eat.submods = "submods"
; JWT claims
iat = "iat"

; ar4si.trustworthiness-vector 
instance-identity = "instance-identity"
configuration = "configuration"
executables = "executables"
file-system = "file-system"
hardware = "hardware"
runtime-opaque = "runtime-opaque"
storage-opaque = "storage-opaque"
sourced-data = "sourced-data"

; JSON types mapping
ear-bytes = text .regexp "[A-Za-z0-9_=-]+"
ear-label = text

; ar4si.verifier-id labels
developer = "developer"
build = "build"

; EAT
eat.nonce-type = text .size (10..74)
]]></sourcecode>
        <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:github.com,2023:veraison/ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    }
  }
}
]]></sourcecode>
          </figure>
          <t>The breakdown of the trustworthiness vector is as follows:</t>
          <ul spacing="normal">
            <li>Instance Identity (affirming): recognized and not compromised</li>
            <li>Configuration (warning): known vulnerabilities</li>
            <li>Executables (contraindicated): contraindicated run-time</li>
            <li>File System (none): no claim being made</li>
            <li>Hardware (affirming): genuine</li>
            <li>Runtime Opaque (none): no claim being made</li>
            <li>Storage Opaque (none): no claim being made</li>
            <li>Sourced Data (none): no claim being made</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:github.com,2023:veraison/ear",
  "iat": 1666529300,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQKNzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "CCA Platform": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    },
    "CCA Realm": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d"
    }
  }
}
]]></sourcecode>
          </figure>
        </section>
      </section>
      <section anchor="cbor-serialisation">
        <name>CBOR Serialisation</name>
        <sourcecode type="cddl"><![CDATA[
; $ar4si.trust-tier code-points
ar4si.trust-tier-none = 0
ar4si.trust-tier-affirming = 2
ar4si.trust-tier-warning = 32
ar4si.trust-tier-contraindicated = 96

; EAR CWT claims
ear.status = 1000
ear.trustworthiness-vector = 1001
ear.raw-evidence = 1002
ear.appraisal-policy-id = 1003
ear.verifier-id = 1004
; EAT CWT claims
eat.profile = 265
eat.nonce = 10
eat.submods= 266
; CWT claims
iat = 6

; ar4si.trustworthiness-vector keys
instance-identity = 0
configuration = 1
executables = 2
file-system = 3
hardware = 4
runtime-opaque = 5
storage-opaque = 6
sourced-data = 7

; CBOR type mappings
ear-bytes = bytes
ear-label = int / text

; ar4si.verifier-id keys
developer = 0
build = 1

; EAT
eat.nonce-type = bytes .size (8..64)
]]></sourcecode>
        <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:github.com,2023:veraison/ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: h'6C696665626F61746D616E',
  266: {
    "PSA": {
      1000: 96,
      1001: {
        0: 2,
        2: 96,
        4: 2
      },
      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>A receiver <bcp14>MUST</bcp14> ignore any unknown claim.</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="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[
$$ear-appraisal-extension //= (
  ear.teep-claims => ear-teep-claims
)

ear-teep-claims = non-empty<{
  ? eat.nonce => eat.nonce-type
  ? eat.ueid => eat.ueid-type
  ? eat.oemid => eat.oemid-type
  ? eat.hardware-model => eat.hardware-model-type
  ? eat.hardware-version => eat.hardware-version-type
  ? eat.manifests => eat.manifests-type
}>
]]></sourcecode>
        </figure>
        <section anchor="json-serialization">
          <name>JSON Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.teep-claims = "ear.teep-claims"

eat.ueid = "ueid"
eat.oemid = "oemid"
eat.hardware-model = "hwmodel"
eat.hardware-version = "hwversion"
eat.manifests = "manifests"

; cddl(1)-unsupported: .size (12..44)
eat.ueid-type = base64-url-text

eat.oemid-type = oemid-pen / oemid-ieee / oemid-random

; cddl(1)-unsupported: .size (4..44)
eat.hardware-model-type = base64-url-text

eat.hardware-version-type = [
  version:  tstr,
  ? scheme:  $version-scheme
]

eat.manifests-type = [ + manifest-format ]

manifest-format = [
  content-type:   coap-content-format,
  content-format: base64-url-text / text
]

coap-content-format = uint .le 65535

oemid-pen = int
; cddl(1)-unsupported: .size 4
oemid-ieee = base64-url-text
; cddl(1)-unsupported: .size 24
oemid-random = base64-url-text
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cddl"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "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">
          <name>CBOR Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.teep-claims = 65000

eat.ueid = 256
eat.oemid = 258
eat.hardware-model = 259
eat.hardware-version = 260
eat.manifests = 273 ; XXX provisional

eat.ueid-type = bytes .size (7..33)
eat.oemid-type = oemid-pen / oemid-ieee / oemid-random
eat.hardware-model-type = bytes .size (1..32)

eat.hardware-version-type = [
  version: text
  ? scheme: $version-scheme
]

eat.manifests-type = [ + manifest-format ]

manifest-format = [
  content-type: coap-content-format
  content-format: bytes .cbor untagged-coswid
]

coap-content-format = uint .le 65535
untagged-coswid = bytes ; XXX should import coswid

oemid-pen = int
oemid-ieee = bytes .size 3
oemid-random = bytes .size 16
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cddl"><![CDATA[
{
  265: "tag:github.com,2023:veraison/ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: 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 three private, application-specific
extensions:</t>
        <dl newline="true">
          <dt><tt>ear.veraison.annotated-evidence</tt></dt>
          <dd>
            <t>JSON representation of the evidence claims-set, including any annotations
provided by the Project Veraison verifier.</t>
          </dd>
          <dt><tt>ear.veraison.policy-claims</tt></dt>
          <dd>
            <t>any extra claims added by the policy engine in the Project Veraison verifier.</t>
          </dd>
          <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 Extensions (CDDL Definition)</name>
          <sourcecode type="cddl"><![CDATA[
$$ear-appraisal-extension //= (
  ear.veraison.annotated-evidence => ear-veraison-annotated-evidence
)

ear-veraison-annotated-evidence = {
  + ear-label => any
}

$$ear-appraisal-extension //= (
  ear.veraison.policy-claims => ear-veraison-policy-claims
)

ear-veraison-policy-claims = {
  + ear-label => any
}

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

ear-veraison-key-attestation = {
   ear.veraison.attested-key-public => ear-bytes
}
]]></sourcecode>
        </figure>
        <section anchor="json-serialization-1">
          <name>JSON Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.veraison.annotated-evidence = "ear.veraison.annotated-evidence"
ear.veraison.policy-claims = "ear.veraison.policy-claims"
ear.veraison.key-attestation = "ear.veraison.key-attestation"

ear.veraison.attested-key-public = "akpub"
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PSA_IOT": {
      "ear.status": "contraindicated",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 96,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d",
      "ear.veraison.annotated-evidence": {
        "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.veraison.policy-claims": {
        "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"
        }
      }
    }
  }
}
]]></sourcecode>
          <t>Key attestation example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "eat_profile": "tag:github.com,2023:veraison/ear",
  "iat": 1666529184,
  "ear.verifier-id": {
    "developer": "https://veraison-project.org",
    "build": "vts 0.0.1"
  },
  "ear.raw-evidence": "NzQ3MjY5NzM2NTYzNzQK",
  "submods": {
    "PARSEC_TPM": {
      "ear.status": "affirming",
      "ear.trustworthiness-vector": {
        "instance-identity": 2,
        "executables": 2,
        "hardware": 2
      },
      "ear.appraisal-policy-id":
        "https://veraison.example/policy/1/60a0068d",
      "ear.veraison.key-attestation": {
        "akpub":
          "MFkwEwYHKoZIzj0CAQYIKoZIz___"
      }
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="cbor-serialization-1">
          <name>CBOR Serialization</name>
          <sourcecode type="cddl"><![CDATA[
ear.veraison.annotated-evidence = -70000
ear.veraison.policy-claims = -70001
ear.veraison.key-attestation = -70002

ear.veraison.attested-key-public = 0
]]></sourcecode>
          <t>Example:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  265: "tag:github.com,2023:veraison/ear",
  6: 1666529184,
  1004: {
    0: "https://veraison-project.org",
    1: "vts 0.0.1"
  },
  1002: h'6C696665626F61746D616E',
  266: {
    "PSA_IOT": {
      1000: 0,
      1001: {
        0: 2,
        1: 2,
        2: 2,
        4: 2
      },
      1003: "https://veraison.example/policy/1/60a0068d",
      -70000: {
        "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"
      },
      -70001: {
        "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"
        }
      }
    }
  }
}
]]></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="I-D.ietf-rats-eat-media-type"/> 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:github.com,2023:veraison/ear"
]]></artwork>
      <t>A CWT serialization would instead use:</t>
      <artwork><![CDATA[
application/eat-cwt; eat_profile="tag:github.com,2023:veraison/ear"
]]></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 two separate implementations: one in Golang
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>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</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>Claim Name: ear.status</li>
            <li>Claim Description: EAR Status</li>
            <li>JWT Claim Name: ear.status</li>
            <li>Claim Key: 1000</li>
            <li>Claim Value Type(s): unsigned integer (0, 2, 32, 96)</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-trustworthiness-vector">
          <name>EAR Trustworthiness Vector</name>
          <ul spacing="normal">
            <li>Claim Name: ear.trustworthiness-vector</li>
            <li>Claim Description: EAR Trustworthiness Vector</li>
            <li>JWT Claim Name: ear.trustworthiness-vector</li>
            <li>Claim Key: 1001</li>
            <li>Claim Value Type(s): map</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-tvector"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-raw-evidence">
          <name>EAR Raw Evidence</name>
          <ul spacing="normal">
            <li>Claim Name: ear.raw-evidence</li>
            <li>Claim Description: EAR Raw Evidence</li>
            <li>JWT Claim Name: ear.raw-evidence</li>
            <li>Claim Key: 1002</li>
            <li>Claim Value Type(s): bytes</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-appraisal-policy-identifier">
          <name>EAR Appraisal Policy Identifier</name>
          <ul spacing="normal">
            <li>Claim Name: ear.appraisal-policy-id</li>
            <li>Claim Description: EAR Appraisal Policy Identifier</li>
            <li>JWT Claim Name: ear.appraisal-policy-id</li>
            <li>Claim Key: 1003</li>
            <li>Claim Value Type(s): text</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-ear-appraisal"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-verifier-software-identifier">
          <name>EAR Verifier Software Identifier</name>
          <ul spacing="normal">
            <li>Claim Name: ear.verifier-id</li>
            <li>Claim Description: EAR Verifier Software Identifier</li>
            <li>JWT Claim Name: ear.verifier-id</li>
            <li>Claim Key: 1004</li>
            <li>Claim Value Type(s): map</li>
            <li>Change Controller: IESG</li>
            <li>Specification Document(s): <xref target="sec-verifier-id"/> of RFCthis</li>
          </ul>
        </section>
        <section anchor="ear-teep-claims">
          <name>EAR TEEP Claims</name>
          <t>TODO</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <author fullname="J. Bradley" initials="J." surname="Bradley">
              <organization/>
            </author>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>Arm Limited</organization>
            </author>
            <author fullname="Vincent Scarlata" initials="V." surname="Scarlata">
              <organization>Intel</organization>
            </author>
            <date day="6" month="September" year="2022"/>
            <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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-ar4si-03"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat">
          <front>
            <title>The Entity Attestation Token (EAT)</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Giridhar Mandyam" initials="G." surname="Mandyam">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Jeremy O'Donoghue" initials="J." surname="O'Donoghue">
              <organization>Qualcomm Technologies Inc.</organization>
            </author>
            <author fullname="Carl Wallace" initials="C." surname="Wallace">
              <organization>Red Hound Software, Inc.</organization>
            </author>
            <date day="19" month="December" year="2022"/>
            <abstract>
              <t>   An Entity Attestation Token (EAT) provides an attested claims set
   that describes state and characteristics of an entity, a device like
   a smartphone, IoT device, network equipment or such.  This claims set
   is used by a relying party, server or service to determine how much
   it wishes to trust the entity.

   An EAT is either a CBOR Web Token (CWT) or JSON Web Token (JWT) with
   attestation-oriented claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-19"/>
        </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>Arm Ltd.</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>AIST</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   This document specifies a protocol that installs, updates, and
   deletes Trusted Components in a device with a Trusted Execution
   Environment (TEE).  This specification defines an interoperable
   protocol for managing the lifecycle of Trusted Components.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-teep-protocol-11"/>
        </reference>
        <reference anchor="I-D.ietf-rats-eat-media-type">
          <front>
            <title>EAT Media Types</title>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer Institute for Secure Information Technology</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>arm</organization>
            </author>
            <date day="19" month="October" year="2022"/>
            <abstract>
              <t>   Payloads used in Remote Attestation Procedures may require an
   associated media type for their conveyance, for example when used in
   RESTful APIs.

   This memo defines media types to be used for Entity Attestation
   Tokens (EAT).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rats-eat-media-type-01"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9334">
          <front>
            <title>Remote ATtestation procedureS (RATS) Architecture</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="D. Thaler" initials="D." surname="Thaler">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <author fullname="N. Smith" initials="N." surname="Smith">
              <organization/>
            </author>
            <author fullname="W. Pan" initials="W." surname="Pan">
              <organization/>
            </author>
            <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="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer">
              <organization/>
            </author>
            <author fullname="A. Farrel" initials="A." surname="Farrel">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Hawke" initials="S." surname="Hawke">
              <organization/>
            </author>
            <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>
    <section anchor="common-cddl-types">
      <name>Common CDDL Types</name>
      <dl newline="true">
        <dt><tt>non-empty</tt></dt>
        <dd>
          <t>A CDDL generic that can be used to ensure the presence of at least one item
in an object with only optional fields.</t>
        </dd>
      </dl>
      <sourcecode type="cddl"><![CDATA[
non-empty<M> = (M) .within ({ + any => any })
]]></sourcecode>
      <dl newline="true">
        <dt><tt>base64-url-text</tt></dt>
        <dd>
          <t>Base64 encoding using the URL- and filename-safe character set defined in
<xref section="5" sectionFormat="of" target="RFC4648"/>, with all trailing '=' characters omitted (as
permitted by Section 3.2) and without the inclusion of any line breaks,
whitespace, or other additional characters.</t>
        </dd>
      </dl>
      <sourcecode type="cddl"><![CDATA[
base64-url-text = tstr .regexp "[A-Za-z0-9_-]+"
]]></sourcecode>
    </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 documents can be found at
<eref target="https://github.com/thomas-fossati/draft-ear/issues"/>.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <t><cref>Note to RFC Editor: please remove before publication.</cref></t>
      <section anchor="draft-fv-rats-ear-00">
        <name>draft-fv-rats-ear-00</name>
        <t>Initial release.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Many thanks to
Dave Thaler,
Greg Kostal,
Simon Frost,
Yogesh Deshpande
for helpful comments and discussions that have shaped this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1963IbN5bwfzwFPnrqi5RhUyRF0RJnnB1akmMllu1ISjKe
VCoGSZBqm+xm+iKZdmnqe4fvBfZZ9lH2SfZcADS62aSVy8zOJalyxO7G9eDc
cQ4QBIHIwmyuB7JxOrySwyzTaaayMI7khU7zeZY2hBqNEn1DJS4aYqwyPYuT
1UCm2USISTyO1ALqTxI1zYLpTZCoLA20SoJ2W6T5aBGmKTSXrZZQ6Oz06omI
8sVIJwMxgZYGYhxHqY7SPB3ILMm1gI72hUq0gg4v9ThPwmzVELdx8naWxPkS
3l7oRZxpObwqxvoyicd6kif6siHe6hWUngyEDCTMCf8ob1oJTav69kYn4TTU
Cb4fXvQuz8SNjnIYnpT37FZKnmLjWxhqGM3k51gP3y9UOIf3CJc/hTqbtuJk
hu9VMr6G99dZtkwHe3tYDF+FN7pli+3hi71REt+meg8b2MOKszC7zkdQNbuO
FyoNpnGawoD2eAkA9FhornCcXvvlwi1upBXGRbW9tTVsXWeLeUMsw4H8LovH
TZnGSZboaQq/Vgv88b0QKoemYT0DyZhwRR3JJ9wRDAUmMpDDZCGfhYsw0xN4
pRkoPKaWGdOfVLJojeOFa+k0CcfymzjMbCPHYTqOi+r6Br79aYwvS/UudTLT
obxK4mm4iG+2DiGlsq3MlHVjEFGcLGBQN4QEF0+OHx50jgbyzW3Gj4f7R92B
HLvHfqcNj5PJnJ8PuofwvHwbvoPny6uTox42I2UAhUZxQr8fDajmUe/IlOkX
ZeJUe2WO2gddeDwLTgg1eH1U0kthYejP2ketYO3hf/6HTOtlsExiWMkYgQ+P
dfWChZ6EKmB0Lj8LEUbTClyO9vd7A2lGNL42wDrqAXTCxXIeILHkKb/udQ46
0LGaBUDX2Pfw+bAFMBzY32/wt9ARMKUVvrw8ffYEae/JcXYdAi8SQQCEO0qz
RI0zIa7gpQQWlC+gipzoaRjpFLBKy3puJneAh+3KhQZ8m2nJU2kJAW8ltJSn
eiJHK6kcP5BZLHU0jieaWmXmIeMpPanlMlFhquYyhvJSRYJZik4+SQE3wwnU
1C1xlgGujfQkhRLMXOBzA5hdmgGjgnnBmFPocZzFSQM7XEI3OB8lCQfn4XsY
1k2ob6FjgR3rGzXPfXYG9AjUDJ2qFFkPlslU+hYHSkDBlyqaAFotlnkGT4Zo
w/fcyjKeh+MQQAeTT/R8heWXKsngVUsM53E0S0MDgvpxNyWCEHALZ51CP1Gm
32U5gMYhDHQzivNoImCGZegtkY2m0BMtp5rPgd3B5P2BrOROjBCWKp+E0N8u
winRKDxgQOOMWpwmQP0II2BMOkHgQ+/y9jocX28ZurwFZgWgmIURdL0yMNKT
FmFFmi+XUCOVKSKzBnDehDBYeQvsU8aRlnbJJbRyq+dz/ItNxCnwGVc8uwZS
BKkGwmCCQ5QLWLUQG7T1YQlp5nb9EHGppFYwfNcLTHukRaoBKPAdhqvfqQVM
xwx3jCCap7FUYxjEIkYZC3CahVgZsAiRII+8F7BKIH1hcVJCVKw/0sgUQ4N3
WAN5BsAKnnLCLw2Th7Ecf3sFgJNffHvVYsJchMD/gEk8kGcRMNQJLAy0/DEy
/fABuc7d3T8nvcLoiQPD+H3SFeukK38J6QpHuvI30v1HI125k2oNmAD6KgFr
v7WPBQMnFO/udkvULbZRt/zHoW5AbpDOgNpM5vj8Bp9bSOPHcXSDkhpap3ZO
CF3puUryQKgASJ0sUiOGYIGXsDLMCoiGcZUvhleXpBaHOCDQq1viCeIOrcpc
w2Rnc1QVk5UsA7xXBXcLR6CpyzCK5/FsBSgWL+Tx4xcXNCvQwe7umvL45OQZ
PQPjgmni4I5fXJ7SK1DB8NVyOQda+gNoPkxX4xzU9Ca3BHrRLIpTeAmi2nCu
sJgWVCnGeEhj5I4FdlR8+pw/0RjMyMGKkWjGAOc5//ryqtHkv/L5C/p9cfrV
12cXpyf4+/Lp8Nkz90OYEpdPX3z97KT4VdQ8fnF+fvr8hCvDW1l6JRrnw1fw
BUfYePHy6uzF8+GzBk4lKy0pUgSjawgMIwHGhxikUgFMZJyEI57+4+OX//Wf
nR7M9f+ADtftdI4ApPxw2HnYg4fbax1xb3EECM+PgAwrAZAHEwRbAdIB3F2G
GSB/E6k0vY5vIwlYChgiPv0OIfP9QP5xNF52ep+ZFzjh0ksLs9JLgtn6m7XK
DMSaVzXdOGiW3lcgXR7v8FXp2cLde4kUt0Gp/fAg1WM01+6cZARCx8JZ/FZb
NlpD/GmJqJHIfaI3mEiMZ67CRRqkOqPGU5DExOpBV//rX/9KVg8WeyQ/oGEF
InqJ5hSwyEefgeRUs4GxNoGOm912d38A8hcESBztGWs1VBmWBVSiBpKWFehB
OMEPJGL9l1DsP6hgom4DK7uxJHoeRiuAkRkJuiBiICP49EH+XqJsw98w3KAQ
Y3emuawVxa4d88CGj5Sfyt/9Dht3PFXc4eTFh4F8MA1nRL64CJIcKo/QWyJ3
iL8UjHG3AV2JbxFxAXSvPUi9ljsLIAIFUm21K9CIZuXIAnKn4BZ94hakMoFU
SdN4DNCD5SS5lq2tGPEa0omAuVdYrkfQJCCIbkasLfASk8BSM/n1xRmOITC2
G3QtXn9sYV8DBr2GsVXn1jhL0xyGMMwaPE4JuiNJ+XCBUtWT+wadQ6rQEpdl
rt/qtBgYjL9lptpr7bc6BahQeSTRC1AN0qUeAyaNHVxQGcuScMzSbCds6VYT
uHtaUsmn81iRBraMEVETbbQ9IsbdFi1oCXOrEz+boLyckmrkK1cKtKvM16yw
gG3Hzhpp3GvbzGiaJyStJzpT4Ry0IRBAqPKQagUSlIBiaZ56s+P0CQcGGi/x
o5pb5MsjNUrCyQy1CEte5M7LENewa0c+TZjMeJ5PWFUF2RzOAMPQswdjinSy
p0FRmMdLbdREmMF8AurUClEN9UBAQELImKbyjZlkiqyflC30IYD6z7Mf0yxE
OtaRSsIYFUCyAVi7TFuGrgzdV5dgKPlDPkeFbunTVa/VbXUOfeK6juc0KVQW
X5c4xmuEgCDlzdPWzGdkrUajaxELxY6ItAxIEMfnoPBn1DLgRLJiTYe1wbVW
CDWciTO+jmPUpxSsUfhjruVcjfTcNAD6ImhKTZKjxcKFBEvkJ4x0JGG5Howp
h9UwK0FoA2tHyhIhZMFfPHYElkUxHiMHl/kILBGEAuqUoHipCGYGz05lQMSk
PucI1HR8rRfagyOr6z6+IedtwiznqPKTlaJWQINomQFmL8nCNEqsRSPyHaH5
QewQQQ3lwhtFCv1yHq+Y1xUkhSzdLWvBJhxBFbRJllEEcwAMAduxghAW70hm
VOhpiApwQjMEXXIiWcigYYEro2FBCx3Yt2SNUQaqq06vI7Kz1jhgga84goqI
qo4jWvnmAsy03lqA5Y0I3u6NkwwKkbkEP2di1HMkNBUeOJqWl/E0u8XVM7zQ
kLPRYXz+JkQxzy6QZpdmam1t60QApcbnpEDZgNI4jNDjtWRx2Y4J7EkepSVw
tyRxvddrisZrI6KcgQxYLEoMtV4fWmvIaEejPJyTSoOaCDyDmUm8MXHvatQK
vxmjXnwUosc07I9oIDSadR5JWhIKRAIewIs5DVCVAWto/DcOqjwtAGtkpWUh
v8RrN8lf0FWczFRkQA4qGxTLUGovAfPC0VwLJlygJzMpRjzE4qHT8wgmaaEw
e5Rf0mQ91dDqtEmLHdm4TL/jxSWnRJDRtpHRRit+isD4KZwGW//dVXfdBuTW
WRnt16CK1UCLUh/TRb15eFrpGjzqkeTD4CZdqrG+Y32Bp1+np6I3DU20ojMD
KrckTpA5nYnNDxR/xjE2jfNEVN08GakBO8xp6CO9AdnMghWdaaYF6IUJ1XIq
NFaAhypqBMtEsbwOZ8iaqCXEtsionbCC4zhhbCKJbxxdMBQsWBkV96PGSZwy
arLMWRs9L67Vt+qXvkbzIpfjJo8XsyFLY6NEq7cTtIXXXJwoV0uw95l2xq2t
izujoZUhaZ2aRhBjcXbsJRooNSWV+NTKbDcCod8t0TWJKoBK3zI2hJlxGkyS
GMz7SVPq1gxU7ZtQkbf15Rk2rRYakQXKp+ECd0WBmyYqmmkS3lJe5mjPssRP
YJFQgUGZo6ELTc5H6dSAmNc41YC2WThO7R5KCadpviQCYPIjfa1uQkBHFM4V
qx0+jhUIcwNvwT5cBAA6pvDtjzkIBoDN2oJwUYsNNZS+JqytfucYYbLeKtdm
Tzj6vtm9zBact8Etit438pBfqiwUg/q11IYH8qpCBd8wFTADt1jMfgoW3cEm
MmOUZteIXozA6iOd1ACU9/w30NyOr4jstw58RWSXtM8w891+KhWb9IFN8gFV
wkAvltnqjx9IGoSgiyv0PvDiA0JV5I7XCE2NagFNAPvPE9YA7lNDv9PjPFMg
QNckW2151P6DdAVIsLhX+WuVTEhBuE9hUB/QBRDES4V4f58qKYAPbMOfVAVI
G8yGAISY+miFu8+E2FYAli7odA9brU734boIRgy1kncDKtfLXnTWs63ICIsm
IpEJmUqe2NQg0TIjMhwB8qYFwP4GRITWEZriEzLsHDt0lrwztipY3itheUXc
0ih4UCgtrsEejdhFrAtwSGLZtFeR+EI1Adu74iZ2XafU9z4R1doocD8LHcEU
gIRqIeKVZVloklKsEe5g0MgWWkUGEiXDaqHeQl3QBowcNwYeTMS6hYQnRkEB
yhzXJzPQBEDhzKM44w2CMVKQnaADrig2FYcpScswKSy9147mX8OYQJto1vgF
1oQwQ1k43cJxSXlFypJhjYWuZHZCWOUhwxKs6kIRKylhOEJYZBjyCqGTopvB
34cD6VHPZQmUryXpiwgY2inBhVn32uGylm25Gh1E83YZbp4izqWuDA0e173W
6FpTzOXeI1l9FwDc9T2Lquk0xC2k2T3LA6uL7l8aSRzwDFRORKpJDf9gBXgD
B+EFr2cggBVfXL54jqFQaKmmyuzEx8UGQI2vGBebqvluosIRDIgN2l6Wmz0/
UHmV8WgYzLfu1MBti9HgJsXOIFO73a+4a4qqQspO3Kq+763xH9bNL+RA4ViL
2pUGDt3Av431z251sYx7qClolhWLmZ81hSqriYUrrxoCRo8Qx20XhrrwLUvZ
KJ4aYps9ySXrv3LN8r4Il/ffcalag5ML13ziOmWfRqPyqkFTvCpP0dsQwgrZ
D+axIbw9F/5CD/zebd3IhvmJjXsN066RbMAfguxWFUvUaFRQtfqyISo6FC1i
8QJG5mtMMObisSFK2pFseI8NUWhCsmF/N0RV5ZGN8puGqGo4AIzSGyhRUmjg
u/dMgCGSRs6Zohq+RAbltsmgArlgWqDbg8UmG98Ng7+o4H07OPrhUfD972nN
A3YVc9EC1D4mUAkU686dJRvuoSGM20s26IchhCtR3mVzY0mRPe102q3Ww94u
sUWSc6fs3U5ZpBlfN3MUZJn6XfAmBZnaATaCO8RmG7TE4NbMfCXWqNTf2UAl
ourRAsUKhU+OOyvxghzRsPwLjiwRheVFcUUc6QHiln3b4Sb9C8Sk0T4wlIU5
rzP8JrwDhpIVjFriLjD0PLKhQBod4BidklTQF73l3KtBK5jQApUXs8XFGt1R
347Lw2YX6W2Uv0InClkcKxMiUxNQw15+6Ljx8nLYAMP6eZxZhzdoo4pVqYQm
RNv+fm1vc4I2CszG9TTRaM8bZdNoZMI1A/qcWoxg5kDELZYWozgJMEJDoElV
YjuDe+xKN7ESspaB7PT7/YPuUeew1+SWyhxvQC5C6eO7F3dtG8XI2zfAiyj8
u8kVmBig8A3oYe1Wu9XBzfA710uJYUOx5++/2j9/8+rg+fvz7vOrV+/h+Use
qGWQbiwIePsgS4JlsC6Xmn6xDVKlaEzW8c2B7DaL7z5XHAB+eZ8c74Ma5u1d
qf86wTPw6lfg2jJ8YI9L73X2+m3VbvcPJw2qhHv7dxX/qOMUVrUiDlmwiYGs
CnM3KNKurup8bxu8B9WAiU/lmQGe8dhjhJxTPnYHFBs3i1x4FtoYGP+UxAvc
FIT6xyUS3zEaCdR8G+FwbvJ5BLAZhfMQowChwqknsnYqM9tdnyuwigB5BdR8
gjL7kgXaDmpRUNxZTiON5IlhcVDyqRVvpbnMdJQDNOD7heE/L1iMbW/skiXc
PQuzuJMnKP62Fd0uNbogNZzNveZLNUFofmig4ICL29gLBMT8A+B6x8dD+RL4
NKrRDQ6lwlcXWs3hGQUQGkPALIBVPY6za68FMtpNCJ6nk6L/bQfjGNGjums0
WmscMfMOE+Ht1tZjIxhXBSvGSZYbQlZLEZjkS+RB2CDYwvA1G5cC5E9h+1oD
zYVWOGGwAzyikGm2SkheUhDTvPssTL3CPHbKK9siuO+m59PdJkLCmBsGu0BW
jClg1tsJFGZ+bhS0cKDjqMR5z91Q7cxAUJU20dnDawNSK5aov6K+Tmgkq9kx
njKDVHMvgBeTmVAw71IMBNI3iDemXTMxbHpp8MfbSDuLQHGgUC4wzJvG65gv
bS1kRmkGbGkhLV8BrcpXKEpxubsYzusiK61XH4ZaYP7fSJDut9v/gIL0JwjX
En1vlLIF9f6N5Wv3f1O8NguQMDX83eDxv609dDdqDybivPAvlNUHMGUofLji
nNnq4QD1PqC4s3Sjm6O93cPR3ebX2K/5uu7QOOpbD8bxBg9Gp91ub/dcQIlO
nYcC3ne3+CTg836N+wFe94zH4XiTx6HbPyj5GTpt372A3/vQxHHVr9D/qE/h
rV6ltX6F9poXoVPxG3QrvoJ93z/QW3cLHKz7AfpVw/8hDpgQi4xpY+qnJVuf
Q2N9kx5QSu5tMexpkr5Z33bGfGejGc/dGTv+sNXq/zQzniQOmvHolDc7t5Th
4RzUGQs9NijXzH8Q5GeZ8QGQpMfski12vsl8QHm/wC1klIpqnDEwy8E+Rtkv
uxXq5CRg3X2lY79qYiJWW/7Xvp8I7NQKPySqgbz+pH/cP8Ie+t3+k37nYa9/
0u/0Tz9p0jj7G4xGpGXfeEPK9blyuyR5umU7r1fDoJGGa2bzM3kwI4nlwbRU
97fgBIcGnbptaBsUVOxLczC9lxiV+GEEqAaaPSyrTxbZZl4Yr78JX/h6nsa3
QFFJE8yKGdgBkVWLOYhNYfgAauEwmkTJaR6NeZMLuQvgPQZSGlVOmFwvVotV
ODfa6XrKu9USI42pbUUgget2h0IxxNXp6UvMAcD0YN75K+cb+RroCG0XDIR8
TUZONUa2WI7UeHEEwXfCWv5yns9mCKNI35qyyI14mHWhjMm26IVmya7a5Z0H
MIfeEnle2Y1HZhozjFmKbKCCMUYAJhTHQEGCcarLeTwmEwpz8VzGxJRTJjir
6Qv8UbbtMDSiEgyBASXja9oZrcal8Lw3QVN40MSW0U+gQ0xkpHbDWRRTuPdK
5hEbExzVQurG137ohpFyODhv/b2geDfi23A+N0nIwHwXoQniZcvaxQg3TISt
oO2/hgwMO8XEoBmMzxhOJngI8CDoHxzs9y30OPvnJYUPowfzpYnX5QDG58C6
yYNSl1SVYtA2Ve+ZlDteF4x+dkGaxtHLaapnZDP5ET2ED7ipAOCmlFJ5HM9B
KUOQXOg0ROme2eF5YxL+hnnR9y6mwlOQGc60Zi68IBfV5TD8p1gm3lNFNnQ2
pRiA8qqAyUhBPyYMrUhKLFaUmQLFfhui4+zh2no6ugmTOMKgmLRZDf0u+ja4
Y2K+R6X0Q1gZUESpU2QM3AqqVYY6DN5wjYQSVNGkBSse4wfBnp0aNkrfvfTW
ld07J48+MaMlIDptSVqnOTFYF2q+o1JjHvOWfcoOikapuNuRNy4aXOkJaGGg
YdOyNnabzO1cs2baXmRbqlaFM6UAE4Z1v1tyVmUWC7tYYXU/IvV9/DYlxwXZ
I4XmyyCLA+K8fh7xGjlbN3k8oqSLCYXUoULz4YM9ZcHtrtqjFuBFaTHQLsHk
AgTsSGe3Wkdb00stI6kiqMu8LUsuFIyef6gqeoDwSanBYHHSC9A+ohzc3WbB
dlJ5PnxVRrzWlhEoaQ+84GUyWSee46pCCMInIERlnzCMjJQoI8uDqiMIGNdl
COIe82MKLPd3LGa5SoC7aOOQU2U9wNI52RKYUWNTGiJ/UNYPtMbTqkRbBAUJ
u6sV55nLDvd6/sSlgXOoxfxWrdIKwDkTEJORlwC+kMJfsH2/LyCoJMNOkH/X
iho1JgoUSpLenZJ95DbdKE0f7aCWrHV9rU0ZFAnhmQhmLDiHcaKVt//W4GwV
aSQWYrZKyrnUayFK9ewZbA2KgTZZ6E4Y2qbLDDO7pr0rzEUB8U0jMu5ODzxM
iaSHOf10TT1l/YwVGyrq8NzpbpbWTAC9iz/ylwhRbi1MFIghxWzxxASdKXk1
PJc7FH+CeXsejp6rCIxSTurHwCqY2ThkhRqaAwOMs/3pCJkM40BhrEVLvDGB
7ZwWCL3rMmMQc+IpeU7noSJKwjDU5aRoyhb1QpHpqIFiX5R0LaMBglin0kap
r2RoFxmDDD9z0IRLNWE4+xRakJj1Ci/zZBlzfPAY8+NZSBHmEtRbXrDSJlVW
7u09kjsm64AO7TErZtJbvVdiV4jKq5pg0u2Jrfw915xrYH+Xv8Z6UXymh/J3
67wIOAHHFCy/3VADaDw10ap178u1QFkOp7DOqS3uXnC5u89qgqgANi6EqkxU
m2KnysFT7yv+ubVlMX7M4lVDiAKmsoF/OaTFwFE26Ae/q8IODORb+ln57ACF
BcwDF/GgIhvugYIscMA7nd0gj1x+3cDFV3RbrV5vV5SWHJ03wGP7vSBPEHbo
FiovOpTghyXwsj3zO9QgxOwDyLQJHqG1vfte0XsNomwaRy1+QOHvAEfMq4GU
Geg0TY72pTRDePU7W4HfiO+FWEcgbEj+XtqXgdl7grLVV9yjyQk0h2Xhs1oG
9qUJovOK8ZtBdWbW/wbd1DQAXeVoebVAMqLhdCBEAX/y320HdE94S7QO1a11
u7YyL2lNdfLqGY+eF6X3W8jFv2fIRXlaHkcszaUI9APIHLafPH04Wl0+/ObN
dHhx9mP7hy+f/Zj3Hx+9CZ48PPoq+6a/bHiTIWYK1YZfnZ08Hn79+ePb2RfH
s/T85Kvey9PHp5en77765sn1+NXnF/Ho6eO2froaXvv1mfNiAzeHj/0PluvC
p+kXr34sf7L8diC/a3Ra3dZBowk4un/Y+94CdM1VSXLE3+f5uBzpH+D2iS87
ugf9kuDoHhzWC43uwdEmcdHtt9fERPfhvvyD/POf/8y6UEpGmlgXBb4f/2Gr
tb+/+3OlwRY+73fSgU66uz+B15vkyILT/x0YfQ2XruPyPC/0U4PdDNxvhmZD
nN6Gk3uz+ko9By1eOxM+ES6Qa0vT9Jp0KLN/D9j7a8zd+9jpb+Pt/yq7G+37
bW50qlsd3V97p8PWJBbgDwTPFb3+5Kh3OD087LcnnX3V6+/rT7zRHPSxRLtz
dDg9aKvedNoftw8O+52xrQB8SqtSjcOB7Pe6PX9OB0fYitaH7emB6vfHneno
6GGve3R0pA6nEzU62m8fHu37rfTbP40byjUHz5btl8DCzNi4a3VdNG5xnmCi
tT3toVnrbxBF+4O1BGe3SCqiw7yA6Nz5KGLAFkH5zJfiUD+zi1049qpnopg2
sWfhrE9j+m+cmnekDI/MSGfuBgeFTfMmkfV1TLyGjfNURzOMkjKuj/v39lav
As85gP2VAuSMDwWPKluSo4f8e/kYTwSc5rhjYJp2J5nQbnLLHXCGHiR5cnph
jmycyOHlc7DAL/MRjpBd7l/q1Vk0jb0TbQq/u8ATgLqth2Sz41m7tF/1Ew3s
LctuDW7HmNaLWAN8SxFzhMDvpbfr/hmuHFDGTx1jCQHWhlf6ujaySt1fb1AV
PFkbVuX72sDW6jP3Ky+OQSAqbBCvdNpX/akZjOHG+N/Gfn6+J2Ar/jjLZVOR
hti2vpXqpa+VmutAbGz7Th6Kj8FXNtRb+N2oUwT+3YPrfzh7cfWbtec3uw3L
q9Zf4CEL9gfdmYPX95ap2uvCarV9AwxeAtqHqCkTTnQq31JzU0AwB919vBpT
y51u9/CwUpAC8xZWgJdnLn+SUfmoOj57Fk5AgeJ4+BUuzXde8x+831BpoVWa
JzSagPbIS2P5JeOhunQMW1Kd4k9v1qt81/yXmo37/X1lKY1v4tfCDI+Yf3aj
12vkoJPitKfAhakjRXW6+72D/sPDozb8CuipUcsJNkiWErV6felJ6RN8LAah
A77XY1P//nI2cAMniKcBZbVhje7+Xru/B3KiWy6IQgnVEyxzEaZA5LpcoAwF
PLCPhzA8Pj+VZ9G4VVscWBOfHpdRw7GaXOQRoFe5cNX9gGU/D98vYnnTAQZV
Gaojf6+02ed6EiYL+nTONfvb5oAeBqwLMkYe2+HKZyj9ZEfedEGMlWFp5eKG
mv/9//4/6DW4j17gvsX8GjMN9O1S8Jj+Teo7qT+8uDw9/uHq5fm/b8x/Pfuo
KpelebEOWeJ750/e3p7evnr6ZfyXs/dv2sfDr16d0e8ffvihsRk37+NQ3a6O
Bw/bNkB9o85NZTof066pVPdeWnT7o/rzP6k3raID/4N61HjNf9NA8b9/fp3t
Nw30X0UDZT77m65Jhf8tdc0H8hzjwuQVHk0iBD/wOSUYT2WD8VWexZjVyylA
APTwBo8gt+HnGJFACWALV1/wnULezWV3d0WOjztU3xw7W4osd0cTtUT5RG1F
IczlZCA+ejJPjVD3Y0f3sP83t9kfpKclP7rHZQgEmSHFTdd1hpSs1bZOxz+3
0wfyrCSb5CVf3cZngqYmSg6PJ8B7SSh7gdP+4qlJXy7LNpfTYEMTRfXygXI4
tomipmMCoOYy5ng+e7zrGd4zEuksOMFrCpt0rwEe16lSPteOQn2hkprLSuRm
4F1Ehwt7RYeNYZGl3capjtzed2JnXYmiVykmBlB8Nd5picVDus+Ggx/tvUic
mw8Ps0Tz0XR0xWKKTVw8OU5b4iWe96YxCdxLyscwRTNz3OBBNyKosHQlU3mB
KJR4EtNxdpnAj7jbM4mTlArZfSAcYks84RM2MdC2icHHejrFXWM8zAYPCcTF
4LQ6MsS4pn+2dnFyL3YraLR4AZM71hx6I2CQ8zMc5XzeACGPOSvPgVClnPVB
gaYmA96cP2/TFJDiADHUPEZACHWD92NidPAakiV8+oGcAtID04Y+L4BC8DAF
4h6Tm9CcjlpAmW8aqLaEweH6HQAfQ+/9YwurKNTEuzfDlCO06aQ6IAsMz6dO
YV635hJQujwUlxuPZgD9QU5ynihYJCbDAZq3+QX+uY3E2XQEBEMba/Zkbdwn
awo+kA+HCyzihg7Dc0YOFKZDYBFUmIOQhAW+4NCmWk9GeGCCFw6uTAy4A4ie
OKJNOTR7ofhCprPKoQMecq5NWvKZiUQ73m0XxDvoCicBs2u0aveGedfXP/Tb
P+27OFq6QhHwptoSIJJ4Fkb5O/kEz2yyyMyFrmPaljSEd+wd2AAP9sAGeI0X
n4b5olUzLFAUEr7pwOUK4qEg9l6IKpYN6LAjYAufx3OFNzFGBhkjedx5aDpw
gtblddDOq3+E51/yebik8OZIzwfiu+931myj91gESmRk1jyIVJLEt3t8RMTe
/sHDo+5RAEJ2b9ecI/m6EBJ7vnx4zYOyWkfTg5rX7YbKu80CLspOegkIqGY2
7YGvjbOHBzaRjZpfSDP28kr/+g+TqyfchRBZPNMERjqURcnjZ2dy57VKxq8p
NJ3D/5uWtVFzYZrzOYiU+AUYx0d2LPB8c2DBkbaXd2Rk2Mk5qUV43qlbcDVf
Xivv9ipsYV1LCFPhEVbLRKKPdZRSHsgQgAFv0OKkTxY23gWHW/ftzU0ReBdG
TSx/um1tSdX5+atL1cvrCygs5uEoUfacGLO4pcWjG0LMWSN2rW32pV3RjwMf
5FHwN1kAN36VzHSRamsOPS/lB5msExYvFrnq10Da26yJnTj+j+rVi5MX7iup
YcPnw7VSDx78138+17d81IGfMhiqSNFh/y5h8KpGt5oYla04zdOkZRo+zodY
fKtH8oouDTs2m8wmQWxVThtDgPMhOOiOW6slq7XshWKnxcHBI41ikw/khtGF
VhhSTnEpLe2KOqLcwZNCa8Pb6445kfYYFQ6YFxhVnMl3WZr7iRWvDTqzlFKZ
GQm9XCGbwPGFyVdE/dsfhTeIL/XKHupEz9/QIXpkxOyku9SJa85rZkUoWmoJ
E0Ib5oQwqxvX1WySjmSHZ9+apvBVpbnqMQnVDqOatvhoBqBAq/V/6rU68G7A
cB+8xRj4NT+V5SHVVgYgDvi0EPumACNAcSDziO+RcmnEO+2m7DblPvw76u9i
terq4wXzl5/jkWC160/N1t/6A8znw4f/i7dN390VkKg/srsOMhvu9dgIqQ0t
10PuI41bSHY2QXKhlr8MWsXpvPVwulC37gKIOuj4ey6bYVJqpR4StQ3Z+Xc3
zZ8DhH4pvmycfXGdykuOt7MX8ehaVKnZi9kMk21t14NoW/MWUvubIEWx1H8H
wtp8eVE9zLytwc2w2tpoPbDq2rVA6v3NyMm/5Woj68FEtWOTX40KAt+wjYYb
371LMoyC1kjwgC7Acs3kvOG78h0+xWnzdO8SVaWk5HBsMnfZ0HBXiUToTDf+
G7T82bYsHVEfZnohOCM5pphNexYsHulqDubn6/78xMciPfH8M/lI7pzvypZJ
bd7BOzrR58HBiPLOHBvkzaOSgISzeUyvisscC0/f1xfPArZ6Q5CGsO5BqqYa
raYEjamEbgkq/H/elWN0ywfeU9vr9w7R4mfDAux9DOyig2k/efRJ0RJYEOZE
3x2VCrz/jp9Aey+uhe7ydSHYlL1VjsKEU2PS4JTR8uDDRVMy9IF34cwp9ZUt
RastAWyL7j34VrPLHlE6XO0Jz3TAs3H+vcCMAbqaE1Duj2AxTT/jsyLJVyVP
6X7FgVyyxyrRi5iul6A7d3ivk7OX/7hHdb2MW0yGdWp7jN2QM967IKrwgNjT
ful4ZZWJehME4LdQaTDF26CzcI+8ash79rhhMmgd6cmnIR6etfp1ZgUEyt1N
b/jGaWR5mLVzhpGjdNEPtUVDGI7RMTrXkxnNDvCYdy705FFjquapbgCRnuOy
43Ehb8lTdILun6trUN+SpvgcFk1+CQaZmjfFZYhE/ySBx6Z4BRZveo1s8HoJ
SMUXoF3r+XKaz8mMJXAiuk1wMyNNC4OFHEzptVoipZcvgf0fv7i/IRKIAAA=

-->

</rfc>
