<?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.39 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-thallapelly-oasnt-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="OASNT">OASNT: Attested Action Authorization Tokens</title>
    <seriesInfo name="Internet-Draft" value="draft-thallapelly-oasnt-00"/>
    <author initials="A." surname="Thallapelly" fullname="Arun Thallapelly">
      <organization>OmniArx</organization>
      <address>
        <email>arun@advitlabs.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="21"/>
    <area>Security</area>
    <keyword>attestation</keyword>
    <keyword>authorization</keyword>
    <keyword>WYSIWYS</keyword>
    <keyword>mobile</keyword>
    <keyword>agent</keyword>
    <abstract>

<t>This document defines the OASNT token, a compact JWS-based credential in
which a hardware-bound device key attests that a specific human, on a
device whose runtime integrity was assessed, authorized one specific
action whose human-readable disclosure is cryptographically bound to the
token (What You See Is What You Sign). Tokens are single-use, short-lived,
and may additionally be bound to one concrete HTTP request.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Systems increasingly execute consequential actions on a person's behalf without
that person present at the moment of execution. Autonomous agents move funds,
change access, and modify records, carrying credentials that prove only who
issued them and to whom. Such a credential does not record that any human saw
the operation it is now being used to perform.</t>
      <t>Where a human approval step does exist, it is usually a server-side artifact: a
flag on a session, a row in a table, a callback that fired. The approval and the
executed operation are connected by application logic rather than by
cryptography, so an incident review cannot establish what the approving person
actually read. Nor can it establish anything about the device they read it on.</t>
      <t>This document defines the OASNT token, which addresses both gaps in a single
signed object. A key held in device-resident secure hardware signs a digest of
the action to be performed, a digest of the disclosure text as it was rendered
to the user, and optionally a fingerprint of the one concrete request the
approval authorizes. The signed object also carries the device's own assessment
of its runtime integrity at the moment of signing.</t>
      <t>Binding the rendered disclosure, rather than only the operation, is the property
this document treats as essential and is commonly called What You See Is What You
Sign. Its absence is exploitable: a system that binds only the operation will
accept a token whose operation digest was recomputed after the human approved
something else. <xref target="verify"/> therefore requires the disclosure binding and forbids
falling back to operation binding alone.</t>
      <t>OASNT is deliberately narrow. It expresses a single human authorization event as
verifiable evidence. It does not describe delegation between components, policy
evaluation, or how authority is attenuated as it passes through a system.
Frameworks that address those concerns, including remote attestation procedures
<xref target="RFC9334"/>, can consume an OASNT token as the human-authorization evidence at
the root of a chain they otherwise manage.</t>
    </section>
    <section anchor="related">
      <name>Relationship to Other Work</name>
      <t>Several active efforts address adjacent parts of this problem. This section states what
they cover and what this document adds, so that the delta is explicit rather than implied.
Descriptions reflect the versions available at the time of writing.</t>
      <section anchor="human-authorization-receipts">
        <name>Human authorization receipts</name>
        <t><xref target="I-D.schrock-ep-authorization-receipts"/> defines a signed receipt asserting that a named
human, or an M-of-N quorum, authorized a specific operation before execution, together
with transparency-log inclusion proofs and key directory material that this document does
not attempt to duplicate. <xref target="I-D.schrock-ep-action-evidence-graph"/> composes such receipts
into a portable evidence graph with a replayable admissibility verdict, and
<xref target="I-D.rampalli-cross-org-delegation-mapping"/> treats human authorization as a distinct
capability satisfied by artifacts of that kind. This document is written to interoperate
with that work rather than to restate any part of it.</t>
        <t>Those receipts bind an action digest and a context digest, and require that the approver
be shown a faithful human-readable rendering of the action. The signature covers the
context digest rather than the rendered text. That is a deliberate scoping decision, and a
defensible one: the receipt is designed to establish evidentiary exactness, and honouring
the rendering requirement is left to the approving client, which in the general case is
the only party positioned to do so.</t>
        <t>This document specifies the complementary piece for the case where that client is a mobile
device. <xref target="canon-display"/> defines a digest over the rendered octets and <xref target="verify"/> requires
it to match, which lets a relying party confirm the rendering requirement was honoured
rather than rely on it having been. The binding is meaningful here because such a device
renders the disclosure and holds the signing key within a single trust boundary, which is
not true of authenticators generally; see <xref target="txconf"/>.</t>
        <t>An OASNT token can therefore serve as the human-authorization artifact that a receipt of
this kind carries or references, adding the display binding without altering the
surrounding evidence model, its transparency machinery, or its quorum semantics.</t>
      </section>
      <section anchor="txconf">
        <name>Transaction confirmation in WebAuthn</name>
        <t>The <tt>txAuthSimple</tt> and <tt>txAuthGeneric</tt> extensions to <xref target="WEBAUTHN"/> were defined to carry a
prompt for display on the authenticator, which is the same property <xref target="canon-display"/>
provides. They were not implemented by browsers and have been proposed for removal as
untestable.</t>
        <t>The obstacle is architectural rather than a lack of interest: a general-purpose
authenticator has no display, so it cannot attest to what a user was shown. This document
targets a class of device where the constraint does not hold. A modern mobile device
renders the disclosure and holds the signing key inside the same trust boundary, which is
what makes a binding over the rendered octets meaningful. <xref target="display-trust"/> states the
limits of that assumption.</t>
      </section>
      <section anchor="agent-identity-delegation-and-policy">
        <name>Agent identity, delegation and policy</name>
        <t><xref target="I-D.ietf-wimse-arch"/> and <xref target="I-D.ni-wimse-ai-agent-identity"/> establish workload identity
for non-human callers. <xref target="I-D.mishra-oauth-agent-grants"/> and <xref target="RFC8693"/> address delegated
authorization and token exchange. <xref target="I-D.mcguinness-oauth-actor-proofs"/> adds per-hop
actor-signed evidence. <xref target="I-D.nivalto-agentroa-route-authorization"/> defines policy
envelopes, per-hop attestations and enforcement receipts, and admits device-bound approval
strengths.</t>
        <t>These operate at a different layer, and deliberately so. Each constrains what an agent is
permitted to do and records how authority moved between components. None sets out to
establish what a human was shown before agreeing, which is the question this document
takes up. The relationship is complementary: OASNT produces evidence for the root of a
delegation chain that those mechanisms then carry and attenuate.</t>
      </section>
      <section anchor="regulatory-requirements">
        <name>Regulatory requirements</name>
        <t>Strong customer authentication under <xref target="PSD2-RTS"/> requires that authentication codes be
dynamically linked to a specific amount and payee, and that the payer be made aware of
both. Electronic signature practice describes the same property as What You See Is What
You Sign.</t>
        <t>These establish the requirement without defining an interoperable format for the
resulting evidence. Deployed implementations are largely proprietary, frequently using
dedicated hardware with a trusted display. This document specifies a claim format for the
same property on general-purpose mobile hardware.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>The term "disclosure" refers to the human-readable text presented to a user
on a display, in the form in which the user read it, immediately before that
user authorized an action.</t>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <t>Three roles participate.</t>
      <t>The <strong>minter</strong> runs on the user's device. It holds the signing key in secure
hardware, renders the disclosure, obtains the user's approval, and produces the
token. It is the only role that observes the human.</t>
      <t>The <strong>enrollment service</strong> establishes, once per key, that the key is
hardware-bound and belongs to the device it claims to. It records the key's
thumbprint. <xref target="enrollment"/> specifies this.</t>
      <t>The <strong>verifier</strong> is the party about to execute the action. It holds the set of
enrolled thumbprints, recomputes every binding from its own representation of
what it is about to do, and accepts or refuses. <xref target="verify"/> specifies this.</t>
      <t>A typical exchange:</t>
      <artwork><![CDATA[
   verifier                 minter (device)          enrollment service
      |                           |                          |
      |                           |---- attested key ------->|
      |                           |<--- enrolled ------------|
      |                           |                          |
      | -- action + disclosure -->|                          |
      |                           | renders disclosure       |
      |                           | user approves            |
      |                           | hardware key signs       |
      |<------- token ------------|                          |
      | recompute adg, dsp, rqf   |                          |
      | accept or refuse          |                          |
]]></artwork>
      <t>How the action reaches the device, and how the token returns, are out of scope.
The token is self-contained and its verification does not depend on the channel
that carried it.</t>
      <t>Two properties follow from this arrangement and are relied on throughout.</t>
      <t>First, the verifier never trusts the token for anything it can compute itself.
Every digest is recomputed from the verifier's own view of the action and
request. The token supplies only digests to compare against and a key identifier
to look up.</t>
      <t>Second, the party that observes the human is the party that holds the key. The
disclosure binding is meaningful only because rendering and signing happen inside
the same trust boundary. <xref target="display-trust"/> states the limits of that assumption.</t>
    </section>
    <section anchor="token-format">
      <name>Token Format</name>
      <t>An OASNT token is a JWS <xref target="RFC7515"/> in compact serialization.</t>
      <section anchor="jose-header">
        <name>JOSE Header</name>
        <t>The protected header <bcp14>MUST</bcp14> consist of exactly the members <tt>alg</tt> and <tt>typ</tt>,
with the values shown:</t>
        <sourcecode type="json"><![CDATA[
{"alg":"ES256","typ":"oasnt+jwt"}
]]></sourcecode>
        <t>A verifier <bcp14>MUST</bcp14> reject a token whose <tt>alg</tt> is not <tt>ES256</tt> or whose <tt>typ</tt> is
not <tt>oasnt+jwt</tt>. Algorithm agility is deliberately not offered; see
<xref target="alg-rationale"/>.</t>
      </section>
      <section anchor="signature">
        <name>Signature</name>
        <t>The signature is ECDSA using P-256 and SHA-256, encoded as the concatenation
<tt>R || S</tt> of two 32-octet big-endian integers (64 octets total), base64url
encoded without padding per <xref target="RFC7515"/>. A verifier <bcp14>MUST</bcp14> reject a signature
whose decoded length is not exactly 64 octets.</t>
      </section>
      <section anchor="claims">
        <name>Claims</name>
        <t>The JWS payload is a JSON object <xref target="RFC8259"/> containing the following members.
All digest-valued claims are base64url <xref target="RFC4648"/> encoded without padding,
over a SHA-256 <xref target="RFC6234"/> digest.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim</th>
              <th align="left">Type</th>
              <th align="left">Presence</th>
              <th align="left">Binds</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>sub</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the subject the token was issued for</td>
            </tr>
            <tr>
              <td align="left">
                <tt>adg</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the action to be executed (<xref target="canon-action"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>dsp</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">the disclosure the human read (<xref target="canon-display"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rqf</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14></td>
              <td align="left">one concrete request (<xref target="canon-rqf"/>)</td>
            </tr>
            <tr>
              <td align="left">
                <tt>int</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">device runtime integrity at signing time</td>
            </tr>
            <tr>
              <td align="left">
                <tt>jti</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">single-use nonce</td>
            </tr>
            <tr>
              <td align="left">
                <tt>iat</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">issuance time, seconds since the epoch</td>
            </tr>
            <tr>
              <td align="left">
                <tt>exp</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">expiry, seconds since the epoch</td>
            </tr>
            <tr>
              <td align="left">
                <tt>cnf</tt></td>
              <td align="left">object</td>
              <td align="left">
                <bcp14>REQUIRED</bcp14></td>
              <td align="left">key confirmation; contains <tt>jkt</tt></td>
            </tr>
          </tbody>
        </table>
        <t><tt>cnf.jkt</tt> is the JWK thumbprint <xref target="RFC7638"/> of the public key corresponding
to the signing key.</t>
        <t><tt>int</tt> takes exactly one of the values <tt>clean</tt>, <tt>compromised</tt>, or <tt>unknown</tt>.
It is asserted by the device, not proven by the token; see <xref target="int-trust"/>.</t>
        <t>The payload is signed as serialized. Member order is at the minter's
discretion and carries no meaning, because verification recomputes the
signature over the octets as received and never re-serializes the payload.
An implementation <bcp14>MUST NOT</bcp14> depend on member order.</t>
        <t>An <bcp14>OPTIONAL</bcp14> claim that is absent <bcp14>MUST</bcp14> be omitted entirely rather than
included with an empty or null value. This distinction is load-bearing:
<xref target="verify"/> requires a verifier to distinguish "not bound to a request" from
"bound to a request that does not match".</t>
      </section>
    </section>
    <section anchor="canon">
      <name>Canonicalization</name>
      <t>Three canonical encodings are defined. Each is hashed with SHA-256 and
base64url encoded to produce a claim value. None of them is ever parsed;
they exist only to be produced deterministically and hashed.</t>
      <section anchor="key-order">
        <name>Key ordering</name>
        <t>Wherever this document specifies that parameters are sorted, they <bcp14>MUST</bcp14> be
sorted in ascending lexicographic order of the UTF-8 octet sequence of the
parameter name.</t>
        <t>Implementations <bcp14>MUST NOT</bcp14> sort by UTF-16 code unit, which is the default
string ordering in some languages and which differs from UTF-8 octet order
for names containing characters outside the Basic Multilingual Plane. Two
implementations disagreeing here will produce different digests for the same
action and fail to interoperate.</t>
        <t>Parameter names <bcp14>MUST</bcp14> be unique within an action. A duplicate name <bcp14>MUST</bcp14> cause
the minter to fail rather than resolve the duplicate.</t>
      </section>
      <section anchor="canon-action">
        <name>Canonical action</name>
        <t>The canonical action is:</t>
        <artwork><![CDATA[
escape(type) "|"
  escape(k1) "=" escape(v1) "&"
  escape(k2) "=" escape(v2) ...
]]></artwork>
        <t>(shown wrapped for width; the canonical string contains no line breaks)</t>
        <t>where parameters are ordered per <xref target="key-order"/>, and <tt>escape()</tt> prefixes each
occurrence of the four octets <tt>\</tt>, <tt>|</tt>, <tt>=</tt>, and <tt>&amp;</tt> with a single <tt>\</tt>. Each
input octet is classified exactly once; the escape prefix introduced for one
octet is never itself re-escaped.</t>
        <t>The <tt>|</tt> separator is emitted even when there are no parameters.</t>
        <t><tt>adg</tt> is the base64url encoding of the SHA-256 digest of this string.</t>
        <t>Escaping is what prevents a parameter value from impersonating a separator.
Without it, the parameter pair (<tt>a</tt>, <tt>b&amp;c=d</tt>) and the pair set
{(<tt>a</tt>,<tt>b</tt>), (<tt>c</tt>,<tt>d</tt>)} would produce identical canonical strings and thus
identical digests.</t>
      </section>
      <section anchor="canon-display">
        <name>Canonical display</name>
        <t>The canonical display is the disclosure text, constructed as the <tt>type</tt>
followed, for each parameter in the order of <xref target="key-order"/>, by a line feed
(0x0A), the parameter name, a colon, a space, and the parameter value:</t>
        <artwork><![CDATA[
escape(type)
  LF escape(k1) ": " escape(v1)
  LF escape(k2) ": " escape(v2) ...
]]></artwork>
        <t>(shown wrapped for width; LF marks the only line breaks the string contains)</t>
        <t>Here <tt>escape()</tt> replaces each <tt>\</tt> with <tt>\\</tt> and each line feed with the two
characters <tt>\n</tt>, in that order, and performs no other transformation.</t>
        <t><tt>dsp</tt> is the base64url encoding of the SHA-256 digest of this string.</t>
        <t>This string is what the human reads. A verifier that recomputes <tt>dsp</tt> is
asserting that the octets displayed to the user are the octets the user's
key signed. See <xref target="display-trust"/> for the boundary of that assertion.</t>
      </section>
      <section anchor="canon-rqf">
        <name>Request fingerprint</name>
        <t>The request fingerprint binds a token to one concrete request. It is the
base64url encoding of the SHA-256 digest of:</t>
        <artwork><![CDATA[
method 0x00 path 0x00 org-id 0x00 scope 0x00 body-digest
]]></artwork>
        <t>where <tt>body-digest</tt> is the raw 32-octet SHA-256 digest of the request body,
and the digest of the empty string is used when there is no body. The four
text fields are UTF-8 encoded and <bcp14>MUST NOT</bcp14> contain a NUL octet; a minter or
verifier encountering one <bcp14>MUST</bcp14> treat the input as invalid rather than
attempt to encode it.</t>
        <t>The NUL separators make the encoding unambiguous for fields that may
themselves contain any non-NUL octet. <tt>body-digest</tt> is appended raw rather
than hex- or base64-encoded, and is fixed-length, so no separator follows it.</t>
      </section>
    </section>
    <section anchor="verify">
      <name>Verification Procedure</name>
      <t>A verifier <bcp14>MUST</bcp14> perform the following checks. Every failure is terminal: a
token that fails any check <bcp14>MUST</bcp14> be refused, and <bcp14>MUST NOT</bcp14> be accepted on
weaker terms.</t>
      <t>The order below is normative only where a later step depends on an earlier
one having established its precondition. Implementations are <bcp14>RECOMMENDED</bcp14> to
evaluate all applicable checks and report the complete set of failures, as
this materially assists integration; see <xref target="reason-reporting"/>.</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Structure.</strong> The token <bcp14>MUST</bcp14> consist of exactly three base64url segments
separated by two <tt>.</tt> characters, and the first two <bcp14>MUST</bcp14> decode to
well-formed JSON objects.</t>
        </li>
        <li>
          <t><strong>Header.</strong> <tt>alg</tt> <bcp14>MUST</bcp14> equal <tt>ES256</tt> and <tt>typ</tt> <bcp14>MUST</bcp14> equal <tt>oasnt+jwt</tt>.</t>
        </li>
        <li>
          <t><strong>Key lookup.</strong> The verifier <bcp14>MUST</bcp14> look up <tt>cnf.jkt</tt> among keys that have
completed enrollment (<xref target="enrollment"/>). A thumbprint that is absent,
malformed, or not enrolled <bcp14>MUST</bcp14> be refused. The verifier <bcp14>MUST NOT</bcp14> accept
a key supplied by the token itself.</t>
        </li>
        <li>
          <t><strong>Signature.</strong> The signature <bcp14>MUST</bcp14> verify under the enrolled public key
over the octets <tt>BASE64URL(header) "." BASE64URL(payload)</tt> exactly as
received.</t>
        </li>
        <li>
          <t><strong>Thumbprint confirmation.</strong> The verifier <bcp14>MUST</bcp14> recompute the JWK
thumbprint of the enrolled key and confirm it equals <tt>cnf.jkt</tt>.</t>
        </li>
        <li>
          <t><strong>Expiry.</strong> <tt>exp</tt> <bcp14>MUST</bcp14> be a number and <bcp14>MUST</bcp14> be greater than or equal to
the current time.</t>
        </li>
        <li>
          <t><strong>Issuance.</strong> <tt>iat</tt> <bcp14>MUST</bcp14> be a number and <bcp14>MUST NOT</bcp14> be more than a small
tolerance in the future. Implementations <bcp14>SHOULD</bcp14> use 5 seconds.</t>
        </li>
        <li>
          <t><strong>Replay.</strong> <tt>jti</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST NOT</bcp14> have been seen before.
See step 12 for when it is recorded.</t>
        </li>
        <li>
          <t><strong>Action binding.</strong> <tt>adg</tt> <bcp14>MUST</bcp14> equal the digest recomputed per
<xref target="canon-action"/> over the action the verifier is about to execute. The
verifier <bcp14>MUST</bcp14> recompute this from its own representation of that action
and <bcp14>MUST NOT</bcp14> use any value carried in the token.</t>
        </li>
        <li>
          <t><strong>Intent binding.</strong> <tt>dsp</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> equal the digest
recomputed per <xref target="canon-display"/> over that same action. A token lacking
<tt>dsp</tt> <bcp14>MUST</bcp14> be refused rather than accepted as action-bound only.</t>
        </li>
        <li>
          <t><strong>Request binding.</strong> If the verifier is authorizing a concrete request,
then <tt>rqf</tt> <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> equal the fingerprint recomputed per
<xref target="canon-rqf"/> over that request. A token lacking <tt>rqf</tt> <bcp14>MUST</bcp14> be refused
in this case. If the verifier is not authorizing a concrete request,
<tt>rqf</tt> is ignored.</t>
        </li>
        <li>
          <t><strong>Integrity.</strong> <tt>int</tt> <bcp14>MUST</bcp14> equal <tt>clean</tt>.</t>
        </li>
        <li>
          <t><strong>Commit.</strong> Only if every preceding check passed, the verifier <bcp14>MUST</bcp14>
record <tt>jti</tt> as seen.</t>
        </li>
      </ol>
      <section anchor="reserve-commit">
        <name>Reserve and commit</name>
        <t>Step 13 is deliberately last. A verifier that records <tt>jti</tt> when it first
observes the claim can be induced to consume the nonce of a legitimate
token: an attacker who observes a token in flight may alter any octet and
submit the result, which fails signature verification but, under a
record-on-sight implementation, has already burned the nonce. The genuine
token is then refused as a replay when it arrives.</t>
        <t>Recording the nonce only after full validation removes this. A token that
fails any check leaves no trace, so an unforgeable copy cannot deny service
to the token it was copied from.</t>
      </section>
      <section anchor="reason-reporting">
        <name>Reporting refusal reasons</name>
        <t>Refusals are not interchangeable, and an integrator debugging a deployment
needs to distinguish a clock problem from a replay from a downgrade attempt.
Implementations are <bcp14>RECOMMENDED</bcp14> to return a distinguishable reason per
failed check.</t>
        <t>Reasons <bcp14>SHOULD NOT</bcp14> be returned to an untrusted caller where doing so would
reveal whether a given key is enrolled or whether a given nonce has been
seen.</t>
      </section>
    </section>
    <section anchor="enrollment">
      <name>Enrollment and Key Attestation</name>
      <t>A verifier accepts a token only if <tt>cnf.jkt</tt> names a key that completed
enrollment. Enrollment establishes, once, that the key is resident in device
secure hardware and that the party presenting it controls it.</t>
      <section anchor="challenge">
        <name>Challenge</name>
        <t>The enrollment service <bcp14>MUST</bcp14> issue a random challenge of at least 32 octets,
bound to the subject enrolling, with a bounded lifetime. Implementations <bcp14>SHOULD</bcp14>
use 300 seconds.</t>
        <t>A challenge <bcp14>MUST</bcp14> be single-use. It <bcp14>MUST</bcp14> be consumed on first presentation
whether or not enrollment subsequently succeeds, so that a failed attempt cannot
be retried against the same challenge. A challenge that is unknown, already
consumed, or expired <bcp14>MUST</bcp14> cause enrollment to fail.</t>
      </section>
      <section anchor="platform-attestation">
        <name>Platform attestation</name>
        <t>The enrolling party presents a platform attestation over the challenge. The
service <bcp14>MUST</bcp14> verify, at minimum:</t>
        <ol spacing="normal" type="1"><li>
            <t>that the attestation chains to a trusted root for the claimed platform;</t>
          </li>
          <li>
            <t>that the challenge inside the attestation equals the challenge issued;</t>
          </li>
          <li>
            <t>that the attested key is hardware-backed;</t>
          </li>
          <li>
            <t>that the attested public key equals the key being enrolled.</t>
          </li>
        </ol>
        <t>Check 4 is what prevents an attacker from presenting a genuine attestation
obtained elsewhere while enrolling a key they control. The service <bcp14>MUST</bcp14> compare
the thumbprint of the attested key with the thumbprint of the presented key and
<bcp14>MUST</bcp14> refuse on any difference.</t>
        <t>For Android Key Attestation, the security level recorded in the attestation
extension <bcp14>MUST</bcp14> indicate a trusted execution environment or a dedicated secure
element. An attestation reporting a software-only security level <bcp14>MUST</bcp14> be
refused.</t>
        <t>For Apple App Attest, the service <bcp14>MUST</bcp14> verify the attestation object's
certificate chain to the Apple root, that the nonce extension equals
<tt>SHA-256(authenticatorData || SHA-256(challenge))</tt>, and that the relying-party
identifier hash in the authenticator data equals <tt>SHA-256</tt> of the expected
application identifier.</t>
      </section>
      <section anchor="storage">
        <name>Storage</name>
        <t>On success the service records the subject, the public key, and its thumbprint
<xref target="RFC7638"/>. Verifiers look up keys by thumbprint alone.</t>
      </section>
      <section anchor="deployment-without-attestation">
        <name>Deployment without attestation</name>
        <t>A deployment may record a key without verifying a platform attestation, for
example where an enrollment service has not been configured with trusted roots.
Such a deployment does not provide the properties this document describes. Every
guarantee here reduces to the enrollment check, and a key admitted without
attestation is not known to be hardware-bound. Implementations <bcp14>SHOULD</bcp14> make this
mode impossible to enable in a production configuration.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="alg-rationale">
        <name>Signature algorithm</name>
        <t><tt>ES256</tt> is mandated rather than negotiated. The signing key is required to
be hardware-bound (<xref target="enrollment"/>), and P-256 is the curve available across
the mobile secure elements this document targets. In particular, at the time
of writing, the iOS Secure Enclave supports P-256 and does not support
Ed25519, so a specification mandating Ed25519 for this purpose could not be
satisfied by a hardware-bound key on that platform.</t>
        <t>Offering algorithm agility in the header would also reintroduce the
algorithm-substitution attacks that a fixed <tt>alg</tt> forecloses.</t>
      </section>
      <section anchor="display-trust">
        <name>The display trust boundary</name>
        <t>The <tt>dsp</tt> claim binds the octets that were rendered. It does not, and cannot,
prove that a human read them, that the rendering was legible, or that the
operating system's display path was honest. WYSIWYS holds only to the extent
that the platform's rendering and input path is intact, which is precisely
what the runtime integrity assessment behind <tt>int</tt> exists to assess.</t>
        <t>A verifier <bcp14>MUST NOT</bcp14> interpret a valid <tt>dsp</tt> as proof of comprehension or
consent in any legal sense. It proves that the signing key signed a digest
of specific displayed octets.</t>
      </section>
      <section anchor="int-trust">
        <name>Device-asserted integrity</name>
        <t><tt>int</tt> is asserted by software on the device. A device whose runtime is fully
compromised may assert <tt>clean</tt>. The claim raises the cost of an attack and
records a verdict for audit; it is not a proof.</t>
        <t>Relying parties <bcp14>SHOULD</bcp14> treat <tt>int</tt> as one input to a risk decision rather
than as a guarantee, and <bcp14>SHOULD</bcp14> prefer platform attestation (<xref target="enrollment"/>)
as the stronger signal.</t>
      </section>
      <section anchor="canonicalization-ambiguity">
        <name>Canonicalization ambiguity</name>
        <t>Both hashed encodings are injective over their inputs only because of the
escaping rules in <xref target="canon"/>. An implementation that omits escaping, or that
escapes in a different order, will admit distinct actions with identical
digests, which defeats action binding entirely.</t>
        <t>The ordering requirement in <xref target="key-order"/> is a correctness requirement, not
a style preference. Two implementations that disagree will fail to
interoperate; because verification is fail-closed, they will refuse valid
tokens rather than accept invalid ones, but the deployment will be broken.</t>
      </section>
      <section anchor="verifier-side-recomputation">
        <name>Verifier-side recomputation</name>
        <t>A verifier <bcp14>MUST</bcp14> recompute every digest from its own representation of the
action and request. Using any plaintext carried alongside the token, or
reflecting values from the token into the recomputation, reduces the binding
to a self-consistency check and provides no security.</t>
      </section>
      <section anchor="compromise-of-the-enrollment-path">
        <name>Compromise of the enrollment path</name>
        <t>The security of every token reduces to the enrollment of its key. A verifier
that accepts an unattested key, or that admits a key whose attestation
chains to an untrusted root, gains nothing from the remaining machinery.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="json-web-token-claims">
        <name>JSON Web Token Claims</name>
        <t>IANA is requested to register the following in the "JSON Web Token Claims"
registry established by <xref target="RFC7519"/>.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Claim Name</th>
              <th align="left">Description</th>
              <th align="left">Change Controller</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>adg</tt></td>
              <td align="left">Action digest</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-action"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>dsp</tt></td>
              <td align="left">Disclosure digest</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-display"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>rqf</tt></td>
              <td align="left">Request fingerprint</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="canon-rqf"/> of this document</td>
            </tr>
            <tr>
              <td align="left">
                <tt>int</tt></td>
              <td align="left">Device runtime integrity</td>
              <td align="left">IETF</td>
              <td align="left">
                <xref target="claims"/> of this document</td>
            </tr>
          </tbody>
        </table>
        <t>None of these four names appears in the registry at the time of writing.</t>
      </section>
      <section anchor="adg-rationale">
        <name>On the choice of <tt>adg</tt></name>
        <t>The action digest is named <tt>adg</tt>, for action digest, rather than the more
obvious <tt>act</tt>. <tt>act</tt> is unavailable: <xref target="RFC8693"/> Section 4.1 registers it as the
"Actor" claim, a JSON object identifying the acting party in a delegation chain.</t>
        <t>The conflict would have been substantive rather than cosmetic. The registered
claim is an object and this one is a string, so a general-purpose JWT
implementation that understands <xref target="RFC8693"/> could mis-handle a token defined by
this document, and a relying party processing both could not disambiguate them.</t>
        <t>A nested object holding all three digests under one registered name was also
considered. Three top-level claims were chosen instead because <tt>rqf</tt> is
<bcp14>OPTIONAL</bcp14>, and its presence or absence is load-bearing in <xref target="verify"/>: an absent
top-level claim is unambiguous in a way that an absent member of a present
object is not.</t>
      </section>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>IANA is requested to register the following in the "Media Types" registry.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Type name</td>
              <td align="left">application</td>
            </tr>
            <tr>
              <td align="left">Subtype name</td>
              <td align="left">oasnt+jwt</td>
            </tr>
            <tr>
              <td align="left">Required parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Optional parameters</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Encoding considerations</td>
              <td align="left">binary; a JWS in compact serialization</td>
            </tr>
            <tr>
              <td align="left">Security considerations</td>
              <td align="left">See the Security Considerations of this document</td>
            </tr>
            <tr>
              <td align="left">Interoperability considerations</td>
              <td align="left">N/A</td>
            </tr>
            <tr>
              <td align="left">Published specification</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">Applications that use this media type</td>
              <td align="left">Applications requiring evidence that a human authorized a specific action</td>
            </tr>
            <tr>
              <td align="left">Change controller</td>
              <td align="left">IETF</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>typ</tt> header parameter value <tt>oasnt+jwt</tt> is the subtype of this media type,
following the convention <xref target="RFC9068"/> establishes with <tt>at+jwt</tt>.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="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="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="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="RFC8693">
          <front>
            <title>OAuth 2.0 Token Exchange</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="B. Campbell" initials="B." role="editor" surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="C. Mortimore" initials="C." surname="Mortimore"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This specification defines a protocol for an HTTP- and JSON-based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8693"/>
          <seriesInfo name="DOI" value="10.17487/RFC8693"/>
        </reference>
        <reference anchor="RFC9068">
          <front>
            <title>JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens</title>
            <author fullname="V. Bertocci" initials="V." surname="Bertocci"/>
            <date month="October" year="2021"/>
            <abstract>
              <t>This specification defines a profile for issuing OAuth 2.0 access tokens in JSON Web Token (JWT) format. Authorization servers and resource servers from different vendors can leverage this profile to issue and consume access tokens in an interoperable manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9068"/>
          <seriesInfo name="DOI" value="10.17487/RFC9068"/>
        </reference>
        <reference anchor="I-D.schrock-ep-authorization-receipts">
          <front>
            <title>Authorization Receipts for High-Risk Agent Actions</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="19" month="July" year="2026"/>
            <abstract>
              <t>   This document defines the EMILIA Protocol (EP) authorization receipt,
   an evidence artifact binding an enrolled approver key to one
   canonical action before execution.  An approver-held key signs an
   Authorization Context containing the action hash, policy reference,
   nonce, audience, and validity window.  A Trust Receipt carries the
   signed contexts, terminal consumption record, and Merkle inclusion
   material so a relying party can verify the recorded event offline
   under independently selected log, directory, policy, and approver
   trust inputs.

   The receipt establishes only the guarantees of the selected
   verification profile.  The mapping from an enrolled approver
   identifier to a natural person is asserted by the directory
   authority.  Offline verification does not establish current
   revocation status, global non-replay, comprehension, legality,
   safety, or execution.  Replay prevention requires an online atomic
   consumption store at the executor.  The state-machine invariants are
   machine-checked under the assumptions stated in this document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-authorization-receipts-07"/>
        </reference>
        <reference anchor="I-D.schrock-ep-action-evidence-graph">
          <front>
            <title>Action Evidence Graphs and Evidence Policy Replay for High-Risk Agent Actions (EP-AEG)</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="3" month="July" year="2026"/>
            <abstract>
              <t>   The standards landscape now produces many signed artifacts about an
   AI agent's action: workload identity credentials, delegation and
   grant tokens, call-chain transaction tokens, runtime attestation
   results, pre-execution policy permits, named-human authorization
   receipts, post-execution action records, and transparency-log
   inclusion receipts.  No specification defines how a relying party
   decides whether a collection of such artifacts is SUFFICIENT to rely
   on for a given purpose: releasing a payment, honoring a trade,
   satisfying an auditor, or paying an insurance claim.  This document
   defines three things that together fill that layer: the Action
   Evidence Graph (EP-AEG), a portable, content-addressed graph of
   references to signed artifacts about one action, whose identity is
   independent of how much of it is disclosed; Evidence Policy Replay, a
   deterministic, offline evaluation of a graph against a RELYING-PARTY-
   supplied evidence policy, yielding one of five closed verdicts
   (admissible, missing_evidence, stale, conflicted, unverifiable) with
   a replay digest that lets any third party recompute the decision; and
   the Reliance Result (EP-RELIANCE-RESULT), the verdict as a signed
   artifact, making the reliance decision itself auditable evidence.
   Six policy packs profile the mechanism for concrete irreversible
   action classes.  A verdict is evidence of sufficiency under a stated
   policy; it is not adjudication, and the graph never carries its own
   sufficiency bar.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-action-evidence-graph-00"/>
        </reference>
        <reference anchor="I-D.rampalli-cross-org-delegation-mapping">
          <front>
            <title>A Layered Requirements Mapping for Cross-Organization Agent Delegation</title>
            <author fullname="KARTHIK RAMPALLI" initials="R." surname="Karthik">
              <organization>Glyphzero, Inc.</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document records a comparative mapping of two evidence layers
   for cross-organization AI agent delegation: a per-hop delegation
   chain (PEDIGREE) and a named-human authorization root (the EMILIA
   Protocol binding and evidence-graph drafts), evaluated against the
   nine requirements of draft-reece-wimse-cross-org-delegation under a
   no-shared-operator assumption.  It also records a verifier-facing
   composition model in which key possession, delegated authority, and
   pre-execution human authorization are diagnostically separate inputs
   with independent failure behavior, joined by action digest.  The
   mapping was developed on the WIMSE mailing list; corrections continue
   there.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-rampalli-cross-org-delegation-mapping-05"/>
        </reference>
        <reference anchor="I-D.nivalto-agentroa-route-authorization">
          <front>
            <title>Agent Route Origin Authorization (AgentROA): A Cryptographic Policy Enforcement Framework for AI Agent Actions</title>
            <author fullname="Joseph Michalak" initials="J." surname="Michalak">
              <organization>Nivalto, Inc.</organization>
            </author>
            <date day="15" month="April" year="2026"/>
            <abstract>
              <t>   This document specifies the Agent Route Origin Authorization
   (AgentROA) framework, a cryptographic policy enforcement model for
   governing the actions of autonomous AI agents.  AgentROA introduces
   three core protocol objects: the Agent Route Origin Authorization
   (ROA) envelope, the Agent Route Attestation (ARA) per-hop receipt,
   and the Agent Execution Receipt (AER).  Together these objects
   enable: (1) cryptographic binding of an agent's authorized action
   scope to a signed policy envelope at session initialization,
   (2) per-hop attestation across multi-agent delegation chains with
   monotonic scope-narrowing semantics (no policy envelope may be
   expanded by a downstream delegation), and (3) cryptographic receipts
   produced intrinsically by the enforcement decision at each capability
   invocation boundary.  The framework is modeled on the BGP Route
   Origin Authorization (ROA) concept from RPKI (RFC 6480) applied to
   the AI agent execution domain.

   The Border Gateway enforcement model positions a cryptographic
   enforcement process at a capability invocation boundary — external
   to the agent's execution context — reducing the risk that governance
   decisions are influenced by the governed agent by placing
   enforcement in a separate process boundary.  The Border Gateway
   model is topology-independent: it may be deployed as a protocol-
   specific proxy in front of Model Context Protocol (MCP) servers,
   as a service mesh enforcement component covering all inter-service
   calls, as a network egress gateway covering all outbound capability
   invocations regardless of protocol, or as a domain-specific
   execution boundary.  The protocol objects defined herein function
   identically across all deployment topologies.  This document
   establishes the architectural model, protocol object schemas, and
   enforcement semantics for the AgentROA framework.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nivalto-agentroa-route-authorization-01"/>
        </reference>
        <reference anchor="I-D.mcguinness-oauth-actor-proofs">
          <front>
            <title>OAuth Actor-Signed Hop Proofs</title>
            <author fullname="Karl McGuinness" initials="K." surname="McGuinness">
              <organization>Independent</organization>
            </author>
            <date day="4" month="July" year="2026"/>
            <abstract>
              <t>   This document defines OAuth Actor-Signed Hop Proofs, an optional
   companion profile for delegated OAuth tokens that conform to the
   OAuth Actor Profile for Delegation.  It introduces the actor_proofs
   claim, a signed per-hop proof chain in which the actor added at each
   visible hop signs its own participation and the target binding it
   authorized for that hop.  Proofs are linked into a hash chain, are
   validated against actor verification keys resolved through pre-
   established trust, and optionally cross-reference sibling actor
   receipts.  This document also defines a token request parameter for
   conveying proofs at issuance, and metadata and introspection
   parameters for advertising and consuming actor-proof support.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mcguinness-oauth-actor-proofs-00"/>
        </reference>
        <reference anchor="I-D.mishra-oauth-agent-grants">
          <front>
            <title>Delegated Agent Authorization Protocol (DAAP)</title>
            <author fullname="Sanjeev Kumar" initials="S." surname="Kumar">
              <organization>Grantex</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   Artificial intelligence (AI) agents increasingly take autonomous
   actions -- submitting forms, initiating payments, and sending
   communications -- on behalf of human users across third-party
   services.  This document defines the Delegated Agent Authorization
   Protocol (DAAP), an open, model-neutral, framework-agnostic protocol
   that specifies: cryptographic agent identity using Decentralized
   Identifiers (DIDs); a human-consent-based grant authorization flow
   modelled on OAuth 2.0; a signed JSON Web Token (JWT) grant token
   format with agent-specific claims; a revocation model with online
   verification; a hash-chained append-only audit trail; a policy engine
   for automated authorization decisions; a multi-agent delegation model
   with cascade revocation; budget controls for spending limits; real-
   time event streaming; a credential vault for secure secret storage;
   and external policy backend integration with OPA and Cedar.  DAAP
   fills a gap unaddressed by existing OAuth 2.0 extensions: verifying
   that a specific human authorized a specific AI agent to perform a
   specific action, revoking that authorization in real time, and
   producing a tamper-evident record of what the agent did.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mishra-oauth-agent-grants-01"/>
        </reference>
        <reference anchor="I-D.ietf-wimse-arch">
          <front>
            <title>Workload Identity in a Multi System Environment (WIMSE) Architecture</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Palo Alto Networks</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The increasing prevalence of cloud computing and micro service
   architectures has led to the rise of complex software functions being
   built and deployed as workloads, where a workload is defined as
   software executing for a specific purpose, potentially comprising one
   or more running instances.  This document discusses an architecture
   for designing and standardizing protocols and payloads for conveying
   workload identity and security context information.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wimse-arch-08"/>
        </reference>
        <reference anchor="I-D.ni-wimse-ai-agent-identity">
          <front>
            <title>WIMSE Applicability for AI Agents</title>
            <author fullname="Ni Yuan" initials="N." surname="Yuan">
              <organization>Huawei</organization>
            </author>
            <author fullname="Peter Chunchi Liu" initials="P. C." surname="Liu">
              <organization>Huawei</organization>
            </author>
            <date day="28" month="February" year="2026"/>
            <abstract>
              <t>   This document discusses WIMSE applicability to Agentic AI, so as to
   establish independent identities and credential management mechanisms
   for AI agents.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ni-wimse-ai-agent-identity-02"/>
        </reference>
        <reference anchor="WEBAUTHN" target="https://www.w3.org/TR/webauthn-3/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="PSD2-RTS" target="https://eur-lex.europa.eu/eli/reg_del/2018/389/oj">
          <front>
            <title>Commission Delegated Regulation (EU) 2018/389, regulatory technical standards for strong customer authentication and common and secure open standards of communication</title>
            <author>
              <organization>European Commission</organization>
            </author>
            <date year="2018"/>
          </front>
        </reference>
      </references>
    </references>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>The key, clock and nonce used below are fixed (<tt>iat</tt> = 1800000000), so every canonical string, digest and
signing input here is byte-reproducible. An implementation that agrees with this
document computes exactly these values.</t>
      <t>The signatures are not reproducible. ECDSA draws a fresh random value for each
signature, so signing an identical input again yields a different and equally valid
signature. Verify the signatures in these vectors; do not compare them octet-wise
against your own output.</t>
      <t>Backslash and line feed are shown escaped as <tt>\\</tt> and <tt>\n</tt> so the exact octets are
unambiguous on the page.</t>
      <section anchor="key">
        <name>Key</name>
        <sourcecode type="json"><![CDATA[
{
  "kty": "EC",
  "crv": "P-256",
  "x": "P7Vp3OZi4XYii2VHo4T08zkjKrKhCt-gY-oAATkXaao",
  "y": "QNEaWqPG2EI5-2AdT8oX-S4odj8TH9wj_JW2I2ILBoc"
}
]]></sourcecode>
        <t>Thumbprint (RFC 7638), used as <tt>cnf.jkt</tt>:</t>
        <artwork><![CDATA[
xcDbc2-MsRIENQynAYGtJ0Vc0xPTBdfj_1iAeI9MMFo
]]></artwork>
        <t>The private component is <tt>d</tt> = <tt>Y2j9oKoLsw3p24brNicuYCjBxv0LVUWLHSYc9Wzvy5A</tt>. It is published here so that
implementers can reproduce signatures; it <bcp14>MUST NOT</bcp14> be used for anything else.</t>
      </section>
      <section anchor="v1-canonical-action-and-adg">
        <name>V1: canonical action and <tt>adg</tt></name>
        <t>Action type <tt>payment.transfer</tt>, parameters:</t>
        <sourcecode type="json"><![CDATA[
{
  "amount": "100.00",
  "payee": "acct_9"
}
]]></sourcecode>
        <t>Canonical action string:</t>
        <artwork><![CDATA[
payment.transfer|amount=100.00&payee=acct_9
]]></artwork>
        <t><tt>adg</tt> = <tt>YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ</tt></t>
      </section>
      <section anchor="v2-canonical-display-and-dsp">
        <name>V2: canonical display and <tt>dsp</tt></name>
        <t>Canonical display string (line feeds shown as <tt>\n</tt>):</t>
        <artwork><![CDATA[
payment.transfer\namount: 100.00\npayee: acct_9
]]></artwork>
        <t>The same string as it appears to the user:</t>
        <artwork><![CDATA[
payment.transfer
amount: 100.00
payee: acct_9
]]></artwork>
        <t><tt>dsp</tt> = <tt>uSEgOG9UC1IWGxzBalJv5cIbfxE8kxmoKF25yrRl1fs</tt></t>
      </section>
      <section anchor="v3-escaping">
        <name>V3: escaping</name>
        <t>A parameter value containing every canonical-action delimiter, demonstrating that
escaping prevents a value from impersonating a separator.</t>
        <sourcecode type="json"><![CDATA[
{
  "note": "a=b&c|d\\e"
}
]]></sourcecode>
        <t>Canonical action string:</t>
        <artwork><![CDATA[
payment.transfer|note=a\\=b\\&c\\|d\\\\e
]]></artwork>
        <t><tt>adg</tt> = <tt>3R0-FrNwSzXzvWmcFyDrQipdaJZmDUULlpX87bXParo</tt></t>
      </section>
      <section anchor="v4-request-fingerprint-and-rqf">
        <name>V4: request fingerprint and <tt>rqf</tt></name>
        <sourcecode type="json"><![CDATA[
{
  "method": "POST",
  "path": "/v1/transfers",
  "orgId": "org_acme",
  "scope": "payments:write",
  "body": "{\"amount\":\"100.00\",\"payee\":\"acct_9\"}"
}
]]></sourcecode>
        <t>SHA-256 of the body, hex:</t>
        <artwork><![CDATA[
05be0ab936cd56cf971cc8b57f7132a690d4ed3bf63b37ac3cb81d6e289f847a
]]></artwork>
        <t>Fingerprint pre-image, with <tt>&lt;NUL&gt;</tt> marking a single 0x00 octet and the trailing
32 octets being the raw body digest above:</t>
        <artwork><![CDATA[
POST<NUL>/v1/transfers<NUL>org_acme<NUL>payments:write<NUL><body-digest>
]]></artwork>
        <t><tt>rqf</tt> = <tt>1GL7CIg1JkKGaGfHgdF5_93rVx4FqfjoY0lYZ6xbjQ0</tt></t>
      </section>
      <section anchor="v5-a-complete-token-that-verifies">
        <name>V5: a complete token that verifies</name>
        <t>Protected header:</t>
        <sourcecode type="json"><![CDATA[
{"alg":"ES256","typ":"oasnt+jwt"}
]]></sourcecode>
        <t>Payload:</t>
        <sourcecode type="json"><![CDATA[
{
  "sub": "agent-1",
  "adg": "YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ",
  "dsp": "uSEgOG9UC1IWGxzBalJv5cIbfxE8kxmoKF25yrRl1fs",
  "rqf": "1GL7CIg1JkKGaGfHgdF5_93rVx4FqfjoY0lYZ6xbjQ0",
  "int": "clean",
  "jti": "0123456789abcdef0123456789abcdef",
  "iat": 1800000000,
  "exp": 1800000060,
  "cnf": {
    "jkt": "xcDbc2-MsRIENQynAYGtJ0Vc0xPTBdfj_1iAeI9MMFo"
  }
}
]]></sourcecode>
        <t>Compact serialization:</t>
        <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.1rS6k1Yz9ZsYWpk51vTv0GDJX4VJ9vp3Qb9v
4ZNG1VjQQwvVvUpUjNao7ZA0hxmBqEOHPLv8NY5C_Jqjl-SJzA
]]></artwork>
        <t>Verified at time 1800000000 against the action of V1 and the request of V4, with the
key above enrolled, this token is accepted.</t>
      </section>
      <section anchor="v6-refusal-vectors">
        <name>V6: refusal vectors</name>
        <t>Each vector below alters exactly one thing relative to V5 and is refused. The
reasons shown are those an implementation of this document produces. The names
are not normative; the fact of refusal is.</t>
        <section anchor="r1-action-mismatch">
          <name>R1: action mismatch</name>
          <t>The token is minted for a different amount than the verifier is about to execute.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiZHNNUHRxVkJHYjg5MHNfWEVNUDZ3XzZ6QVg2a1lEQ0JqYlo5Y3N
HYkVYTSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.jd0B7NW38g3hBK0YceD2eGRqgd0ApCm6eU_8
QlouotpXwLtOx9H9EB3bq8Dd1XJUybHr2Bheqwj_G_Pt2LPBLg
]]></artwork>
          <t>Refused: <tt>action-mismatch</tt></t>
        </section>
        <section anchor="r2-display-mismatch">
          <name>R2: display mismatch</name>
          <t>adg binds the executing action, so action binding alone would accept. dsp carries the digest of a different disclosure, which is what the human read.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6Ilg0OEc4THhNRUZwWlR3NjduWUw5dEh0OW9SSDV5YXI5RVR
3RVNkaWtZT1UiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.ybY-_yQxFfEoqxvXdRkBnhnNxLup39qmHv6T
aznUIoHKt3RTmeuIDc8ebQqMsL4dbIhFGgdI3Og-2GEf0HuVmQ
]]></artwork>
          <t>Refused: <tt>display-mismatch</tt></t>
        </section>
        <section anchor="r3-request-mismatch">
          <name>R3: request mismatch</name>
          <t>Same action, aimed at a different request path.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiJWbDZfTV90RUJ3RXBOcExNbFo4WENDM0M3dHRCYWF
pbElEWjZPWllEZnhJIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.ULJRBLA8zNugzy10VkRcIyh3GrL2naYG9mD4
LMChGuwxg1dYhAHHT1NEHIYvhEASJrX-sFs0hjk-pQVWdMG_Mw
]]></artwork>
          <t>Refused: <tt>rqf-mismatch</tt></t>
        </section>
        <section anchor="r4-request-binding-absent">
          <name>R4: request binding absent</name>
          <t>The rqf claim is omitted entirely while the verifier is pinning a request. The token <bcp14>MUST</bcp14> be refused rather than accepted as action-bound only.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJpbnQiOiJjbGVhbiIsImp0aSI6IjAxMjM0NTY3ODlhYmNkZWY
wMTIzNDU2Nzg5YWJjZGVmIiwiaWF0IjoxODAwMDAwMDAwLCJleHAiOjE4MDAwMDA
wNjAsImNuZiI6eyJqa3QiOiJ4Y0RiYzItTXNSSUVOUXluQVlHdEowVmMweFBUQmR
mal8xaUFlSTlNTUZvIn19.Cf08Diz2lvF-jncola2wVEwf40xC-lxnAMw6SjoewE
ekr-s0q_p1pV98VrNzgZ1Eb7MhzojNGmIRBWT65DOLqw
]]></artwork>
          <t>Refused: <tt>rqf-missing</tt></t>
        </section>
        <section anchor="r5-expired">
          <name>R5: expired</name>
          <t>Verified one second after exp.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.5WJUcmpcgNE3GrVIMFIFxcyla40xvxn6tdUE
prKYJvEGIXy_lCPu6xS0MM7Nz6bJbeZCysc1M3_wPzeZdZ5zTA
]]></artwork>
          <t>Refused: <tt>expired</tt></t>
        </section>
        <section anchor="r6-replay">
          <name>R6: replay</name>
          <t>The jti has already been recorded by this verifier.</t>
          <t>Compact serialization:</t>
          <artwork><![CDATA[
eyJhbGciOiJFUzI1NiIsInR5cCI6Im9hc250K2p3dCJ9.eyJzdWIiOiJhZ2VudC0
xIiwiYWRnIjoiWWxIcDNNNEpJV0ZQUFpJVkF3QW1ZT0JPTWZVeWIyYmpFNnZlM0F
EMmlhUSIsImRzcCI6InVTRWdPRzlVQzFJV0d4ekJhbEp2NWNJYmZ4RThreG1vS0Y
yNXlyUmwxZnMiLCJycWYiOiIxR0w3Q0lnMUprS0dhR2ZIZ2RGNV85M3JWeDRGcWZ
qb1kwbFlaNnhialEwIiwiaW50IjoiY2xlYW4iLCJqdGkiOiIwMTIzNDU2Nzg5YWJ
jZGVmMDEyMzQ1Njc4OWFiY2RlZiIsImlhdCI6MTgwMDAwMDAwMCwiZXhwIjoxODA
wMDAwMDYwLCJjbmYiOnsiamt0IjoieGNEYmMyLU1zUklFTlF5bkFZR3RKMFZjMHh
QVEJkZmpfMWlBZUk5TU1GbyJ9fQ.oEHHulmYbnSkZEyh8MYr4N_Qim6bxJL2JtB1
6V1CarsOf12wx77w_krvPz9CWajNoXrqUyTWz8WKplhaHi4xPw
]]></artwork>
          <t>Refused: <tt>replay</tt></t>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The request-fingerprint construction in <xref target="canon-rqf"/> was shaped by published
work on per-request, action-bound authentication for autonomous agents, and by
discussion of human-authorization binding on the WIMSE mailing list.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
30qKydaAFDqB+9ubYl62ZWk/MHnHQ49YTd5NEapBlGKNoJc1DTLleYnOUEPt
yVra/JJXl+HK2d0SQ4P1ozGc9f+iNlCcRcNFt6I2CuNbPGnpTAFwDqX+cBI4
cSnfR8zK+ogx1flnVww5BUotiO+pIt8v9VHLUs8Nxsk9q+XVNzZq22yVmbpu
RgSGHQJGnhL1AFuvSQ2xS7kMTAFWsTPVItwQuJGEeTTRYWc/lFDc6m8pI58Z
m9QicNoE9YeMlclRofCpebWM+mLqpyx4WL6bVr8UAJOgAXonMfNB6cYvw6zt
TLFiA9CrGECWVBfyhbHrgcO9hXA09tNimuS2HIXegiXJK0VVtWRxf9k038KA
MqwxPFjKywBddIJGMDoxyFaNYvOIJQ3a0GajXoJ/NtFzDhFLTyPyZUkbdymG
0fmGLBxS6oNgjBg5qz8ndrHwhQOnNLJPMSfHzSfkoW/JT0ByWSYtYEXStmno
iR2AsT0Q+7IoDZIVVHqishxwRFPWlHhjMikFb/lcnIQbzUnXa3hiKCIZ+Dq1
I2YjDnUk7MuAYaxQbBapsTP7zzMHnVCsPaxYNKZbIWSJCvnih33uumGym7Ot
f3uT5S7rhOqFPGit8+iKMl1b3LRXd6hOyE+DJovJtmaPFY1pvIKE7Yy6seMn
pq0XB/qMYixlXCzlHd3mjsvIJp6f/m76FafM0qM+ORyyRlsow0Q0cLydd+kk
FIdn/OE0Xj95Mq3VCkFt8loZQVeS+hkackxV5atNpkUmbTkmOSdCJzB75IKF
NCrTCYbi9th8xtrFpr2S+ltMEPZDVHkoliz2mR/znpJiuZhkuyqdmBZPsK4c
sE8czlR5s5ThzUk9VA6m3zTULllP0kg4SxWVHCBKJCURb5KyTddtUkxMOpkl
6WSabLGbHbWwLQRiTGp4Pqi+1JQuLGZ9cVEPlRJwf7v805TWb4G8SeeBkoPk
lhpYGrmYKcvJ3ZIuy7uTpFcrn/T6++q0fKQKeLpM7F5nM9MgYisR42CnabIi
mmHyQpBzltBnK7SY00RhMOyiHksA580bo9hyy20dbTBa6mvxJZWvv/x340yF
PGATprhJmEPPkTR87nyoI00O1eRrVVMaVQNPlAam+KLUbphyT+0CF/FQ2Eop
UzqHpnTS4hYxUjiL+QPUg429wdK0gLqQcQYKK3tCiYZxFcO0I27+mg6lxk5r
iJEOZOii3tc0YOkWTQWfGfQtCdWJMxEdoXnzO5Ou0kJJrAhiunmzI+dOyTtT
2TocSOYw190asMb4ayUkWExzOtJ+281Oc5XmS6kQ+FsYXAXKRXWWRY+LzsoL
Jz/xAKHOrpwsGUf0qbWVQ61Z/Ba2pMyluPTmpkRwm3JGdPFbB31p3+1cG1z4
tseN9vfY9xFw6ZMm7teq4qSgrVnoHfqdfrUG/luO6fYXtOV8Idt+ltD62kC5
0OfKkaSAbVX239JYEipcOY7UsO2/Vq+WH4wLI1eOZOVqRhLJCBfnNvWhSfSx
muP7WbfhM12aHvkcD2PogwnlFU2o6yxonlWDU+dgfqUkP76Se6K01FgVcxOs
qDf1MQXuAR4G3YP+Y0erMZB2Cn3arqSR83qlZjCZWmazDLfWmthhbY01mNJC
5ah4MeY6kuUwU2NHK4vLhU5cItTQDg1Qv2E7I5fPgCYFNomcqsIGQV8aKZCi
ulEYL1R5FmtWPjEU3dWevDm+6D3UpJkyI8XsWuzMdNy9tlapAxQqpJ90SQoQ
YysM2GYZFuYFysRFdGPJ3kKreu0LKHZFpabh/Fs69FsFmXGHwpd0IofTakak
j4fMcGSPaEmwHYfRdpTUunKFI5y49QxKXGJCv6QCFh3p5L5YSlyXlUbjMjv3
pJiX7CkXeS8V2adoI2mBr8Pkli55yzxPY12bi+iatdTPl6ex7qIL1DgeTDlZ
1sIiBG1NVifh08yRCJN5zZTi9UkvJqltafwkUcDEeIqNiqiG+O9k5LkB1gz9
E48+wFxT4C23lGeSY7yWFC2HzL7zDkC8dzXppbnbJmWObl5qv0iu3uW73Xnf
pLtn8ssQq++2dFasWxBt8ARoDWBm/y7dC17rWMCr03J/aRBMMkKQvOI7Ws2i
21m/N3Y4LA2rV08/LUXysOgh+b7QlA2fbWYgFdUVMZRTNem8Ui4aLzzHunGh
l23BI7C6I7uwX5xVJK+bl7wsX3SXWkyHFFfKYh1MLjXSdJIVRNCAy5ZesjJE
ZLtRt4xjnoQ/e5Zv6anE6HhwTPIl9pnBAA81tUDZcktN4LMWcyWJoVN1LDnV
KYWB83jR+GJfzlvOkfvDrm1V5c87YqmsFC4W1JRyjcktbdazFapz0nvzFH9u
hf2T6GF51TQjYyTRERpgPQYJsmZRWbeMRNdEVxa6RGRpCMVZuXOEFzszlBZ9
eHCoQ79SuyRVOFmdMe1cb8sJc5VFkuKOmqg9l/T6nNlINSdf+Sdy2BgyY4qH
fm48IbJo5kBkatHJ/Y5dPXEXupULCgl2hJTxNyEsHYadU0Ub2DPRJB1TB5td
9NEFDv0Gj5cre6EKVCrDkSIzlP+mRgaLXzgMrBjOprgaVI48jxbXyVh+kYKq
ZPO9SCzbXntK51gK1Npbw6yrNTee4lfymvKVZ/r+4XbcOLv31z/d+X799iha
v65uvTw9fow/DvfS8uCuHDWb10+fHCfit2jQi07L6X49P6y32hvletO73oo+
la/WI+9x6/poe/b45bhbb9fbJ7uRu2ZJ55NcvutboCgboyWA2DqNx2Q5SC3I
s7vfc+vl0+Sy3epczMPm3WF6XL11q8/n17te//FLzW+q9vbp6UGkx0ej259S
VEu3WEX0f/CQmh7u6o/b0cfoJJk1xvX1Xtzx3cnd3uPu87R6cnvTPTm6unO3
uy/T+UbzQZexjA2LJFqSCH2mxqA4cJ3QoHkenciTlE9qnegu06ZfEf3iDFvW
tZ3lelFCCdRLQS+RVE/kXg9jh0z0ChdAqRj01kw87SziAXczxVOrVauVapWP
kRqb4kUwFNMv2+aUlkpbmcvIoSzO/J0H/4NH/hMN+gePyMOxJo7QD47GjdP1
43b34Pz8vn3bnDVHd2e7Z6f9m3mv3ntsbU5Vo7lf952LB4ZIfWdFiR+BBM2i
/Er1TSnMeWvITfeudLiu7N0ru/gc8jZ2bN7H55A2smPnd3KtUy1kFv7BG22u
5Mq4XpnEKs5hrZiC7T0A1uSqNTg73L7Zq7W7h88vu05wPN1w273+c2vr6XkU
fTyob8zjy6DWTwRYjR3jUEMldlEW5sq8F6RIWVs7ito0oafNUyPuemxK1zI3
X67u9NeqTReQEbgpY90fvT+5373Pn9Xfi3k40h/O589/9D5//pP7+TMOBsMt
oF3jslo+iDuzq5dPL9PuyD2Y78cX/thzju9H+zc3J8H409aH3qdzJ44Ekus7
K6vfCPFQIV/cEdesESs9w9axTFzpEK+8n9be6wUnfCuKB216Gj58cdyR4stU
14aXZZ/JDlq4chOLpfDet89CzJ/Xdj4LNX9eK31mYqaLjE6f134YsOpqN3E9
UXkbVlUJXKsbPVV1etuNTdfb2HT72x9qrrvV2/jQ/1Br1J3N7aq3rrxGr7/Z
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
fCt47tuQAAA=

-->

</rfc>
