<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-izmaylov-agent-permission-receipts-02" category="std" consensus="true" submissionType="IETF" tocDepth="2" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Agent Permission Receipts">Signed Permissions and Action Receipts for Automated Agents</title>
    <seriesInfo name="Internet-Draft" value="draft-izmaylov-agent-permission-receipts-02"/>
    <author initials="P." surname="Izmaylov" fullname="Pavel Izmaylov">
      <organization/>
      <address>
        <email>hello@prova.red</email>
      </address>
    </author>
    <date year="2026" month="October" day="31"/>
    <area>Security</area>
    <keyword>AI agent</keyword>
    <keyword>authorization evidence</keyword>
    <keyword>delegation</keyword>
    <keyword>receipt</keyword>
    <keyword>transparency log</keyword>
    <keyword>post-quantum</keyword>
    <abstract>
      

<t>This document specifies records with which a third party can establish,
later and without network access, what an automated agent, such as an
artificial intelligence (AI) agent, was permitted to do and what it
recorded doing. The person for whom the agent acts, the principal, signs
a permission with a passkey; the permission carries limits that a
verifier can check mechanically. The agent signs a receipt for each
action with Ed25519 and the Module-Lattice-Based Digital Signature
Algorithm (ML-DSA-87). Receipts are chained and entered in a log whose
signed tree heads are time-stamped. A verifier reports, separately,
whether the records are sound and whether each recorded action stayed
within its permission. The content of each record is specified
independently of its encoding; one encoding, JSON Web Signature (JWS)
over canonical JavaScript Object Notation (JSON), is defined.</t>
    </abstract>
    <note>
      <name>Note to Readers</name>
      

<t>Note to the RFC Editor: please remove this note before publication.</t>
      <t>What this document adds to other work is stated in <xref target="intro"/>. This
revision defines an executor (<xref target="terms"/>) and states when its records show
a receipt that was never written (<xref target="security"/>); no record changes.
<xref target="changes-01"/> lists the changes since -01, and <xref target="changes"/> those since
-00. The spelling "acknowledgement" is kept throughout, in prose as
well as in identifiers, because it is the format's own label
("provared.acknowledgement.v0").</t>
      <t>This document was announced on the audit@ietf.org list, where the
proposed Agent Use of Delegation and Interaction Traceability (AUDIT)
working group is discussed. While that group is being formed, detailed
comments are welcome in writing: by email to the author, or as issues at
https://github.com/provared/provared/issues.</t>
    </note>
  </front>
  <middle>
    

<section anchor="intro">
      <name>Introduction</name>
      <t>A principal signs a permission for an agent: which actions, with which
services, within which limits, from when until when. The agent signs a
receipt for each action it takes; a service may countersign it. A
recorder appends receipts to a log and periodically signs its tree head,
which a Time-Stamping Authority (TSA) time-stamps. Later, with no network
access, a verifier checks the records and answers three separate
questions: whether the records are sound, whether every signature could
be verified on that device, and whether each recorded action stayed
within its permission.</t>
      <t>This document specifies the records and the verifier's rules: evidence,
not enforcement. Nothing in this document stops an action when it is
attempted, and an action for which no receipt was written leaves no
trace in the agent's own log (<xref target="security"/>). It names the role of an
enforcement point that refuses an action before it takes effect, an
executor (<xref target="terms"/>), but does not specify how an executor decides or
keeps its records, how records are carried, how keys and trust anchors
are distributed, or what to do about a finding (<xref target="elsewhere"/>).</t>
      <t>When an automated agent acts for a person, the questions asked afterward
are the same: was the action authorized, by whom, within what limits,
did the other party agree, and when? Authorization protocols answer at
the moment of a request, typically with tokens that are not kept as
evidence. This document specifies records that a third party can verify
later, without network access. Each record is signed by the party that
made it. Whoever keeps the log can still leave out or delay entries;
<xref target="security"/> states how far that reaches.</t>
      <t>The content model (<xref target="common"/> through <xref target="verification"/>) says
what each record holds, who signs it, and how a verifier judges it, apart
from how records are written as bytes. This document defines one
encoding (<xref target="json"/>): JSON Web Signature (JWS) <xref target="RFC7515"/> over JavaScript
Object Notation (JSON) <xref target="RFC8259"/> in one canonical form <xref target="RFC8785"/>;
<xref target="other-encodings"/> states what another encoding, such as one with
Concise Binary Object Representation (CBOR) Object Signing and Encryption
(COSE), has to define. Logs use the Merkle tree of <xref target="RFC9162"/>, and
time-stamps come from a TSA <xref target="RFC3161"/>. Agents sign with Ed25519
<xref target="RFC8032"/> and the Module-Lattice-Based Digital Signature Algorithm
ML-DSA-87 <xref target="FIPS204"/> side by side; a signed tree head adds the Stateless
Hash-Based Digital Signature Algorithm SLH-DSA <xref target="FIPS205"/>.</t>
      <t>Other drafts (<xref target="related"/>) already have principal-signed authorizations,
signed and hash-chained receipts for each action, passkey approval of one
exact action, signed budgets enforced when an action is attempted, a
cumulative limit checked afterward against the amounts that a decision
point recorded, and delegation that only narrows. This document adds
three things. First,
the permission that the principal signs with a passkey <xref target="WebAuthn"/>
carries limits that a verifier can check mechanically (totals, single
amounts, counts, and totals or counts within a rolling period) and
conditions (the other party's countersignature, or the principal's
approval of one action). Second, a cancellation can be acknowledged by
the agent. Third, it specifies a verifier that adds up the signed
receipts themselves and says, from the records alone and after the
fact, whether each recorded action, including a helper agent's, stayed
within the permission.</t>
      <t>The records are evidence, not a verdict: a sound record can show an
agent acting outside its permission. This document is the core of a
published format description <xref target="FORMAT"/>; <xref target="elsewhere"/> lists the parts
specified only there.</t>
    </section>
    <section anchor="terms">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      

<t>The identifiers that <xref target="FORMAT"/> uses in labels and member names are
given in parentheses after each term.</t>
      <dl spacing="compact">
        <dt>Principal:</dt>
        <dd>
          <t>The person who signs a permission with a passkey ("issuer").</t>
        </dd>
        <dt>Passkey:</dt>
        <dd>
          <t>A credential <xref target="WebAuthn"/> in a device, unlocked by user verification
such as a biometric or a personal identification number (PIN).</t>
        </dd>
        <dt>Agent:</dt>
        <dd>
          <t>Software that acts for the principal. It deals with services, which
may countersign its receipts.</t>
        </dd>
        <dt>Helper agent, or helper:</dt>
        <dd>
          <t>An agent that acts under a delegation (<xref target="delegation"/>).</t>
        </dd>
        <dt>Service:</dt>
        <dd>
          <t>The other party to an action, named in a permission's "with"; it may
countersign (<xref target="receipt"/>).</t>
        </dd>
        <dt>Executor:</dt>
        <dd>
          <t>Software, other than the agent, that takes actions for the agent or
holds what they need, such as a credential, and refuses an action that
its check of the permission does not allow; <xref target="FORMAT"/> specifies one
such check (<xref target="elsewhere"/>). A permission names an executor in "with",
as it names a service; to countersign, the executor needs its key set
there (<xref target="receipt"/>).</t>
        </dd>
        <dt>Permission:</dt>
        <dd>
          <t>The principal's signed statement of which agent may do what, within
which limits, with whom, and when ("slip").</t>
        </dd>
        <dt>Action receipt, or receipt:</dt>
        <dd>
          <t>The agent's signed statement that it took one action ("stub"). It is
not a Receipt in the sense of Supply Chain Integrity, Transparency,
and Trust (SCITT) <xref target="RFC9943"/> (<xref target="related"/>).</t>
        </dd>
        <dt>Delegation:</dt>
        <dd>
          <t>An agent's signed hand-over of part of its permission ("pass").</t>
        </dd>
        <dt>Record:</dt>
        <dd>
          <t>A signed statement of one of the eight kinds of <xref target="records"/>.</t>
        </dd>
        <dt>Log:</dt>
        <dd>
          <t>A sequence of entries, only ever added to ("book").</t>
        </dd>
        <dt>Entry:</dt>
        <dd>
          <t>One record together with what is carried beside it, as one element
of a log (<xref target="log-format"/>).</t>
        </dd>
        <dt>Recorder:</dt>
        <dd>
          <t>Whoever keeps a log.</t>
        </dd>
        <dt>Signed tree head, or head:</dt>
        <dd>
          <t>The recorder's signed statement of a log's size and root ("seal").</t>
        </dd>
        <dt>Chain:</dt>
        <dd>
          <t>The receipts of one agent under one permission or one delegation,
each naming the one before (<xref target="receipt"/>).</t>
        </dd>
        <dt>Verifier:</dt>
        <dd>
          <t>Anyone, or any software, that verifies records ("checker").</t>
        </dd>
        <dt>Core verifier:</dt>
        <dd>
          <t>A verifier that implements this document and none of the parts
specified only in <xref target="FORMAT"/> (<xref target="elsewhere"/>).</t>
        </dd>
        <dt>Digest:</dt>
        <dd>
          <t>The SHA-256 hash <xref target="FIPS180-4"/> of some bytes.</t>
        </dd>
        <dt>Encoding:</dt>
        <dd>
          <t>How records, keys, and logs are written as bytes and how signatures
are carried (<xref target="json"/>, <xref target="other-encodings"/>).</t>
        </dd>
        <dt>Problem:</dt>
        <dd>
          <t>A reason why an entry, or the log, cannot be relied on.</t>
        </dd>
        <dt>Sound:</dt>
        <dd>
          <t>Of an entry or a log: having no problem.</t>
        </dd>
        <dt>Finding:</dt>
        <dd>
          <t>A statement that a sound receipt or delegation lies outside its
permission. A finding is not a problem.</t>
        </dd>
        <dt>Compared:</dt>
        <dd>
          <t>Of a receipt or delegation: judged against its permission
(<xref target="answers"/>).</t>
        </dd>
        <dt>Counted:</dt>
        <dd>
          <t>Of a time-stamp: from a trusted TSA, on a record whose signatures were
all verified (<xref target="timestamps"/>).</t>
        </dd>
        <dt>Intact:</dt>
        <dd>
          <t>Of a log: no problem was found and everything was verified
(<xref target="answers"/>).</t>
        </dd>
      </dl>
      <t>The base64url encoding is that of <xref section="5" sectionFormat="of" target="RFC4648"/>, without
padding. Where a rule is followed by a code in parentheses, such as
"(chain-broken)", an entry that breaks the rule has a problem. A
verifier <bcp14>MUST</bcp14> report that code for it, unless it stopped at an earlier
problem of the same entry (<xref target="answers"/>). Every finding of a compared
receipt or delegation is reported: each code once, except
over-period-limit, which is reported once for each period limit
exceeded. <xref target="codes"/> lists the codes.</t>
    </section>
    <section anchor="overview">
      <name>Overview and Example</name>
      <t>Once the principal has signed a permission, the agent signs a receipt
for each action, naming the permission and the receipt before it. The
recorder writes each receipt, with any countersignature and approval,
as one log entry, and periodically appends a time-stamped signed tree
head. This example follows the demonstration published with <xref target="FORMAT"/>; the
parties and orders are invented. An office agent may order supplies up
to 200 GBP in total and 100 GBP for one order, and send two messages in
any hour. Every order needs the supplier's countersignature, and an
order above 60 GBP the principal's approval. The permission's content
is shown in the JSON encoding (<xref target="json"/>), with spaces and line breaks
added, and values abbreviated:</t>
      <sourcecode type="json"><![CDATA[
{"actions": ["supplies.order", "message.send"],
 "agent": {"keys": ["<Ed25519>", "<ML-DSA-87>"], "name": "Agent"},
 "id": "<base64url>",
 "issuer": {"key": "<ES256>", "name": "A. Person",
   "origin": "https://sign.example.org", "rpId": "example.org"},
 "limits": [
   {"action": "supplies.order", "max": 200, "unit": "GBP"},
   {"action": "supplies.order", "each": 100, "unit": "GBP"},
   {"action": "message.send", "count": 2, "per": 3600}],
 "never": ["destroys", "impersonate"],
 "purpose": "Keep the office stocked with paper and toner.",
 "requires": [
   {"action": "supplies.order", "need": "countersignature"},
   {"above": 60, "action": "supplies.order", "need": "approval",
    "unit": "GBP"}],
 "type": "provared.slip.v0",
 "validFrom": "2026-10-05T09:00:00Z",
 "validUntil": "2026-10-12T09:00:00Z",
 "with": [{"id": "supplier", "keys": ["<Ed25519>", "<ML-DSA-87>"],
   "name": "Example Stationery"}]}
]]></sourcecode>
      <t>The log then holds these entries ("receipt n" has "seq" n; "cs" is a
countersignature):</t>
      <artwork><![CDATA[
Entry Record     Action, amount With it      Total Findings
0     permission
1     receipt 0  order, 45 GBP  cs              45
2     receipt 1  message
3     receipt 2  order, 80 GBP  approval, cs   125
4     receipt 3  order, 25 GBP                 150 countersignature-
                                                   missing
5     receipt 4  order, 80 GBP  cs             230 over-limit,
                                                   approval-missing
6     signed tree head          time-stamp
]]></artwork>
      <t>The content of the receipt at entry 5, shown across lines, is:</t>
      <sourcecode type="json"><![CDATA[
{"action":"supplies.order","amount":{"unit":"GBP","value":80},
 "id":"<base64url>","previous":"<digest of the receipt at 4>",
 "seq":4,"slip":"<digest of the permission>",
 "type":"provared.stub.v0","when":"2026-10-05T09:40:00Z",
 "with":"supplier"}
]]></sourcecode>
      <t>The countersignature at entry 5 has the content {"stub": "&lt;digest of
the receipt at 5&gt;", "type": "provared.countersignature.v0", "when":
"2026-10-05T09:40:12Z"}.</t>
      <t>Given the thumbprint of the principal's passkey, the digest of the
recorder's key set, and the digest of the TSA's certificate (<xref target="keys"/>),
a verifier finds no problem and verifies every signature: the log is
intact. It reports that the agent did not stay within its permission,
at entries 4 and 5.</t>
    </section>
    <section anchor="common">
      <name>Common Rules</name>
      <t><xref target="common"/> through <xref target="verification"/> are the content model;
<xref target="json"/> is the JSON encoding. Maps are written here as in JSON:
{"unit", "value"} is a map with exactly those two members.</t>
      <section anchor="records">
        <name>Records and Signers</name>
        <t>A record is of one of eight kinds. Each is signed by one party, with
these methods, in this order; X is the identifier of the kind in the
labels of <xref target="FORMAT"/>:</t>
        <table>
          <name>Kinds of record and their signers</name>
          <thead>
            <tr>
              <th align="left">Kind of record</th>
              <th align="left">X</th>
              <th align="left">Signed with</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Permission</td>
              <td align="left">slip</td>
              <td align="left">the principal's passkey (<xref target="passkey"/>)</td>
            </tr>
            <tr>
              <td align="left">Action receipt</td>
              <td align="left">stub</td>
              <td align="left">Ed25519, ML-DSA-87</td>
            </tr>
            <tr>
              <td align="left">Countersignature</td>
              <td align="left">countersignature</td>
              <td align="left">Ed25519, ML-DSA-87</td>
            </tr>
            <tr>
              <td align="left">Approval</td>
              <td align="left">approval</td>
              <td align="left">the principal's passkey</td>
            </tr>
            <tr>
              <td align="left">Delegation</td>
              <td align="left">pass</td>
              <td align="left">Ed25519, ML-DSA-87</td>
            </tr>
            <tr>
              <td align="left">Cancellation</td>
              <td align="left">cancellation</td>
              <td align="left">the principal's passkey</td>
            </tr>
            <tr>
              <td align="left">Acknowledgement</td>
              <td align="left">acknowledgement</td>
              <td align="left">Ed25519, ML-DSA-87</td>
            </tr>
            <tr>
              <td align="left">Signed tree head</td>
              <td align="left">seal</td>
              <td align="left">Ed25519, ML-DSA-87, SLH-DSA-SHA2-256s</td>
            </tr>
          </tbody>
        </table>
        <t>The content of a record holds a member "type" whose value is
"provared.X.v0". Every signature of a record covers its kind as well as
its content, so that a signature made for one kind of record is not
accepted as a signature on another; the encoding says how
(<xref target="json-envelope"/>). The suffix "v0" marks this draft, so that a record
of a later, frozen version is distinguished from a draft one.</t>
      </section>
      <section anchor="content">
        <name>Content</name>
        <t>The content of a record is a map from member names, which are text, to
values. A value is a map of the same kind, a list of values, text, an
integer from 0 to 2^53 - 1, or one of the values of <xref target="values"/>. There
are no others: no true, false, or null, no fractions, and no negative
numbers. Text is a sequence of Unicode scalar values; its length is
counted in code points. The encoding writes the content in one form,
which a verifier tests.</t>
        <t>"type" <bcp14>MUST</bcp14> match the kind of record that the encoding labels
(payload-type-mismatch). A map <bcp14>MUST</bcp14> hold exactly the members listed for
it, each in its stated form (bad-field).</t>
      </section>
      <section anchor="values">
        <name>Values</name>
        <dl spacing="compact">
          <dt>Bytes:</dt>
          <dd>
            <t>A sequence of bytes, of the length stated for each member.
Identifiers, digests, and the parts of keys are bytes.</t>
          </dd>
          <dt>Identifier:</dt>
          <dd>
            <t>An "id" is 16 random bytes. No two records in a log hold the same
"id" (duplicate-id).</t>
          </dd>
          <dt>Time:</dt>
          <dd>
            <t>A date and time in Coordinated Universal Time (UTC), to the second,
with no fraction and no offset. It <bcp14>MUST</bcp14> denote a moment that exists:
29 February in a year that is not a leap year, an hour of 24, and a
second of 60 are refused (bad-field).</t>
          </dd>
          <dt>Digests:</dt>
          <dd>
            <t>A digest is 32 bytes. A record's digest is that of its content, in
the bytes that the encoding writes and that its signatures cover; it
covers no signature. Records name one another by it. A "sha256"
member holds a document's digest: records never hold documents.</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>Text of 1 to 200 code points, chosen by the writer. Except for the
reserved names of documents (<xref target="receipt"/>), a name is not checked
against anything.</t>
          </dd>
          <dt>Amount:</dt>
          <dd>
            <t>Exactly {"unit", "value"}, where "value" is an integer and the unit
is 1 to 16 ASCII letters, digits, ".", "-", or "_", beginning with a
letter or digit.</t>
          </dd>
        </dl>
      </section>
      <section anchor="keys">
        <name>Keys</name>
        <t>A key is a public key of one of these methods, and of no other
(bad-key):</t>
        <dl spacing="compact" indent="19">
          <dt>Ed25519:</dt>
          <dd>
            <t>32 bytes (<xref target="RFC8032"/>).</t>
          </dd>
          <dt>ML-DSA-87:</dt>
          <dd>
            <t>2,592 bytes (<xref target="FIPS204"/>).</t>
          </dd>
          <dt>SLH-DSA-SHA2-256s:</dt>
          <dd>
            <t>64 bytes (<xref target="FIPS205"/>).</t>
          </dd>
          <dt>ES256:</dt>
          <dd>
            <t>A P-256 public key, two coordinates of 32 bytes
(<xref section="3.4" sectionFormat="of" target="RFC7518"/>).</t>
          </dd>
          <dt>RS256:</dt>
          <dd>
            <t>An RSA modulus of 2,048 to 8,192 bits, with the public exponent
65,537 (<xref section="3.3" sectionFormat="of" target="RFC7518"/>).</t>
          </dd>
        </dl>
        <t>The key set of an agent or a service is exactly one Ed25519 key
followed by one ML-DSA-87 key. A recorder's key set adds one
SLH-DSA-SHA2-256s key. A principal's passkey is one ES256, RS256, or
Ed25519 key.</t>
        <t>An Ed25519 key, wherever it appears, <bcp14>MUST NOT</bcp14> encode a y-coordinate
greater than or equal to p = 2^255 - 19, and <bcp14>MUST NOT</bcp14> encode the
y-coordinate of any of the eight points of small order, whatever the
sign bit (bad-key). With a key of small order, anyone can produce a
signature that verifies; a y-coordinate of p or more gives one point two
encodings. <xref target="RFC8032"/> requires the first check
(<xref section="5.1.3" sectionFormat="of" target="RFC8032"/>) but not the second, and libraries differ
on both, so a verifier performs both itself.</t>
        <t>A verifier is told which principals it trusts by the thumbprints of
their passkeys, and which recorders it trusts by the digests of their
key sets. The encoding defines both (<xref target="json-keys"/>).</t>
      </section>
      <section anchor="hybrid">
        <name>Hybrid Signatures</name>
        <t>A receipt, a countersignature, a delegation, and an acknowledgement
carry two signatures over the same content, in this order: first Ed25519
(<xref section="5.1" sectionFormat="of" target="RFC8032"/>), verified as <xref target="ed25519"/> requires; then
ML-DSA-87, the pure (not pre-hashed) ML-DSA.Verify of <xref target="FIPS204"/> with
an empty context, as <xref section="5" sectionFormat="of" target="RFC9964"/> requires. A signed tree
head carries a third: SLH-DSA-SHA2-256s, the pure slh_verify of
<xref target="FIPS205"/> with an empty context. An empty context is the zero-length
string, not a single zero byte. Each signature is over its own signing
input, which the encoding defines and which covers the kind of record
(<xref target="json-envelope"/>). Each is verified with the key at the same position
in the applicable key set: the agent's or a service's keys in the
permission, a helper's keys in its delegation, or the recorder's keys in
the head. Every signature <bcp14>MUST</bcp14> verify; a signature that fails is a
problem (signature-invalid).</t>
        <t>A signature is exactly 64 bytes (Ed25519), 4,627 bytes (ML-DSA-87), or
29,792 bytes (SLH-DSA-SHA2-256s). An Ed25519, ML-DSA-87, or
SLH-DSA-SHA2-256s signature of any other length is a problem
(signature-invalid) on every verifier, whether or not the verifier
implements the method. This rule covers every signature of a record, a
passkey's Ed25519 signature included; it does not reach a TSA's
signature inside a time-stamp (<xref target="timestamps"/>).</t>
        <t>A signature of the right length whose algorithm the verifier lacks is
not verified (<xref target="answers"/>). An entry none of whose signatures was
verified is not evidence: what it says <bcp14>MUST NOT</bcp14> be shown as fact.</t>
      </section>
      <section anchor="ed25519">
        <name>Ed25519 Verification</name>
        <t><xref target="RFC8032"/> leaves some verification choices to implementations, and
implementations that choose differently accept different sets of
signatures. With public key A, signature halves R and S, message M, base
point B, group order L, and n*P for the point P multiplied by the
integer n, a verifier <bcp14>MUST</bcp14>:</t>
        <ol spacing="compact" type="1"><li>
            <t>refuse S unless, read as a little-endian integer, it is less than L;</t>
          </li>
          <li>
            <t>refuse A or R unless it decodes to a point on the curve, which
includes refusing an encoded y of p or more
(<xref section="5.1.3" sectionFormat="of" target="RFC8032"/>);</t>
          </li>
          <li>
            <t>refuse A or R of small order, that is, one of the eight points whose
order divides 8, including the identity element; and</t>
          </li>
          <li>
            <t>accept only if S*B = R + k*A, where k is the SHA-512 hash of the
32-byte encoding of R, then the 32-byte encoding of A, then M, read
as a little-endian integer and reduced modulo L before the
multiplication. Comparing the encoding of S*B - k*A with the 32
bytes of R is the same test, since rule 2 makes R's encoding unique.
A signature that satisfies only the equation multiplied by the
cofactor 8, 8*S*B = 8*R + 8*k*A, is refused.</t>
          </li>
        </ol>
        <t>Rules 1 and 2 restate <xref section="5.1.7" sectionFormat="of" target="RFC8032"/>; rules 3 and 4
choose where it leaves choices. These rules apply to every Ed25519
signature, a passkey's included; a key whose point is the sum of a point
of large order and a point of small order (a mixed-order key) is not
refused by these rules.</t>
      </section>
      <section anchor="passkey">
        <name>Passkey Signatures</name>
        <t>A permission, an approval, and a cancellation carry one signature by the
principal's passkey. To sign, the signer requests an assertion from the
passkey with user verification "required". The challenge is the SHA-256
hash of the record's signing input, which the encoding defines and which
covers the record's kind and content. The record carries the
authenticator data, the client data, and the signature exactly as the
passkey returned them (<xref target="json-envelope"/>).</t>
        <t>A verifier checks the signature against the "key", "rpId", and "origin"
of the "issuer" of the permission concerned. It follows
<xref section="7.2" sectionFormat="of" target="WebAuthn" relative="#sctn-verifying-assertion"/> as
far as it applies to a later check with no state, and <bcp14>MUST</bcp14> confirm
that:</t>
        <ol spacing="compact" type="1"><li>
            <t>the client data is UTF-8 with no byte order mark and is a JSON
object, read by a JSON parser: white space and member order are not
constrained, and a repeated member is read as its last occurrence
(passkey-bad-data);</t>
          </li>
          <li>
            <t>its "type" is "webauthn.get" (passkey-wrong-type);</t>
          </li>
          <li>
            <t>its "challenge" is the base64url of the SHA-256 hash of the record's
signing input (passkey-challenge-mismatch);</t>
          </li>
          <li>
            <t>its "origin" is the same string as the issuer's, and "crossOrigin" is
not the JSON value true (passkey-origin-mismatch); other members are
not used;</t>
          </li>
          <li>
            <t>the authenticator data is at least 37 bytes (passkey-bad-data) and
begins with the SHA-256 hash of "rpId" (passkey-rpid-mismatch);</t>
          </li>
          <li>
            <t>its flags have "user present" (bit 0) and "user verified" (bit 2)
set (passkey-user-not-present, passkey-user-not-verified) and
"attested credential data" (bit 6) clear. Without "extension data"
(bit 7), the authenticator data is exactly 37 bytes
(passkey-bad-data). Other flags and any further bytes are not
examined; in particular, the <xref target="WebAuthn"/> rule that "backup state"
(bit 4) is clear whenever "backup eligible" (bit 3) is clear is not
checked; and</t>
          </li>
          <li>
            <t>the signature verifies over the authenticator data followed by the
SHA-256 hash of the client data (signature-invalid). An ES256
signature is an Elliptic Curve Digital Signature Algorithm (ECDSA)
signature (<xref section="3.4" sectionFormat="of" target="RFC7518"/>) stored as an ECDSA-Sig-Value
in strict Distinguished Encoding Rules (DER) <xref target="X690"/>: one SEQUENCE
with a one-byte length, holding two positive INTEGERs of 1 to 33
bytes in their shortest form, with nothing after them
(passkey-bad-data). Either value of s that verifies is accepted. An
RS256 signature is as <xref section="3.3" sectionFormat="of" target="RFC7518"/>.</t>
          </li>
        </ol>
        <t>The signature counter, the credential identifier, and the user handle
are not used. For an approval or a cancellation, a failure is reported
as approval-invalid or cancellation-invalid. If the verifier was given
thumbprints of trusted passkeys, the issuer's key <bcp14>MUST</bcp14> be one
(issuer-not-expected); if it was given none, it <bcp14>MUST</bcp14> say that the key
was not compared with a trusted key. The "rpId" and "origin" of the
issuer are part of what a verifier trusts, not only the thumbprint
(<xref target="security"/>).</t>
      </section>
      <section anchor="relied">
        <name>Records Relied On</name>
        <t>An entry that relies on another record names it by its digest. The
named record <bcp14>MUST</bcp14> be earlier in the log and sound; otherwise the entry
has a problem:</t>
        <ul spacing="compact">
          <li>
            <t>slip-missing or slip-unusable, for a permission that is missing or
not sound;</t>
          </li>
          <li>
            <t>pass-missing, for a delegation that is missing or not sound, or
pass-mismatch for a delegation under another permission; and</t>
          </li>
          <li>
            <t>cancellation-not-found, for a cancellation.</t>
          </li>
        </ul>
        <t>A permission or a delegation is judged as it stood when it was itself
read. A problem that a later entry adds to it (dated-after-stamp,
<xref target="timestamps"/>) changes nothing for the entries that rely on it, though
it remains a problem of the log. A cancellation named by an
acknowledgement is judged again once the whole log has been read; if it
has a problem then, the acknowledgement is reported
cancellation-not-found.</t>
      </section>
    </section>
    <section anchor="permission">
      <name>The Permission</name>
      <t>A permission's content holds exactly these members, all of them required
except "passes":</t>
      <dl spacing="compact">
        <dt>"type":</dt>
        <dd>
          <t>"provared.slip.v0"</t>
        </dd>
        <dt>"id":</dt>
        <dd>
          <t>An identifier.</t>
        </dd>
        <dt>"issuer":</dt>
        <dd>
          <t>The principal: exactly "key", "name", "origin", and "rpId", as
specified below.</t>
        </dd>
        <dt>"agent":</dt>
        <dd>
          <t>Exactly "keys" (a key set) and "name", and optionally "software": 1
to 16 maps {"name", "sha256"}, digests of the program and settings
the principal approved. It is a statement, not proof of what ran.</t>
        </dd>
        <dt>"actions":</dt>
        <dd>
          <t>1 to 64 action names, none repeated.</t>
        </dd>
        <dt>"limits":</dt>
        <dd>
          <t>0 to 64 limits (<xref target="limits"/>).</t>
        </dd>
        <dt>"requires":</dt>
        <dd>
          <t>0 to 64 conditions (<xref target="limits"/>).</t>
        </dd>
        <dt>"never":</dt>
        <dd>
          <t>0 to 16 names, none repeated (<xref target="limits"/>).</t>
        </dd>
        <dt>"with":</dt>
        <dd>
          <t>0 to 64 services, {"id", "name"} or {"id", "keys", "name"}; "id" has
the form of an action name, may begin "provared.", and is unique. A
service with no "keys" cannot countersign.</t>
        </dd>
        <dt>"passes":</dt>
        <dd>
          <t>An integer from 1 to 10 (<xref target="delegation"/>).</t>
        </dd>
        <dt>"validFrom", "validUntil":</dt>
        <dd>
          <t>Times; "validUntil" is later than "validFrom". The permission covers
"validFrom" up to, but not including, "validUntil".</t>
        </dd>
        <dt>"purpose":</dt>
        <dd>
          <t>Text of 1 to 1,000 code points.</t>
        </dd>
      </dl>
      <t>"rpId" is the WebAuthn Relying Party Identifier (RP ID): 1 to 253
lower-case ASCII letters, digits, ".", and "-", beginning and ending
with a letter or a digit.</t>
      <t>The member "origin" is at most 300 characters and <bcp14>MUST</bcp14> have the
following form (bad-field). It is the form in which a browser serializes
the origin of a site named by a domain name
(<xref section="6.2" sectionFormat="of" target="RFC6454"/>), and a verifier can check it without a
parser of web addresses and without Unicode tables:</t>
      <ul spacing="compact">
        <li>
          <t>the scheme, which <bcp14>MUST</bcp14> be "https", or "http" only with the host
"localhost";</t>
        </li>
        <li>
          <t>"://";</t>
        </li>
        <li>
          <t>the host: 1 to 253 characters, made of labels separated by ".", each
label 1 to 63 lower-case ASCII letters, digits, and "-", neither
beginning nor ending with "-", and the last label not all digits; a
name in another script appears in its "xn--" form and is taken as it
is; and</t>
        </li>
        <li>
          <t>optionally ":" followed by a port, only where the port is not the
scheme's default (443 for "https", 80 for "http"), in digits with no
leading zero, from 1 to 65,535.</t>
        </li>
      </ul>
      <t>Nothing else may follow. The host <bcp14>MUST</bcp14> be "rpId" or end with "."
followed by "rpId".</t>
      <t>An action name is 1 to 64 lower-case ASCII letters, digits, ".", "-",
and "_", beginning with a letter or a digit. Names are compared
exactly. Names beginning "provared." are reserved for the shared list
of <xref target="shared-list"/>, and an action name that begins so <bcp14>MUST</bcp14> be on it
(bad-field). Any other member is a problem for a core verifier
(bad-field); this includes the members by which <xref target="FORMAT"/> covers fields
(<xref target="elsewhere"/>).</t>
      <section anchor="limits">
        <name>Limits, Conditions, and Prohibitions</name>
        <t>A limit names an "action" from "actions" (bad-field) and holds exactly
one of "max", "each", and "count":</t>
        <artwork><![CDATA[
{"action","max","unit"}        the sum of the amounts is at most "max"
{"action","each","unit"}       no single amount exceeds "each"
{"action","count"}             at most "count" receipts ("count" >= 1)
{"action","max","per","unit"}  as "max", within any period of "per"
                               seconds
{"action","count","per"}       as "count", within any period of "per"
                               seconds
]]></artwork>
        <t>"per" is from 1 to 31,622,400 seconds (366 days). Two limits <bcp14>MUST NOT</bcp14>
agree in all three of: "action"; which of "max", "each", or "count" they
hold; and "per", or its absence (bad-field). Every "unit" named for one
action, in limits and conditions, <bcp14>MUST</bcp14> be the same: a receipt gives one
amount.</t>
        <t>A condition is {"need": "countersignature"} or {"need": "approval"}.
It may hold "action", which <bcp14>MUST</bcp14> be one of "actions" (bad-field);
without it, the condition applies to every action. The members "above"
and "unit" are either both present or both absent, and are present only
together with "action"; they restrict the condition to amounts greater
than "above" in that unit. Two conditions <bcp14>MUST NOT</bcp14> have the same "need"
together with the same "action", or the same "need" and both without
"action" (bad-field). The need "countersignature" asks for the service's
countersignature (<xref target="receipt"/>); "approval" asks for the principal's
approval.</t>
        <t>"never" names kinds of action and rules of conduct from
<xref target="shared-list"/>. A permission <bcp14>MUST NOT</bcp14> allow, in "actions", a shared
action of a kind that its "never" names (bad-field). A rule of conduct
is the principal's signed instruction; no check of a record shows that
it was kept.</t>
      </section>
    </section>
    <section anchor="receipt">
      <name>Action Receipts</name>
      <t>A receipt's content holds exactly:</t>
      <dl spacing="compact">
        <dt>"type":</dt>
        <dd>
          <t>"provared.stub.v0"</t>
        </dd>
        <dt>"id":</dt>
        <dd>
          <t>An identifier.</t>
        </dd>
        <dt>"slip":</dt>
        <dd>
          <t>The digest of the permission.</t>
        </dd>
        <dt>"seq":</dt>
        <dd>
          <t>Its place in its chain, from 0.</t>
        </dd>
        <dt>"previous":</dt>
        <dd>
          <t>The digest of the receipt before it; present if and only if "seq" is
not 0.</t>
        </dd>
        <dt>"action":</dt>
        <dd>
          <t>An action name.</t>
        </dd>
        <dt>"amount":</dt>
        <dd>
          <t>Optional: an amount.</t>
        </dd>
        <dt>"with":</dt>
        <dd>
          <t>Optional: the "id" of a service.</t>
        </dd>
        <dt>"details":</dt>
        <dd>
          <t>Optional: 1 to 32 maps {"name", "sha256"}, the documents involved.</t>
        </dd>
        <dt>"approval":</dt>
        <dd>
          <t>Optional: the digest of an approval.</t>
        </dd>
        <dt>"pass":</dt>
        <dd>
          <t>Optional: the digest of the delegation a helper acts under.</t>
        </dd>
        <dt>"terms":</dt>
        <dd>
          <t>Optional, with "with": the digest of a service's terms <xref target="FORMAT"/>.</t>
        </dd>
        <dt>"when":</dt>
        <dd>
          <t>The time of the action, as the agent states it.</t>
        </dd>
      </dl>
      <t>Document names that begin "provared." are reserved. In a receipt's or
an approval's "details", a name that begins so <bcp14>MUST</bcp14> be one of the seven
names of <xref section="27" sectionFormat="of" target="FORMAT" relative="#27-reserved-document-names"/>:
"provared.arguments", "provared.http-request",
"provared.http-response", "provared.trace-id", "provared.request-id",
"provared.event-id", or "provared.error" (bad-field). Of these, only
"provared.trace-id", "provared.request-id", and "provared.event-id" may
be named more than once in one record (bad-field). <xref target="FORMAT"/> states
the exact text whose digest each reserved name carries; a core verifier
checks the names, not the digests.</t>
      <t>The permission and any delegation named are records relied on
(<xref target="relied"/>). Both signatures <bcp14>MUST</bcp14> verify with the agent's keys or, for
a helper, with the "to" keys of its delegation (signature-invalid). A
core verifier accepts no terms entry, so it reports a receipt that holds
"terms" as terms-not-found.</t>
      <t>The receipts of the permission's own agent form one chain, and those
under each delegation another. In each chain, in log order, the first
has "seq" 0. Each later one has the next "seq" and names the one before
in "previous" (chain-broken), and is not dated before it
(time-went-backwards). A receipt with a problem keeps its place in its
chain, provided its content could be read and the records it relies on
were found: the next receipt is checked against it. So one break is
reported once.</t>
      <t>A countersignature has exactly the content {"stub": the receipt's
digest, "type": "provared.countersignature.v0", "when": a time}, and
states that the action took place with the service. It is carried in
the receipt's log entry and signed with the key set the permission
gives for the service the receipt names in "with". A verifier <bcp14>MUST</bcp14>
confirm "stub" (countersignature-wrong-stub), that such keys exist
(countersignature-not-possible), and both signatures
(countersignature-invalid). A receipt without a countersignature is
one-sided. This is a reported state, not a problem: such a receipt shows
only what the agent stated.</t>
      <t>Where an executor (<xref target="terms"/>) is to countersign, a receipt names the
executor in "with", since a countersignature is verified with the keys
that the permission gives for the service the receipt names. The party
beyond the executor, if there is one, is then not named in "with", and
the permission's "with" does not limit which such parties the agent
deals with; a reserved document name such as "provared.http-request"
can bind the receipt to the call the executor made. Where that party
countersigns instead, the receipt names it, and the executor is not
named.</t>
      <t>An approval is the principal's approval of exactly one action. Its
content holds exactly "type" ("provared.approval.v0"), "id", "slip",
"action", and "when", and optionally "amount", "with", and "details". It
is signed with the permission's passkey and carried in the receipt's
entry, and the receipt names it by its digest. The receipt <bcp14>MUST</bcp14> name
the approval in its entry (approval-mismatch), and an approval it names
<bcp14>MUST</bcp14> be there (approval-not-found). The approval's "slip", "action",
"amount", "with", and "details" <bcp14>MUST</bcp14> match the receipt's, each present
in both or neither (approval-mismatch). Its "id" <bcp14>MUST NOT</bcp14> be that of an
approval in an earlier entry (approval-reused) or of another record
(duplicate-id). Its passkey signature <bcp14>MUST</bcp14> verify against the
permission's "issuer" (approval-invalid). It <bcp14>MUST NOT</bcp14> be dated more than
300 seconds after the receipt, which was signed after it
(approval-dated-after-stub). An approval shows that the passkey
approved the action, not that the principal read it.</t>
    </section>
    <section anchor="delegation">
      <name>Delegation</name>
      <t>"passes" says how many times in a row a permission may be delegated: 1
lets its agent delegate to a helper, 2 lets that helper delegate once
more, up to 10. Without it, a permission may not be delegated. A
delegation's content holds exactly:</t>
      <dl spacing="compact">
        <dt>"type":</dt>
        <dd>
          <t>"provared.pass.v0"</t>
        </dd>
        <dt>"id":</dt>
        <dd>
          <t>An identifier.</t>
        </dd>
        <dt>"slip":</dt>
        <dd>
          <t>The permission's digest.</t>
        </dd>
        <dt>"from":</dt>
        <dd>
          <t>The digest of the delegation its writer acts under; absent when the
writer is the permission's own agent.</t>
        </dd>
        <dt>"to":</dt>
        <dd>
          <t>The helper: exactly {"keys": key set, "name": name}.</t>
        </dd>
        <dt>"actions":</dt>
        <dd>
          <t>As in a permission.</t>
        </dd>
        <dt>"limits":</dt>
        <dd>
          <t>As in a permission, naming only these "actions".</t>
        </dd>
        <dt>"validFrom", "validUntil":</dt>
        <dd>
          <t>Its validity, as in a permission.</t>
        </dd>
        <dt>"when":</dt>
        <dd>
          <t>When it was written.</t>
        </dd>
      </dl>
      <t>It is signed by its writer: with the agent's keys or, with "from", the
"to" keys of that delegation (signature-invalid). The permission and
the delegation in "from" are records relied on (<xref target="relied"/>). Its depth
is 1 without "from", otherwise one more than that of "from"; a depth
above 10 is a problem (pass-too-deep).</t>
      <t>A verifier reports these findings for a delegation:</t>
      <ul spacing="compact">
        <li>
          <t>pass-not-allowed, if its depth exceeds "passes" (taken as 0 when
"passes" is absent);</t>
        </li>
        <li>
          <t>pass-wider, if any of its "actions" is not among its writer's, or its
validity begins earlier or ends later than its writer's;</t>
        </li>
        <li>
          <t>outside-valid-time, if "when" is outside its writer's validity; and</t>
        </li>
        <li>
          <t>after-cancellation, as <xref target="cancellation"/> sets out.</t>
        </li>
      </ul>
      <t>"Its writer's" means the permission's, or, with "from", the
delegation's named there.</t>
      <t>A receipt under a delegation is compared with the permission exactly as
the agent's own receipts are, and shares their totals, conditions, and
"never". It is also compared with its own delegation and with every
delegation above it, each treated as a permission for its "actions",
"limits", and validity; the totals of a delegation include everything
done under delegations from it. A finding code already reported for a
receipt is not repeated. Every receipt under a delegation reported
pass-not-allowed, or under a delegation below it, is reported
pass-not-allowed. Because the limits of the permission and of every
delegation above always apply, a delegation never widens what the
verifier accepts as within the permission.</t>
    </section>
    <section anchor="cancellation">
      <name>Cancellation and Acknowledgement</name>
      <t>A cancellation has exactly the content {"id", "slip", "type":
"provared.cancellation.v0", "when"}, and is signed with the permission's
passkey and verified against its "issuer" (cancellation-invalid); the
permission is a record relied on (<xref target="relied"/>). Its entry may hold
"stamps" over its digest (<xref target="timestamps"/>), which the principal can
obtain at once.</t>
      <t>The effective cancellation of a permission is the first cancellation of
it in the log that is sound when read and whose passkey signature, and
that of its permission, were verified. Every receipt and delegation
under the permission that follows the effective cancellation in the log
is reported after-cancellation.</t>
      <t><xref section="22" sectionFormat="of" target="FORMAT" relative="#22-cancelling-a-slip"/> adds a
stricter rule for a time-stamped cancellation. A receipt before it in
the log is also reported, unless a time-stamp on an earlier head shows
that the receipt existed by the cancellation's time, within 300
seconds. This document does not specify that rule (<xref target="open-issues"/>).
Without that rule, a core verifier can miss receipts made after a
cancellation.</t>
      <t>A cancellation does not show that the agent was told; an
acknowledgement is the agent's signed statement that it was. Its
content holds exactly "cancellation" (a digest), "id", "slip", "type"
("provared.acknowledgement.v0"), and "when", and optionally "pass". It
is signed with the agent's keys or a helper's (signature-invalid). The
permission, any delegation named, and the cancellation, which <bcp14>MUST</bcp14>
cancel the same permission (cancellation-not-found), are records relied
on (<xref target="relied"/>). An acknowledgement changes no finding, and its "when"
is not compared with the cancellation's; its signer <bcp14>SHOULD NOT</bcp14> date it
before the last receipt or delegation its agent wrote.
<xref section="26" sectionFormat="of" target="FORMAT" relative="#26-acknowledging-a-cancellation"/>
sets out how a verifier uses it with the principal's own copy.</t>
    </section>
    <section anchor="log">
      <name>Logs, Signed Tree Heads, and Time-Stamps</name>
      <section anchor="log-format">
        <name>The Log</name>
        <t>A log is a sequence of entries, numbered from 0. Each entry holds one
record, with what is carried beside it: a permission; an action
receipt, optionally with a countersignature and an approval; a
delegation; a cancellation, optionally with time-stamps; an
acknowledgement; or a signed tree head, optionally with time-stamps.
Any other entry is a problem (unknown-entry). A core verifier reports
the four further kinds of <xref target="FORMAT"/> ("refusal", "terms", "vouching",
"withdrawal") in the same way, and so never calls such a log intact. The
same permission <bcp14>MUST NOT</bcp14> appear twice (duplicate-slip), nor the same
delegation (duplicate-id). A log <bcp14>MUST NOT</bcp14> exceed 100,000 entries
(too-large). <xref target="json-log"/> gives the form of a log in the JSON encoding.</t>
        <t>The leaves of the tree are the entries as the encoding writes them, in
log order; the root is the Merkle Tree Hash of
<xref section="2.1.1" sectionFormat="of" target="RFC9162"/> with SHA-256. Inclusion and consistency
proofs are checked against a size as well as a root, so the two are
kept together. A verifier given a root or a size to expect <bcp14>MUST</bcp14> compare
it (root-mismatch).</t>
      </section>
      <section anchor="seal">
        <name>Signed Tree Heads</name>
        <t>A signed tree head's content holds exactly "type" ("provared.seal.v0"),
"id", "by" (exactly {"keys": the recorder's key set, "name"}), "size"
(at least 1), "root", "previous" (the previous head's digest, absent for
the first), and "when". A head is signed with the three keys in "by" and
appended as the next entry, so each head covers those before it. A
verifier holding the whole log <bcp14>MUST</bcp14> confirm that:</t>
        <ol spacing="compact" type="1"><li>
            <t>the three signatures verify (signature-invalid);</t>
          </li>
          <li>
            <t>"size" is its own place in the log, and "root" the root of the
entries before it (seal-mismatch);</t>
          </li>
          <li>
            <t>"previous" names the nearest earlier head, or is absent if there is
none (seal-chain-broken);</t>
          </li>
          <li>
            <t>"when" is not before that head's (time-went-backwards); and</t>
          </li>
          <li>
            <t>if given digests of trusted recorders' key sets, that of "by.keys" is
one (sealer-not-expected); if given none, it <bcp14>MUST</bcp14> say that the keys
were not compared with trusted keys.</t>
          </li>
        </ol>
        <t><xref section="21" sectionFormat="of" target="FORMAT" relative="#21-the-seal-and-the-outside-time-stamp"/> adds rules that
compare a head's "when" with the times its entries state and with
earlier heads' time-stamps (time-went-backwards). This document does
not specify them (<xref target="open-issues"/>).</t>
      </section>
      <section anchor="timestamps">
        <name>Time-Stamps</name>
        <t>"stamps" holds 1 to 4 time-stamps, none repeated. A time-stamp is either
an <xref target="RFC3161"/> TimeStampToken or a block time-stamp of <xref target="FORMAT"/>. A
TimeStampToken is at most 12,288 bytes; its "messageImprint" has the
hashAlgorithm SHA-256 and a hashedMessage equal to the 32 bytes of the
record's digest, not hashed again. A block time-stamp holds exactly
"block" and "proof", both bytes (<xref target="json-log"/>); a core verifier does not
count it, and so answers no to the second question of <xref target="answers"/>.
Time-stamps are read only if none of the record's own signatures failed.
A verifier <bcp14>MUST</bcp14> confirm that:</t>
        <ol spacing="compact" type="1"><li>
            <t>the token is one element with nothing after it, laid out as
<xref target="RFC3161"/> and <xref target="RFC5652"/> require: signed data of version 3 with
exactly one signer, of version 1 or 3, enclosing a TSTInfo of
version 1 (stamp-bad-data);</t>
          </li>
          <li>
            <t>it meets these rules of DER <xref target="X690"/> (stamp-bad-data):
            </t>
            <ul spacing="normal">
              <li>
                <t>definite lengths in their shortest form, with a length field of at
most four bytes, and single-byte tags;</t>
              </li>
              <li>
                <t>every constructed element exactly filled by its parts;</t>
              </li>
              <li>
                <t>every INTEGER and OBJECT IDENTIFIER in its shortest form; every
BOOLEAN 0x00 or 0xFF; every NULL empty; every BIT STRING with at
most 7 unused bits;</t>
              </li>
              <li>
                <t>genTime and each certificate's validity times in the one form DER
gives them, denoting a moment that exists;</t>
              </li>
              <li>
                <t>the public key of the signing certificate written exactly as its
own specification sets out, with no unused bits: RSA as
<xref section="2.3.1" sectionFormat="of" target="RFC3279"/>, with the parameters present and NULL
and two positive INTEGERs with nothing after them; ECDSA as
<xref section="2.2" sectionFormat="of" target="RFC5480"/>, as an uncompressed point; Ed25519 as
<xref section="4" sectionFormat="of" target="RFC8410"/>, with no parameters and 32 bytes; and</t>
              </li>
              <li>
                <t>at most 4,000 elements, none more than 24 levels deep, in each of
the signed data, the enclosed TSTInfo (read from its OCTET STRING),
and an RSA public key; at most 8 digest algorithms, 8 certificates,
16 signed attributes, 4 values in one attribute, 8 identifiers in a
signing-certificate attribute, and 16 TSTInfo extensions.</t>
              </li>
            </ul>
            <t>
The order of SET OF elements and the omission of DEFAULT values are
not checked;</t>
          </li>
          <li>
            <t>the "messageImprint" is as above (stamp-wrong-data);</t>
          </li>
          <li>
            <t>the signed attributes hold a content type of id-ct-TSTInfo, and the
TSTInfo's message digest made with the signer's digest algorithm
(SHA-256, SHA-384, or SHA-512). They also hold ESSCertIDv2
(<xref target="RFC5035"/>, <xref target="RFC5816"/>), with SHA-256 (the default), SHA-384, or
SHA-512, or ESSCertID (<xref target="RFC2634"/>), with SHA-1, ESSCertIDv2 being
used if both are present; the first identifier in the attribute names
the certificate, which the token carries; the issuerSerial is not
compared. Each of these attributes appears at most once and holds
exactly one value, as <xref target="RFC5652"/> and <xref target="RFC5035"/> require
(stamp-invalid);</t>
          </li>
          <li>
            <t>the signature over the signed attributes verifies with that
certificate's key (stamp-invalid). The signature algorithm names the
signer's digest algorithm (for RSA, rsaEncryption is also accepted).
The accepted methods are RSASSA-PKCS1-v1_5 with a modulus of 2,048 to
8,192 bits and an odd public exponent from 3 to 2^32 - 1 (with an
exponent of 1, anyone can produce a signature that verifies); ECDSA
on P-256 or P-384; and Ed25519 <xref target="RFC8419"/>. An Ed25519 key that
<xref target="keys"/> refuses, or a key of any other kind or on any other curve,
is refused (stamp-invalid); and</t>
          </li>
          <li>
            <t>"genTime" lies within the certificate's validity, the seconds field
of any "accuracy" is at most 300, and no TSTInfo extension is
critical (stamp-invalid). The certificate's extensions are not
examined, since the certificate is trusted by its digest.</t>
          </li>
        </ol>
        <t>A verifier is told which TSAs it trusts by the digest of each TSA's
certificate in DER; it builds no chain, checks no revocation, and asks
no outside party. A time-stamp counts only if its TSA is trusted and
every signature of its record was verified (for a cancellation, also
its permission's). A sound time-stamp from a TSA not trusted <bcp14>MUST</bcp14> be
shown as such, with its certificate's digest; a time-stamp that does not
count <bcp14>MUST NOT</bcp14> be used as a time. Times are taken to the second, rounded
down.</t>
        <t>A counted time-stamp at time T shows that the record existed by T. On a
sound signed tree head, it also shows that every entry before the head
existed by T. An entry existed by the earliest such T of any later sound
head. A verifier <bcp14>MUST</bcp14> report "existed by", never "existed at", and <bcp14>MUST</bcp14>
say which entries the last counted time-stamp reaches. It <bcp14>MUST</bcp14> report
dated-after-stamp for a head or a cancellation whose "when" is more than
300 seconds after the earliest time its counted time-stamps state, and
for an entry whose "when", or the "when" of a countersignature or
approval carried in it, is more than 300 seconds after the time by which
the entry existed.</t>
      </section>
    </section>
    <section anchor="verification">
      <name>Verification</name>
      <section anchor="answers">
        <name>The Three Answers</name>
        <t>A verifier is given the log and, optionally, the size and root it
expects, the thumbprints of the passkeys it trusts, and the digests of
the key sets of the recorders and of the certificates of the TSAs it
trusts. It makes no network request. It gives three answers, kept
apart:</t>
        <ol spacing="compact" type="1"><li>
            <t>Was a problem found? Yes if any entry, or the log, has one.</t>
          </li>
          <li>
            <t>Was everything verified? Yes only if every entry was read as far as
its signatures, and no signature or time-stamp in the log was left
unverified because the verifier does not implement its method.</t>
          </li>
          <li>
            <t>Did each action stay within its permission? Yes only if no problem
was found, every receipt and delegation was compared, and none gave
a finding.</t>
          </li>
        </ol>
        <t>A verifier <bcp14>MUST</bcp14> call a log intact only if no problem was found and
everything was verified. A receipt or delegation is compared only if it
is sound, at least one of its signatures was verified and none failed,
and its permission's passkey signature was verified. So the third
answer can be yes while the second is no: for example, a verifier
without ML-DSA-87 compares receipts on their Ed25519 signatures alone.
When the second answer is no, a verifier <bcp14>MUST</bcp14> say that the third rests
only on the signatures it verified, and <bcp14>MUST</bcp14> name the signing methods
it lacked.</t>
        <t>A verifier checks each record's encoding (in the JSON encoding, its
envelope, labels, and content, <xref target="json"/>), then its members, and then
finds the records it relies on, in that order. At the first problem in
those steps, it reports that problem's code and checks nothing further
in that entry. Once an entry's members have been read, and before the
records it relies on are looked up, its "id" is compared with the
identifiers seen so far and then recorded; an approval's "id" is
compared and recorded once the approval has been matched to its receipt.
Every other problem of an entry (a signature, its place in its chain, a
countersignature, an approval, a repeated "id") is reported. Anything
the verifier did not expect is a problem (check-failed), never a pass.
Each problem and finding is reported with its entry's number. Two
verifiers agree if they give the same three answers, find problems at
the same entries, and report the same findings for each entry.</t>
      </section>
      <section anchor="findings">
        <name>Findings</name>
        <t>A verifier reports these findings at the receipt concerned:</t>
        <dl spacing="compact" indent="20">
          <dt>action-not-allowed:</dt>
          <dd>
            <t>"action" is not in "actions".</t>
          </dd>
          <dt>prohibited:</dt>
          <dd>
            <t>"action" is a shared action of a kind that "never" names.</t>
          </dd>
          <dt>party-not-allowed:</dt>
          <dd>
            <t>"with" names no service of the permission.</t>
          </dd>
          <dt>outside-valid-time:</dt>
          <dd>
            <t>"when" is outside the permission's validity.</t>
          </dd>
          <dt>amount-missing:</dt>
          <dd>
            <t>A limit with a "unit", or a condition with "above", applies to the
action, and the receipt has no amount in that unit (once a receipt).</t>
          </dd>
          <dt>over-limit, over-each-limit, over-count-limit:</dt>
          <dd>
            <t>The running total exceeds "max"; the amount exceeds "each"; with
this receipt, the number exceeds "count".</t>
          </dd>
          <dt>over-period-limit:</dt>
          <dd>
            <t>Within the period ending at this receipt, the total exceeds "max" or
the number "count".</t>
          </dd>
          <dt>countersignature-missing, approval-missing:</dt>
          <dd>
            <t>A condition applies, and the entry holds no countersignature, or no
approval.</t>
          </dd>
          <dt>after-cancellation, pass-not-allowed:</dt>
          <dd>
            <t>As <xref target="cancellation"/> and <xref target="delegation"/> set out.</t>
          </dd>
        </dl>
        <t>A condition with "above" applies only if the amount is in its unit and
greater than "above"; an amount missing or in another unit is
amount-missing. Only compared receipts count toward totals.</t>
        <t>Totals and counts without "per" accumulate in log order over every
compared receipt for the action under the permission, across all
chains including the current one. Once a total is exceeded, every later
receipt for that action is reported too. A limit with "per" P is
evaluated for each compared receipt X, dated t, over the period that
ends at X. That period holds: every receipt for the action, in any
chain and anywhere in the log, dated later than t - P and earlier than
t; those dated exactly t that precede X in the log; and X itself.
Because a later entry may state an earlier time, period limits are
settled only once every receipt has been read. Periods are counted in
seconds; there are no calendar days and no time zones.</t>
      </section>
    </section>
    <section anchor="json">
      <name>The JSON Encoding</name>
      <t>This section specifies the JSON encoding: how records, keys, and logs
are written as JSON <xref target="RFC8259"/>, and how signatures are carried, with
JWS <xref target="RFC7515"/>.</t>
      <section anchor="json-envelope">
        <name>Envelope and Labels</name>
        <t>Every record is a JWS in the General JWS JSON Serialization
(<xref section="7.2.1" sectionFormat="of" target="RFC7515"/>). It <bcp14>MUST</bcp14> hold exactly the members
"payload" and "signatures". Each element of "signatures" <bcp14>MUST</bcp14> hold
exactly "protected" and "signature" and, for a passkey signature, also
"header", which holds exactly "authenticatorData" and "clientDataJSON"
(bad-envelope). A passkey's authenticator data and client data are
stored there, and its signature in "signature", each exactly as
returned. The signing input of every signature is the JWS Signing Input
(<xref section="5.1" sectionFormat="of" target="RFC7515"/>) formed from "protected" and "payload" as
carried.</t>
        <t>Every value written in base64url, in a record's envelope or content or
in a log entry, is that of <xref section="5" sectionFormat="of" target="RFC4648"/>, without padding,
and is read strictly: a verifier <bcp14>MUST</bcp14> refuse padding, a character
outside the alphabet, a length that leaves 1 when divided by 4, and
unused bits that are not zero (bad-base64url; in a key, bad-key; in
"authenticatorData" and "clientDataJSON", passkey-bad-data). The decoded
"signature" of an Ed25519, ML-DSA-87, or SLH-DSA-SHA2-256s signature
<bcp14>MUST</bcp14> have its method's length (<xref target="hybrid"/>; signature-invalid).</t>
        <t>The protected header of each signature, once decoded, <bcp14>MUST</bcp14> be exactly
the UTF-8 bytes of {"typ":"&lt;typ&gt;","alg":"&lt;alg&gt;"}, with no
white space and the two members in that order, where &lt;typ&gt; and
&lt;alg&gt; are as follows. This header is a fixed text, compared as
bytes; it is deliberately not in the canonical member order of
<xref target="json-content"/>. A verifier compares bytes and interprets nothing else.
A header that is not a known text is a problem (unknown-type). One that
belongs to another kind of record than the one expected is a problem
too (payload-type-mismatch). The number and order of the signatures are
those of <xref target="records"/> (bad-signatures-layout).</t>
        <t>&lt;typ&gt; is "vnd.provared.X.v0+json", with X as in <xref target="records"/>: the
subtype of the record's media type, written without its "application/"
prefix as <xref section="4.1.9" sectionFormat="of" target="RFC7515"/> allows. The placeholder
&lt;alg&gt; names the method of the signature: "Ed25519", "ML-DSA-87",
"SLH-DSA-SHA2-256s", or "prova.red/webauthn/v0" for a passkey. A passkey's signature is its
assertion signature over the authenticator data and the client data
(<xref target="passkey"/>); the JWS Signing Input enters it only through the
challenge. The "typ" value is used for explicit typing
(<xref section="3.11" sectionFormat="of" target="RFC8725"/>); since it is signed, every signature
covers the kind of record. The name "Ed25519" is registered by
<xref target="RFC9864"/> and "ML-DSA-87" by <xref target="RFC9964"/>. The name
"prova.red/webauthn/v0" is collision-resistant
(<xref section="4.1.1" sectionFormat="of" target="RFC7515"/>) and is not registered. The name
"SLH-DSA-SHA2-256s", which <xref target="FIPS205"/> gives the parameter set, is
neither registered nor collision-resistant, one of which
<xref section="4.1.1" sectionFormat="of" target="RFC7515"/> says an "alg" value should be; this
document fixes it as a private-use value, compared byte for byte. It
follows the naming of <xref target="I-D.ietf-cose-sphincs-plus"/>, which
registers the 128s parameter sets with the same key form (AKP), pure
mode, and the empty context, so that a registration of this name with
that meaning would be compatible.</t>
      </section>
      <section anchor="json-content">
        <name>Content and Values</name>
        <t>The content of a record is the decoded "payload", and its digest is the
SHA-256 hash of those bytes. It <bcp14>MUST</bcp14> be a JSON object in UTF-8, in the
canonical form of <xref target="RFC8785"/>: a verifier serializes it again and
refuses it if a single byte differs (payload-not-canonical). This
refuses repeated member names, white space, and members out of order.
The content <bcp14>MUST</bcp14> hold only objects, arrays, strings, and integers from 0
to 2^53 - 1. It holds no "true", "false", "null", fractions, exponents,
or negative numbers, and no unpaired surrogate, even escaped. Objects
and arrays <bcp14>MUST NOT</bcp14> nest more than 8 levels deep, the content itself
being the first (payload-not-canonical). The signed bytes are verified
as signed; the canonical form is a test, never a rewrite.</t>
        <t>A map is written as an object, a list as an array, text as a string, and
an integer as a number. The values of <xref target="values"/> are written so:</t>
        <dl spacing="compact">
          <dt>Bytes:</dt>
          <dd>
            <t>In base64url, read strictly as <xref target="json-envelope"/> sets out.</t>
          </dd>
          <dt>Time:</dt>
          <dd>
            <t>"YYYY-MM-DDTHH:MM:SSZ", an <xref target="RFC3339"/> date-time (bad-field).</t>
          </dd>
          <dt>Key:</dt>
          <dd>
            <t>A JSON Web Key (JWK) <xref target="RFC7517"/> of exactly one of the shapes below,
with no other member (bad-key).</t>
          </dd>
        </dl>
        <artwork><![CDATA[
{"alg":"Ed25519","crv":"Ed25519","kty":"OKP","x":X}     X: 32 bytes
{"alg":"ML-DSA-87","kty":"AKP","pub":P}               P: 2592 bytes
{"alg":"SLH-DSA-SHA2-256s","kty":"AKP","pub":P}         P: 64 bytes
{"alg":"ES256","crv":"P-256","kty":"EC","x":X,"y":Y}  X, Y: 32 bytes
{"alg":"RS256","e":"AQAB","kty":"RSA","n":N}     N: 2048-8192 bits
]]></artwork>
        <t>These follow <xref target="RFC8037"/> (the Octet Key Pair, "OKP", key type),
<xref section="3" sectionFormat="of" target="RFC9964"/> (the Algorithm Key Pair, "AKP", key type), and
<xref section="6" sectionFormat="of" target="RFC7518"/>; "n" has no leading zero byte. A key set is an
array of keys.</t>
        <t>A record <bcp14>MUST NOT</bcp14> exceed 65,536 characters, counted as the length of
"payload" plus the lengths of every string in its signature entries,
"header" included (too-large).</t>
      </section>
      <section anchor="json-keys">
        <name>Thumbprints and Key-Set Digests</name>
        <t>A passkey is named by its key thumbprint: <xref target="RFC7638"/> with SHA-256,
over the members required by <xref section="3.2" sectionFormat="of" target="RFC7638"/>,
<xref section="2" sectionFormat="of" target="RFC8037"/> for "OKP", and <xref section="6" sectionFormat="of" target="RFC9964"/> for
"AKP". A recorder is named by the digest of its key set: the SHA-256
hash of the key set written in the canonical form of <xref target="json-content"/>.</t>
      </section>
      <section anchor="json-log">
        <name>Logs</name>
        <t>A log is UTF-8 text, one entry to a line, each line ended by a line
feed except perhaps the last. A log with no entry, an empty line, or a
byte order mark is a problem (not-json); so is a line ending in a
carriage return (line-not-canonical). Each line is a JSON object in the
canonical form of <xref target="json-content"/>, with records as values
(line-not-canonical). It holds exactly the members of one kind of entry
(<xref target="log-format"/>): "slip" (a permission); "stub", optionally with
"countersignature" and "approval" (an action receipt); "pass" (a
delegation); "cancellation", optionally with "stamps";
"acknowledgement"; or "seal" (a signed tree head), optionally with
"stamps" (unknown-entry). A line <bcp14>MUST NOT</bcp14> exceed 131,072 bytes
(too-large). The leaves of the tree are the lines' bytes, without line
feeds.</t>
        <t>In "stamps", a TimeStampToken is a string, in base64url. A block
time-stamp is an object of exactly "block" and "proof", each a string
(bad-field) in base64url (<xref target="json-envelope"/>).</t>
      </section>
    </section>
    <section anchor="other-encodings">
      <name>Other Encodings</name>
      <t>Another encoding could carry the same content model: for example, one
using COSE_Sign (<xref section="4.1" sectionFormat="of" target="RFC9052"/>) over deterministically
encoded CBOR (<xref section="4.2" sectionFormat="of" target="RFC8949"/>). This document does not
define one. Such an encoding has to define:</t>
      <ol spacing="compact" type="1"><li>
          <t>the bytes of a record's content, in one form that a verifier tests,
so that a record's digest is fixed; it may write member names in
another fixed form, such as short integer labels;</t>
        </li>
        <li>
          <t>how the signatures are carried, in the number and order of
<xref target="records"/>, and the signing input of each, which covers the kind of
record (with COSE, perhaps by the "typ" header parameter <xref target="RFC9596"/>)
and its content;</t>
        </li>
        <li>
          <t>how each signature names its method, in fixed bytes that a verifier
compares: with COSE, the "alg" of each signer, which has values for
Ed25519 <xref target="RFC9864"/> and ML-DSA-87 <xref target="RFC9964"/>, but none yet for
SLH-DSA-SHA2-256s or the passkey signature;</t>
        </li>
        <li>
          <t>the passkey's challenge, the SHA-256 hash of that signing input, and
where the authenticator data and client data are stored;</t>
        </li>
        <li>
          <t>how bytes, times, and keys are written (with COSE, keys as COSE_Key),
and the thumbprints (<xref target="RFC9679"/>) and key-set digests by which a
verifier is told whom it trusts;</t>
        </li>
        <li>
          <t>the form of a log and of its entries, which are the leaves of the
tree; and</t>
        </li>
        <li>
          <t>its size limits, and the codes for problems of its own form.</t>
        </li>
      </ol>
      <t>The rest of the content model, the three answers, and the findings
apply unchanged. A record's digest depends on its encoding, so records
that name one another, and the entries of one log, are in one encoding.
The thumbprints and key-set digests by which a verifier is told whom it
trusts also depend on the encoding: a key's JWK thumbprint and its
COSE_Key thumbprint differ.</t>
    </section>
    <section anchor="related">
      <name>Relationship to Other Work</name>
      <dl spacing="compact">
        <dt>Agent receipts:</dt>
        <dd>
          <t><xref target="I-D.nelson-agent-delegation-receipts"/> has the user sign an
authorization (WebAuthn being one way) with allowed and denied
actions, prohibitions, and a time window, logged before the agent
acts; its delegations may only narrow, within a depth limit, and can
be revoked. <xref target="I-D.sahu-agent-action-receipts"/> and
<xref target="I-D.dembowski-agentledger-proof-of-behavior"/> (which expired on 22
October 2026) specify signed, hash-chained action receipts, with a
recorded policy decision or a gate run before execution. Here the
permission carries limits on amounts, counts, and periods, and anyone
can compare each recorded action with it afterward.</t>
        </dd>
        <dt>Audit records:</dt>
        <dd>
          <t><xref target="I-D.gilda-audit-agent-audit-record"/> records an authorization
decision and the effect that followed, as one in-toto predicate in a
DSSE envelope, with a canonicalization contract and what a retaining
party keeps beside a record so that it can later be dated from
anchors it does not control; it defines no policy. Where a decision
applied a cumulative limit set by a document named by digest, the
record states the limit and the amounts that the decision point
counted as committed, held, and requested; a verifier derives from
them whether the decision was within the limit, and a party that
holds every record under one limit checks them against one another
(<xref section="5.9" sectionFormat="of" target="I-D.gilda-audit-agent-audit-record"/>).
<xref target="I-D.sharif-agent-audit-trail"/> specifies a JSON logging record with
mandatory fields for the agent, the authorizing principal, the
action's class, and its outcome, hash-chained with SHA-256 over
<xref target="RFC8785"/> and optionally signed with ECDSA P-256, ML-DSA-65, or
Ed25519, or with ECDSA P-256 and ML-DSA-65 side by side; it requires
a denial or an escalation to be recorded before execution, recommends
a recorder independent of the agent at its higher trust levels, and
maps the record to regulatory logging requirements.
<xref target="I-D.sergeev-audit-task-requirements"/> states which evidence answers
which audit question and separates missing evidence from a negative
observation; the three answers of <xref target="answers"/> and the omission limits
of <xref target="security"/> are of that kind. None has the principal sign the
limits against which a verifier compares each recorded action: the
first checks a cumulative amount against the amounts that the
decision point recorded, not against the actions' own signed records,
and has no limits on counts, single amounts, or periods. The
permission here could be the document that sets such a limit, or the
authorization under which a decision recorded by the first two was
made.</t>
        </dd>
        <dt>EMILIA Protocol receipts:</dt>
        <dd>
          <t>In <xref target="I-D.schrock-ep-authorization-receipts"/>, an enrolled approver,
never the initiator, signs a context bound to one exact action before
it is executed, preferably with a WebAuthn credential whose challenge
is the hash of that context, with user verification required. The
executor records one-time use in shared atomic state; the receipt,
which carries a log inclusion proof, can be verified offline. In
<xref target="I-D.schrock-ep-bounded-capability-receipts"/>, an issuer signs with
Ed25519 a capability holding a closed scope, a budget in explicit
units, an expiry, and any parent; its issuance can itself be approved
by such a receipt. Delegation only narrows, and is funded from the
parent's budget. An overspend or a replayed operation is refused when
an operation is reserved, and revocation is checked then and again
just before the action takes effect, within one atomic store. That
document states that it provides no offline or cross-domain
double-spend prevention, and that a committed operation is not
verifiable evidence unless a signed record covers it; Section 13 of
that document lists what such evidence should hold. Together, the two
EMILIA documents provide enforcement before an action takes effect,
in the executor's atomic state, and evidence of what was authorized,
in the authorization receipt. An approval here (<xref target="receipt"/>)
corresponds to the first document, and a signed total with narrowing
delegation to the second. The difference is where the limits live and
who checks them: there, the executor's store refuses an operation;
here, the principal's passkey signs the limits, which may also bound
single amounts, counts, and periods and set conditions, each action is
a signed receipt that the service may countersign, and any verifier
decides afterward, from the records alone, whether each action stayed
within the permission. This document does not stop an action when it
is attempted, and an action for which no receipt was written is found
only in another party's records (<xref target="security"/>). The two designs could
be combined: an executor (<xref target="terms"/>) that refuses an operation before it takes
effect, and receipts from which any verifier can later check each
action against the limits the principal signed.</t>
        </dd>
        <dt>SCITT profiles:</dt>
        <dd>
          <t>A SCITT Transparency Service <xref target="RFC9943"/> registers Signed Statements
and returns Receipts <xref target="RFC9942"/> proving inclusion in its log; a
SCITT Receipt proves registration, not an action.
<xref target="I-D.noa-scitt-ai-agent-receipt"/> records a principal class and an
ALLOW or DENY verdict, keeps pre-execution authorization apart, and
does not claim that a named approver authorized the action.
<xref target="I-D.emirdag-scitt-ai-agent-execution"/> has the operator sign each
record, with an independent custodian as Transparency Service; a
principal's constraints appear only as an optional text field and
references to credentials. <xref target="I-D.mih-scitt-agent-action-capsule"/>
records one action per capsule, with its disposition and the
constraints evaluated, and leaves permission to authorization records
it references by digest. None defines a permission signed by the
principal, with limits that a verifier compares receipts against. That
content model could be carried by a SCITT profile, with heads or
receipts registered as Signed Statements, also guarding against
truncation and split views (<xref target="security"/>).</t>
        </dd>
        <dt>OAuth and GNAP:</dt>
        <dd>
          <t>Token Exchange expresses delegation through the "act" claim
(<xref section="4.1" sectionFormat="of" target="RFC8693"/>); Rich Authorization Requests <xref target="RFC9396"/>
and the Grant Negotiation and Authorization Protocol (GNAP)
<xref target="RFC9635"/> grant detailed rights. All yield tokens issued by a
server for access, not records signed by the principal.
Transaction Tokens <xref target="I-D.ietf-oauth-transaction-tokens"/> carry one
call's context through a trust domain; a receipt can hold a token's
digest in "details".</t>
        </dd>
        <dt>Attenuating tokens:</dt>
        <dd>
          <t><xref target="I-D.niyikiza-oauth-attenuating-agent-tokens"/> lets a holder derive
offline tokens with equal or narrower capabilities, within depth and
lifetime limits, checked before each call; macaroons <xref target="MACAROONS"/>,
Biscuit <xref target="BISCUIT"/>, and User Controlled Authorization Network (UCAN)
<xref target="UCAN"/> narrow capabilities likewise. Delegation here also only
narrows, but is checked over recorded actions, with totals and
periods across many of them.</t>
        </dd>
        <dt>WIMSE:</dt>
        <dd>
          <t>Workload Identity in a Multi System Environment (WIMSE)
<xref target="I-D.ietf-wimse-arch"/> gives workloads identities;
<xref target="I-D.ietf-wimse-aims"/> applies WIMSE and OAuth to AI agents. A WIMSE
credential for an agent's keys would say which workload held them.</t>
        </dd>
        <dt>Credentials and mandates:</dt>
        <dd>
          <t>A permission resembles a credential (<xref target="VC-DATA-MODEL"/>,
<xref target="I-D.ietf-oauth-sd-jwt-vc"/>) and a mandate of the Agent Payments
Protocol <xref target="AP2"/>, by which a user authorizes purchases within limits;
but it is checked against receipts, and handles no payment.</t>
        </dd>
        <dt>Agent auditing:</dt>
        <dd>
          <t>The approved request for a working-group-forming session on Agent Use
of Delegation and Interaction Traceability (AUDIT) at IETF 127
<xref target="AUDIT-BOFREQ"/>, dated 8 October 2026, lists
<xref target="I-D.kuehlewind-audit-architecture"/> and
<xref target="I-D.birkholz-verifiable-agent-conversations"/> as its architecture
and solution drafts, and a data model for records among the new work
required; at the time of writing (October 2026) the proposed group's
charter is still being revised. The architecture's first work item
leaves the encoding open, CBOR and COSE or JSON and JWS, with detached
payloads. In its terms, a permission records an initial grant, an
approval a step-up approval, and a cancellation a revocation, which
are kinds of Authorization Transition Record; a delegation is a
Delegation Record. It places Action Records where an action took
effect and binds each to its authorizing token; here the agent's
receipt names its permission by digest, and the countersignature
comes from the side where the action took effect. Its records share a
correlation identifier, which this document does not define
(<xref target="open-issues"/>). This document offers the permission with limits
and the comparison rule as content that any record format in that
work could carry.</t>
        </dd>
      </dl>
    </section>
    <section anchor="rationale">
      <name>Design Rationale</name>
      <t>Passkeys are on the devices people use, resist phishing, and record user
verification; no device offers a post-quantum passkey. The JSON encoding
is defined first because an implementation uses it, and JSON text suits
a log of one entry to a line. Two signatures side by side can each be
verified by any library, and a verifier lacking one says so. Composite
signatures <xref target="I-D.ietf-jose-pq-composite-sigs"/> would make one of the
two, but that draft pairs ML-DSA-87 only with ES384 or Ed448, never with
Ed25519. Verification needs no network, because a record may be checked
years later, when its writers have gone. Post-quantum signatures are
used from the start: if Ed25519 is forged in future, a record carrying
only Ed25519 could be made afterward and not told apart from a genuine
one; SLH-DSA rests on hash functions alone. The tree is that of
Certificate Transparency, the covering of fields in <xref target="FORMAT"/> that of
<xref target="RFC9901"/>, and the time-stamp that of the Time-Stamp Protocol.</t>
    </section>
    <section anchor="elsewhere">
      <name>Parts Specified Elsewhere</name>
      <t><xref target="FORMAT"/> specifies these parts, out of scope here: one-page proofs of
single entries, with a permission's names and purpose covered by the
disclosures of <xref target="RFC9901"/>; vouching records, by which an organization
states that a key belongs to a name, and their withdrawal; a service's
signed refusals and terms; time-stamps from a public blockchain; further
date rules; the principal's own copy of a cancellation, handed to a
verifier; the exact texts whose digests the reserved document names of
<xref target="receipt"/> carry
(<xref section="27" sectionFormat="of" target="FORMAT" relative="#27-reserved-document-names"/>),
which bind a receipt to a web request, an answer, a call's arguments, an
identifier for the call from either side, or an error text; and the check
before acting
(<xref section="20" sectionFormat="of" target="FORMAT" relative="#20-the-check-before-acting"/>), by
which the software around an agent asks, before an action, whether it
would stay within the permission. How records are carried, how keys are
distributed, and what to do about a finding are out of scope too.</t>
    </section>
    <section anchor="open-issues" removeInRFC="true">
      <name>Open Issues</name>
      <ol spacing="compact" type="1"><li>
          <t>Labels: standards-tree media types <xref target="RFC6838"/>, a registered passkey
method, and the brand in the identifiers. The brand stands in the
media types, in the passkey method name, in the "type" values
"provared.X.v0" of the content model (<xref target="records"/>), and in the
reserved action prefix "provared." of <xref target="permission"/> and
<xref target="shared-list"/>. On adoption, all of these would be renamed, with a
"type" such as
"agent-permission.v0" and a prefix chosen by the group; the "v0"
label is what keeps the two from being confused, and the vendor-tree
media types would then need no registration.
<xref target="I-D.ietf-cose-sphincs-plus"/> registers SLH-DSA-SHA2-128s and
SLH-DSA-SHAKE-128s, not SLH-DSA-SHA2-256s.</t>
        </li>
        <li>
          <t>Canonical form: <xref target="RFC8785"/> is Informational (Independent stream),
not in the downref registry; this document could define the narrowed
form, which is short.</t>
        </li>
        <li>
          <t>Client data: refusing repeated members, or the limited verification
algorithm of <xref target="WebAuthn"/>; public suffixes; extension bytes; backup
flags.</t>
        </li>
        <li>
          <t><xref target="RFC8419"/> requires SHA-512 with Ed25519 when signed attributes are
present; <xref target="timestamps"/> also accepts SHA-256 and SHA-384, which
version 0.6.0 of the implementation refuses (<xref target="impl"/>).</t>
        </li>
        <li>
          <t>Timing: whether to bring in the date rules of
<xref section="21" sectionFormat="of" target="FORMAT" relative="#21-the-seal-and-the-outside-time-stamp"/> and
<xref section="22" sectionFormat="of" target="FORMAT" relative="#22-cancelling-a-slip"/>, and
whether 300 seconds is the right allowance.</t>
        </li>
        <li>
          <t>A COSE encoding (<xref target="other-encodings"/>), and detached payloads; a
member for a correlation identifier shared with other audit records
(<xref target="related"/>); SCITT registration; consistency proofs
(<xref section="2.1.4" sectionFormat="of" target="RFC9162"/>);
composite signatures; a registry for shared action names; whether to
answer "within its permission" when not everything was verified.</t>
        </li>
        <li>
          <t>Retries: no rule links the attempts of one operation. Each attempt
for which a receipt is written counts toward totals and counts, even
where the receipt names an error ("provared.error"), and receipts
that name the same "provared.request-id" are not taken as one
operation. <xref target="I-D.gilda-audit-agent-audit-record"/> counts a retried
operation once, by a key that the agent assigns to the operation and
carries in each attempt, and not by the request's digest.</t>
        </li>
        <li>
          <t>What a countersignature attests: "the action took place with" the
service (<xref target="receipt"/>) does not say whether the service accepted the
action, completed it, or only let it through, and states no
outcome; an executor (<xref target="terms"/>) may countersign before the outcome
is known. <xref target="I-D.gilda-audit-agent-audit-record"/> and
<xref target="I-D.sharif-agent-audit-trail"/> record a decision and what followed
it apart.</t>
        </li>
      </ol>
    </section>
    <section anchor="impl" removeInRFC="true">
      <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>Provared 0.6.0, by the author, covers this document and <xref target="FORMAT"/> in
two languages: a JavaScript library for Node.js 24.7 or later, with no
dependencies, with a command-line verifier and a verification page that
runs from one file; and a Python library for Python 3.11 or later,
which depends on the package "cryptography". The Python library has no
SLH-DSA yet, so it reports the third signature of a signed tree head as
not verified. Version 0.6.0 also implements parts added to the format
description after the version cited as <xref target="FORMAT"/> (a record of an
action the agent's side did not take, signed tree heads held by another
party, and witness statements beside a head); a core verifier reports
these as problems. It refuses some time-stamps that <xref target="timestamps"/>
accepts: a string written in parts; elements of a SET OF out of DER
order in the signed attributes, in the TSTInfo, or in a certificate; a
BIT STRING whose unused bits are not zero; a second signing-time
attribute; and an Ed25519 time-stamp whose digest algorithm is not
SHA-512 or carries parameters, as <xref target="RFC8419"/> requires. A TSA that
follows its standards produces none of these. Both libraries are tested
against one set of test vectors, each an input with the expected
answer, published in the repository for any implementation to use. Four
further Python packages put an agent framework's tool calls behind the
check before an action and write a receipt for each call:
"provared-langchain", listed among the middleware in LangChain's
documentation, and "pydantic-ai-provared" are published;
"provared-agno" and "provared-hermes" are in the repository only. The
repository also holds, unpublished, a gateway that acts as an executor
(<xref target="terms"/>) for web services: it holds their credentials, refuses calls
that the permission does not allow, writes the receipt for each call it
makes, naming the service in "with", and asks that service to
countersign. The author records the tool calls of their own coding
agent with the library, under a permission signed with a passkey; the
record is published at https://prova.red/records/. Maturity: marked as
a draft. Licensing: Apache License 2.0 (<xref target="FORMAT"/>: Creative Commons
Attribution 4.0). Location: https://github.com/provared/provared (tag
v0.6.0), the npm package "provared", and the Python package
"provared". Contact: the author. Dates: version 0.1.0 was published to
the npm registry on 5 October 2026, version 0.5.0 on 16 October 2026,
and version 0.6.0 on 25 October 2026, all in UTC; the repository's
change log heads the same versions 6, 17, and 25 October 2026. The
rules of <xref target="ed25519"/> were confirmed against both libraries, on Node.js
24.19.0 with OpenSSL 3.5.7 and on Python 3.14.7 with "cryptography"
50.0.2 and the OpenSSL 4.0.3 bundled with it. No independent implementation is
known.</t>
      <t>Provared is used by the author as a trademark; it is not registered.
Anyone may use the identifiers in this document to implement this
document.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Making or widening a permission requires a signature by the principal's
passkey; making or changing any other record requires its signer's
keys. Without the keys that signed a chain, a receipt cannot be removed
from the middle of the chain, moved within it, or changed without a
verifier reporting it (chain-broken, signature-invalid). Whoever holds
those keys can re-sign the chain from any receipt onward. Anyone can
remove the last receipts of a chain, unless a head held by someone other
than the recorder covers them, or the service has kept a
countersignature of one of them. A verifier that holds a copy of a
signed tree head, or of its size and root, obtained from someone other
than the recorder, detects any change, addition, or removal before that
head (root-mismatch). Trusting the recorder's keys protects against
everyone except the recorder, who can sign a shortened or reordered
history. A counted time-stamp shows that the entries before a sound head
existed by its time. Once a permission is covered by a head whose keys
the verifier trusts, two of the head's three signatures, which are
post-quantum, cover the permission's entry. The passkey signature on the
permission itself is classical. What the head adds is that the
permission, as it stands in the log, cannot be replaced afterward by
anyone without the recorder's keys, even if its passkey signature later
becomes forgeable; it does not make the principal's signature
post-quantum.</t>
      <t>What this document does not protect against:</t>
      <dl spacing="compact">
        <dt>No trusted keys:</dt>
        <dd>
          <t>With no trusted keys named, "intact" means only that the log is
consistent with itself. Anyone can make such a log.</t>
        </dd>
        <dt>Omission, one side's word:</dt>
        <dd>
          <t>An agent that writes no receipt leaves no trace in its own log, and
no check of that log shows the gap. Only another party's records can
show it: a countersignature kept by the service, or the records of an
executor (<xref target="terms"/>) that refuses any action the permission does not
allow, or any action without a verified approval, and records each
action it allows (the strongest class of
<xref target="I-D.schrock-ep-authorization-receipts"/> has such an executor, which
checks that document's own authorizations). An
executor's records show the gap only if the action cannot take place
without the executor, and if the executor keeps them where the agent's
side cannot change them. A permission whose "with" names no service
but the executor, and that requires a countersignature for every
action, makes each receipt in the log that lacks the executor's
countersignature a finding (countersignature-missing, or
party-not-allowed for a receipt that names another party). A receipt
that was never written is found only by comparing the executor's own
records with the log, which this document does not specify. A
cancellation the principal signed can
be left out of the log by whoever keeps it, after which every later
receipt reads as within the permission; only the principal's own copy
of the cancellation, handed to the verifier
(<xref section="22" sectionFormat="of" target="FORMAT" relative="#22-cancelling-a-slip"/>, out of
scope here), answers this. A one-sided receipt, an acknowledgement,
and the times stated in records, on which period limits depend, rest
on the signer's own statement.</t>
        </dd>
        <dt>Truncation and split views:</dt>
        <dd>
          <t>The last head, with everything after it, can be removed unnoticed
unless someone else holds that head. A recorder can keep two logs
that differ after some entry, with heads for each; no consistency
proof is defined. Handing heads to others lets them be compared.</t>
        </dd>
        <dt>One log only:</dt>
        <dd>
          <t>approval-reused and duplicate-id hold within one log, and so do
totals, counts, and periods. Receipts for one permission written into
two logs, or into a log that was started afresh, are not added
together: each log can be within its limits while the two together
are not. A recorder that keeps one log for each permission avoids
this; the format does not close it.</t>
        </dd>
        <dt>Service keys:</dt>
        <dd>
          <t>The keys of a service in "with" are stated by the principal. A
countersignature shows that a holder of those keys signed; it does
not show who that holder is. A principal who lists keys they control
can countersign their own agent's receipts. A compromise of a
service's keys lets anyone countersign in its name: a countersignature
is only as strong as the service's keys.</t>
        </dd>
        <dt>Agent keys held by the recorder:</dt>
        <dd>
          <t>Such a recorder can write and sign another history. A time-stamp then
shows only when; countersignatures still stand against it.</t>
        </dd>
        <dt>Passkeys:</dt>
        <dd>
          <t>A passkey shows that a device signed after verifying a user, not who
held it, nor that the principal read what was signed; a compromised
device or page can show one thing and have another signed. The
challenge is opaque to the principal. Any party that can choose the
challenge at an origin under the issuer's "rpId" (the site's operator,
any script at that origin, or any subdomain of the "rpId") can obtain
a signature on a record of its choosing by presenting it as a
sign-in: the client data of a sign-in and of a record are the same
shape. So a passkey trusted for records <bcp14>SHOULD</bcp14> be created for an
"rpId" used for nothing but signing records, the signing page <bcp14>SHOULD</bcp14>
show the record before asking, and a verifier <bcp14>MAY</bcp14> be told the "origin"
it expects as well as the thumbprint. The counter is not used, so a
cloned passkey goes unseen. An "http://localhost" origin is for tests
only.</t>
        </dd>
        <dt>Time-stamp keys:</dt>
        <dd>
          <t>A TSA is trusted by certificate digest, without revocation, and its
time is checked against the certificate's validity, not the
verifier's clock. A compromised TSA key can stamp any time; a
verifier that learns of it <bcp14>MUST</bcp14> stop trusting it. Up to four TSAs
lessen the dependence on one.</t>
        </dd>
        <dt>Renewal:</dt>
        <dd>
          <t>TSA signatures are classical, and certificates age; so the times by
which entries existed rest on classical signatures and have no
post-quantum protection. A later head covers earlier heads' entries,
time-stamps included, so stamping it by a newer TSA extends the
evidence, as evidence records <xref target="RFC4998"/> do.</t>
        </dd>
        <dt>Stripping:</dt>
        <dd>
          <t>Signatures are fixed in number, order, and label, and their keys are
given elsewhere (<xref target="hybrid"/>), so removing or replacing one is caught.</t>
        </dd>
        <dt>Ed25519 alone:</dt>
        <dd>
          <t>Without ML-DSA-87, what is compared rests on Ed25519 alone. Such a
verifier cannot tell a record made with the agent's Ed25519 key alone
from a genuine one. A verifier whose library applies other rules than
<xref target="ed25519"/> <bcp14>MUST</bcp14> add the missing checks.</t>
        </dd>
        <dt>Malleable signatures:</dt>
        <dd>
          <t>An ECDSA signature can be altered into another valid one. A record
digest covers only content, so no digest changes; the entry does,
and a later head shows it.</t>
        </dd>
      </dl>
      <t>A verifier <bcp14>MUST</bcp14> treat every byte of a record as untrusted, and answer a
failed check with a code, not a crash. It <bcp14>SHOULD</bcp14> replace control,
invisible, and direction-changing characters before showing text from a
record. Member names are plain strings: "__proto__" is like any other.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Following <xref target="RFC6973"/>: keys repeat in every record a party signs, so
records in different logs can be linked. Document digests are not
salted, so whoever can guess a document can confirm that a receipt
names it; a writer can add a random value to a document first. A TSA
learns the digests it stamps, when, and who asked. An entry cannot be
erased without breaking later heads, so records should hold no more
personal data than needed; names may be pseudonyms, and <xref target="FORMAT"/>
defines covered names and purpose. The members "origin" and "rpId" name
the site where the principal signed. A verifier makes no network
request.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. On adoption, a later version is
expected to request standards-tree media types <xref target="RFC6838"/> for each
kind of record. It would also request a JWS algorithm name for the
passkey signature, and one for the third signature of a signed tree
head (<xref target="open-issues"/>).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC2634">
          <front>
            <title>Enhanced Security Services for S/MIME</title>
            <author fullname="P. Hoffman" initials="P." role="editor" surname="Hoffman"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>This document describes four optional security service extensions for S/MIME. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2634"/>
          <seriesInfo name="DOI" value="10.17487/RFC2634"/>
        </reference>
        <reference anchor="RFC3161">
          <front>
            <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="P. Cain" initials="P." surname="Cain"/>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="R. Zuccherato" initials="R." surname="Zuccherato"/>
            <date month="August" year="2001"/>
            <abstract>
              <t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned. It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3161"/>
          <seriesInfo name="DOI" value="10.17487/RFC3161"/>
        </reference>
        <reference anchor="RFC3279">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="May" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI). Digital signatures are used to sign certificates and certificate revocation list (CRLs). Certificates include the public key of the named subject. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </reference>
        <reference anchor="RFC3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="C. Newman" initials="C." surname="Newman"/>
            <date month="July" year="2002"/>
            <abstract>
              <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3339"/>
          <seriesInfo name="DOI" value="10.17487/RFC3339"/>
        </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="RFC5035">
          <front>
            <title>Enhanced Security Services (ESS) Update: Adding CertID Algorithm Agility</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>In the original Enhanced Security Services for S/MIME document (RFC 2634), a structure for cryptographically linking the certificate to be used in validation with the signature was introduced; this structure was hardwired to use SHA-1. This document allows for the structure to have algorithm agility and defines a new attribute for this purpose. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5035"/>
          <seriesInfo name="DOI" value="10.17487/RFC5035"/>
        </reference>
        <reference anchor="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5816">
          <front>
            <title>ESSCertIDv2 Update for RFC 3161</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="N. Pope" initials="N." surname="Pope"/>
            <date month="April" year="2010"/>
            <abstract>
              <t>This document updates RFC 3161. It allows the use of ESSCertIDv2, as defined in RFC 5035, to specify the hash of a signer certificate when the hash is calculated with a function other than the Secure Hash Algorithm (SHA-1). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5816"/>
          <seriesInfo name="DOI" value="10.17487/RFC5816"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <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="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </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="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </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="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC8419">
          <front>
            <title>Use of Edwards-Curve Digital Signature Algorithm (EdDSA) Signatures in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies the conventions for using the Edwards-curve Digital Signature Algorithm (EdDSA) for curve25519 and curve448 in the Cryptographic Message Syntax (CMS). For each curve, EdDSA defines the PureEdDSA and HashEdDSA modes. However, the HashEdDSA mode is not used with the CMS. In addition, no context string is used with the CMS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8419"/>
          <seriesInfo name="DOI" value="10.17487/RFC8419"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="RFC9864">
          <front>
            <title>Fully-Specified Algorithms for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This specification refers to cryptographic algorithm identifiers that fully specify the cryptographic operations to be performed, including any curve, key derivation function (KDF), and hash functions, as being "fully specified". It refers to cryptographic algorithm identifiers that require additional information beyond the algorithm identifier to determine the cryptographic operations to be performed as being "polymorphic". This specification creates fully-specified algorithm identifiers for registered JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) polymorphic algorithm identifiers, enabling applications to use only fully-specified algorithm identifiers. It deprecates those polymorphic algorithm identifiers.</t>
              <t>This specification updates RFCs 7518, 8037, and 9053. It deprecates polymorphic algorithms defined by RFCs 8037 and 9053 and provides fully-specified replacements for them. It adds to the instructions to designated experts in RFCs 7518 and 9053.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9864"/>
          <seriesInfo name="DOI" value="10.17487/RFC9864"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="FIPS180-4">
          <front>
            <title>Secure Hash Standard (SHS)</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="180-4"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/>
        </reference>
        <reference anchor="FIPS204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </reference>
        <reference anchor="FIPS205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="205"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.205"/>
        </reference>
        <reference anchor="WebAuthn" target="https://www.w3.org/TR/2026/REC-webauthn-3-20260825/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials - Level 3</title>
            <author>
              <organization>World Wide Web Consortium</organization>
            </author>
            <date year="2026" month="August" day="25"/>
          </front>
          <seriesInfo name="W3C" value="REC-webauthn-3-20260825"/>
        </reference>
        <reference anchor="X690">
          <front>
            <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunication Union</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4998">
          <front>
            <title>Evidence Record Syntax (ERS)</title>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <author fullname="R. Brandner" initials="R." surname="Brandner"/>
            <author fullname="U. Pordesch" initials="U." surname="Pordesch"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>In many scenarios, users must be able prove the existence and integrity of data, including digitally signed data, in a common and reproducible way over a long and possibly undetermined period of time. This document specifies the syntax and processing of an Evidence Record, a structure designed to support long-term non-repudiation of existence of data. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4998"/>
          <seriesInfo name="DOI" value="10.17487/RFC4998"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="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="RFC8725">
          <front>
            <title>JSON Web Token Best Current Practices</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="D. Hardt" initials="D." surname="Hardt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="225"/>
          <seriesInfo name="RFC" value="8725"/>
          <seriesInfo name="DOI" value="10.17487/RFC8725"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9396">
          <front>
            <title>OAuth 2.0 Rich Authorization Requests</title>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="J. Richer" initials="J." surname="Richer"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document specifies a new parameter authorization_details that is used to carry fine-grained authorization data in OAuth messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9396"/>
          <seriesInfo name="DOI" value="10.17487/RFC9396"/>
        </reference>
        <reference anchor="RFC9596">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) "typ" (type) Header Parameter</title>
            <author fullname="M.B. Jones" initials="M.B." surname="Jones"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This specification adds the equivalent of the JSON Object Signing and Encryption (JOSE) "typ" (type) header parameter to CBOR Object Signing and Encryption (COSE). This enables the benefits of explicit typing (as defined in RFC 8725, "JSON Web Token Best Current Practices") to be brought to COSE objects. The syntax of the COSE type header parameter value is the same as the existing COSE content type header parameter.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9596"/>
          <seriesInfo name="DOI" value="10.17487/RFC9596"/>
        </reference>
        <reference anchor="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="RFC9901">
          <front>
            <title>Selective Disclosure for JSON Web Tokens</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="K. Yasuda" initials="K." surname="Yasuda"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <date month="November" year="2025"/>
            <abstract>
              <t>This specification defines a mechanism for the selective disclosure
of individual elements of a JSON data structure used as the payload
of a JSON Web Signature (JWS). The primary use case is the selective
disclosure of JSON Web Token (JWT) claims.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9901"/>
          <seriesInfo name="DOI" value="10.17487/RFC9901"/>
        </reference>
        <reference anchor="RFC9942">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Receipts</title>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>CBOR Object Signing and Encryption (COSE) Receipts prove properties of a Verifiable Data Structure (VDS) to a verifier. VDSs and associated Proof Types enable security properties, such as minimal disclosure, transparency, and non-equivocation. Transparency helps maintain trust over time and has been applied to certificates, end-to-end encrypted messaging systems, and supply chain security. This specification enables concise transparency-oriented systems by building on Concise Binary Object Representation (CBOR) and COSE. The extensibility of the approach is demonstrated by providing CBOR encodings for Merkle inclusion and consistency proofs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9942"/>
          <seriesInfo name="DOI" value="10.17487/RFC9942"/>
        </reference>
        <reference anchor="RFC9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="A. Delignat-Lavaud" initials="A." surname="Delignat-Lavaud"/>
            <author fullname="C. Fournet" initials="C." surname="Fournet"/>
            <author fullname="Y. Deshpande" initials="Y." surname="Deshpande"/>
            <author fullname="S. Lasker" initials="S." surname="Lasker"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>Traceability in supply chains is a growing security concern. While Verifiable Data Structures (VDSs) have addressed specific issues, such as equivocation over digital certificates, they lack a universal architecture for all supply chains. This document defines such an architecture for single-issuer signed statement transparency. It ensures extensibility and interoperability between different transparency services as well as compliance with various auditing procedures and regulatory requirements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9943"/>
          <seriesInfo name="DOI" value="10.17487/RFC9943"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-transaction-tokens">
          <front>
            <title>Transaction Tokens</title>
            <author fullname="Atul Tulshibagwale" initials="A." surname="Tulshibagwale">
              <organization>CrowdStrike</organization>
            </author>
            <author fullname="George Fletcher" initials="G." surname="Fletcher">
              <organization>Practical Identity LLC</organization>
            </author>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <date day="30" month="July" year="2026"/>
            <abstract>
              <t>   Transaction Tokens (Txn-Tokens) are designed to maintain and
   propagate user identity, workload identity and authorization context
   throughout the Call Chain within a trusted domain during the
   processing of external requests (e.g. such as API calls) or requests
   initiated internally within the Trust Domain.  Txn-Tokens ensure that
   this context is preserved throughout the Call Chain thereby enhancing
   security and consistency in complex, multi-service architectures.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-transaction-tokens-11"/>
        </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.ietf-wimse-aims">
          <front>
            <title>AI Identity Management System</title>
            <author fullname="Pieter Kasselman" initials="P." surname="Kasselman">
              <organization>Defakto Security</organization>
            </author>
            <author fullname="Jeff Lombardo" initials="J." surname="Lombardo">
              <organization>AWS</organization>
            </author>
            <author fullname="Yaroslav Rosomakho" initials="Y." surname="Rosomakho">
              <organization>Zscaler</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Nick Steele" initials="N." surname="Steele">
              <organization>OpenAI</organization>
            </author>
            <author fullname="Aaron Parecki" initials="A." surname="Parecki">
              <organization>Okta</organization>
            </author>
            <date day="15" month="September" year="2026"/>
            <abstract>
              <t>   This document proposes best practices for authentication and
   authorization of AI agent interactions.  It leverages existing
   standards such as the Workload Identity in Multi-System Environments
   (WIMSE) architecture and OAuth 2.0 family of specifications.  Rather
   than defining new protocols, this document describes how existing and
   widely deployed standards can be applied or extended to establish
   agent authentication and authorization.  By doing so, it aims to
   provide a framework within which to use existing standards, identify
   gaps and guide future standardization efforts for agent
   authentication and authorization.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-sd-jwt-vc-22"/>
        </reference>
        <reference anchor="I-D.ietf-cose-sphincs-plus">
          <front>
            <title>SLH-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="28" month="July" year="2026"/>
            <abstract>
              <t>   Digital signatures are used within JSON Object Signing and Encryption
   (JOSE) and CBOR Object Signing and Encryption (COSE) to protect the
   integrity and authenticity of messages, such as JSON Web Signatures
   and signed COSE structures.  This document specifies JOSE and COSE
   serializations for the Stateless Hash-Based Digital Signature
   Standard (SLH-DSA), a Post-Quantum Cryptography (PQC) digital
   signature scheme defined in US NIST FIPS 205.  The conventions for
   the associated algorithm identifiers, signatures, public keys, and
   private keys are also specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-sphincs-plus-10"/>
        </reference>
        <reference anchor="I-D.ietf-jose-pq-composite-sigs">
          <front>
            <title>PQ/T Hybrid Composite Signatures for JOSE and COSE</title>
            <author fullname="Lucas Prabel" initials="L." surname="Prabel">
              <organization>Huawei</organization>
            </author>
            <author fullname="Sun Shuzhou" initials="S." surname="Shuzhou">
              <organization>Huawei</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="20" month="October" year="2026"/>
            <abstract>
              <t>   This document describes JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for Post-
   Quantum Traditional (PQ/T) hybrid composite signatures.  The
   composite algorithms described combine the Module-Lattice-Based
   Digital Signature Algorithm (ML-DSA) as the post-quantum component
   and either the Elliptic Curve Digital Signature Algorithm (ECDSA) or
   the Edwards-Curve Digital Signature Algorithm (EdDSA) as the
   traditional component.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jose-pq-composite-sigs-06"/>
        </reference>
        <reference anchor="I-D.birkholz-verifiable-agent-conversations">
          <front>
            <title>Verifiable Agent Conversation Records</title>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
         </author>
            <author fullname="Tobias Heldt" initials="T." surname="Heldt">
         </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
         </author>
            <date day="31" month="August" year="2026"/>
            <abstract>
              <t>   Autonomous agents based on large language models increasingly perform
   consequential tasks on behalf of humans and other agents.
   Demonstrating that recorded agent behavior truthfully represents
   actual behavior is essential for accountability, compliance, and
   human oversight.  This document defines a data format for verifiable
   agent conversation records using CDDL, with representations in both
   JSON and CBOR.  The format captures session metadata, message
   exchanges, tool invocations, reasoning traces, and system events in a
   structured, extensible CDDL definition for verifiable agent
   conversation records.  COSE is used as the signing method to allow
   for native interoperability in SCITT Transparency Services and the
   CDDL definition allows for seemless integration in Evidence as
   specified in RFC 9334.  The specification supports cross-vendor
   interoperability by defining a common representation that
   accommodates translation from multiple existing agent implementations
   with distinct data structure layouts that are typically represented
   in JSON.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-birkholz-verifiable-agent-conversations-01"/>
        </reference>
        <reference anchor="I-D.nelson-agent-delegation-receipts">
          <front>
            <title>Agent Delegation Receipts</title>
            <author fullname="Ryan Nelson" initials="R." surname="Nelson">
              <organization>Authproof</organization>
            </author>
            <date day="21" month="October" year="2026"/>
            <abstract>
              <t>   This document defines the Agent Delegation Receipt: a signed record
   of what a human principal authorized an AI agent to do, for how long,
   and under what instructions.  The receipt carries a scope, hard
   boundaries, a validity window, and a hash of the operator's stated
   instructions, all signed by the authorizing key.  Version -11
   replaces the draft's earlier custom signature format with two
   standard profiles: a JWS profile (RFC 7515) over JCS-canonicalized
   JSON (RFC 8785) as the primary wire format, and a COSE_Sign1 profile
   (RFC 9052) for constrained environments.  It also specifies scope
   attenuation rules for multi-agent delegation chains, a revocation
   registry model with cascade semantics, and the limitations of what
   receipts can and cannot prove.  Version -12 resolves the unknown-
   fields question raised on the IETF oauth mailing list: authorization
   fields are closed (verifiers reject unknown top-level body fields
   rather than silently ignoring them), the "metadata" object is the
   defined extension point, and one-time-use receipts fail closed
   without a durable consumption store.  Version -13 incorporates
   independent-implementation feedback: it pins the
   orchestratorSignature verification key to the sub-receipt signer's
   key, states the receipt-issuance computation order explicitly, and
   guides issuers on default boundaries versus explicit allowances.
   Version -14 adds a pointer to content profiles for verification of
   what the agent produced, following implementer feedback.  Version -15
   adopts the grant/execution vocabulary of [CHEN-AGENT-USE-CASES]: the
   receipt as Execution Layer Evidence for a Grant Layer Authority.  It
   adds delegatee holder binding for sub-receipts -- a parent names the
   delegatee's public key, closing a bearer-copy issuance gap found in
   review -- deprecates orchestratorSignature as redundant, sketches an
   OAuth authorization_details binding so a token can reference its
   receipt, and states normative custody requirements for the
   authorizing key.  The delegateeKey field is a wire-format addition;
   -14-era verifiers will reject receipts carrying it, which is the
   intended fail-closed version behavior.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-nelson-agent-delegation-receipts-15"/>
        </reference>
        <reference anchor="I-D.sahu-agent-action-receipts">
          <front>
            <title>Signed, Hash-Chained Action Receipts for AI Agents</title>
            <author fullname="Nancy sahu" initials="N." surname="sahu">
              <organization>kriya native</organization>
            </author>
            <date day="16" month="August" year="2026"/>
            <abstract>
              <t>   This document specifies a format for action receipts: compact,
   individually signed JSON records that state that a specific AI agent
   attempted a specific action at a specific time, under a specific
   policy decision, and what the outcome was.  Receipts are linked into
   an append-only hash chain so that deletion, insertion, reordering, or
   modification of any previously recorded receipt is detectable by a
   verifier that holds only the records and the signer's public key.

   The format is deliberately small and self-contained.  Verification
   requires no network access, no service operated by the producer of
   the receipts, and no state beyond the records themselves and a trust
   anchor obtained out of band.  This document specifies the record
   fields, the canonical byte sequence that is signed, the chain linkage
   rule, the verification procedure, and test vectors.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sahu-agent-action-receipts-00"/>
        </reference>
        <reference anchor="I-D.noa-scitt-ai-agent-receipt">
          <front>
            <title>A SCITT Profile for AI-Agent Action Receipts</title>
            <author fullname="Tora Toraman" initials="T." surname="Toraman">
              <organization>NordenSoft</organization>
            </author>
            <date day="14" month="August" year="2026"/>
            <abstract>
              <t>   This document profiles the IETF SCITT (Supply Chain Integrity,
   Transparency, and Trust) architecture for AI-agent action receipts:
   tamper-evident, signed, offline-verifiable records of what an
   autonomous agent was recorded as doing at the governed boundary,
   under which recorded principal class, with what recorded verdict, and
   -- where the issuer records one -- under which policy identity.  Each
   receipt is a signed record over a canonical JSON payload, hash-
   chained so that each record commits to its predecessor, and presented
   either bare -- the payload with its own native signature -- or
   enveloped in a COSE_Sign1.  This revision specifies how such a
   receipt is carried as a SCITT Signed Statement, with the protected
   claims a Transparency Service requires, so that a receipt can be
   registered.  Registration obtains a Transparency Service's signed
   proof that the statement was registered in its log -- a property a
   self-signed chain cannot provide alone.  It does not, by itself, give
   an offline holder non-equivocation: that requires consistency proofs
   and monitoring of the log, which this profile does not specify.  The
   profile makes a deliberately narrow, checkable claim: this is an
   issuer-authenticated, signature-verifiable, tamper-evident record of
   the action, the recorded principal class, the recorded verdict, and
   any policy identity the receipt carries.  It explicitly does not
   claim that the agent was correct, safe, or wise, that the recorded
   inputs were true or complete, that a named approver authorized this
   exact action before it ran, that a downstream controller succeeded,
   or that any physical effect occurred.  This revision separates those
   last three as distinct claims with independent failure behaviour,
   states the boundary of a shared action digest, and keeps a
   deterministic offline policy-replay capability out of scope.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-noa-scitt-ai-agent-receipt-01"/>
        </reference>
        <reference anchor="I-D.emirdag-scitt-ai-agent-execution">
          <front>
            <title>AI Agent Execution Profile of SCITT</title>
            <author fullname="Pinar Emirdag" initials="P." surname="Emirdag">
              <organization>Veridic Inc.</organization>
            </author>
            <author fullname="Daniel Feichtinger" initials="D." surname="Feichtinger">
              <organization>Veridic Inc.</organization>
            </author>
            <date day="12" month="October" year="2026"/>
            <abstract>
              <t>   This document defines a SCITT (Supply Chain Integrity, Transparency,
   and Trust) profile for creating independently verifiable, tamper-
   evident records of autonomous AI agent actions.  The profile defines
   the AgentInteractionRecord (AIR) as the COSE_Sign1 signed statement
   payload for material agent actions; maps SCITT roles to the agent
   execution context, with the Agent Operator as Issuer and an
   independent Evidence Custodian as Transparency Service; specifies
   Registration Policy requirements including hash chain integrity,
   temporal ordering, and sequence completeness; defines a redaction
   receipt mechanism for privacy-preserving evidence custody; and
   provides compliance mappings to EU AI Act Articles 12 and 19, DORA,
   NIST AI RMF, MAS AI Risk Management Guidelines, PCI DSS, and MiFID
   II.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-emirdag-scitt-ai-agent-execution-01"/>
        </reference>
        <reference anchor="I-D.mih-scitt-agent-action-capsule">
          <front>
            <title>An Agent Action Capsule Profile for SCITT</title>
            <author fullname="Steven Mih" initials="S." surname="Mih">
              <organization>Action State Group, Inc.</organization>
            </author>
            <date day="26" month="September" year="2026"/>
            <abstract>
              <t>   This document defines a SCITT statement profile for recording what an
   AI agent did: the Agent Action Capsule.  A Capsule is a digest-
   committed record of one agent action carrying its verdict-level
   disposition (executed, blocked, denied, errored, timed out), the
   deterministic constraints that were evaluated, the effect that was
   committed together with a confirmed-effect binding that distinguishes
   a dispatched attempt from an observed result, and an honest human-in-
   the-loop flag.  Capsules are identified independently of signing and
   MAY be authenticated by one or more COSE_Sign1 Producer Envelopes.
   Its Capsule ID can separately be made transparent by registration in
   a SCITT Transparency Service [I-D.ietf-scitt-scrapi].  A Capsule is
   recorded on every verdict, including refusals: a blocked or denied
   Capsule is the auditor-grade evidence that a gate worked.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mih-scitt-agent-action-capsule-05"/>
        </reference>
        <reference anchor="I-D.niyikiza-oauth-attenuating-agent-tokens">
          <front>
            <title>Attenuating Authorization Tokens for Agentic Delegation Chains</title>
            <author fullname="Niki Aimable" initials="N." surname="Aimable">
              <organization>Tenuo</organization>
            </author>
            <date day="26" month="October" year="2026"/>
            <abstract>
              <t>   This document defines Attenuating Authorization Tokens (AATs), a
   signed credential format for task-scoped delegation in AI agent
   systems.  An AAT encodes the tools an agent may invoke and the
   argument constraints that apply to those invocations.  A token holder
   authorized to delegate can derive a token offline with equal or
   narrower authority, subject to the parent token's depth and lifetime
   limits.  The resulting delegation chain is verifiable offline by any
   enforcement point that has the root issuer's trust anchor key.

   This specification profiles the OAuth Rich Authorization Requests
   format (RFC 9396) for tool-level capability claims, adds delegation-
   chain claims, and defines a core constraint vocabulary for argument
   restrictions.  The chain verification algorithm authenticates each
   delegation step and enforces monotonic attenuation without network
   contact with the root issuer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-niyikiza-oauth-attenuating-agent-tokens-02"/>
        </reference>
        <reference anchor="I-D.dembowski-agentledger-proof-of-behavior">
          <front>
            <title>Proof-of-Behavior Protocol for Autonomous AI Agents</title>
            <author fullname="Jakub Dembowski" initials="J." surname="Dembowski">
         </author>
            <date day="20" month="April" year="2026"/>
            <abstract>
              <t>   Autonomous AI agents execute actions — file writes, API calls, shell
   commands — on behalf of human principals.  No standard mechanism
   exists for a third party to verify that an agent acted within its
   declared behavioral rules, that policy enforcement occurred before
   execution (not after), or that the action log has not been tampered
   with after the fact.

   This document defines the Proof-of-Behavior (PoB) protocol: a
   minimal, language-agnostic standard for tamper-evident audit trails
   and pre-execution policy enforcement in AI agent systems.  The
   protocol specifies a signed receipt format, a hash-chain linking
   scheme, a policy gate contract, and a cross-agent reference
   mechanism.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dembowski-agentledger-proof-of-behavior-00"/>
        </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="12" month="September" 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,
   shared authorization instance, per-signoff 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.

   This revision defines the closed EP-AUTHORIZATION-BUNDLE-v1 pre-
   execution profile and its verification algorithm.  The bundle carries
   the Action Object, signed Authorization Contexts, signoffs, key
   proofs, and presentation evidence; it deliberately carries no
   terminal consumption or execution claim.  An optional, profile-
   identified authorization binding can commit the human evidence to an
   independently verified native authorization artifact without
   replacing that artifact or making this receipt format depend on its
   transport or trust model.

   A receipt is evidence, not authorization.  This document does not
   treat a local user interaction as an authorization decision.  It
   defines one evidence artifact that an authorization architecture can
   use in a human-confirmation flow: the signed Authorization Context is
   action-bound confirmation evidence an authorization server MAY
   validate and bind to the grant it issues.  The resulting Trust
   Receipt records terminal consumption and remains evidence; neither
   object makes the authorization decision.  That decision remains with
   the authorization server.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-authorization-receipts-13"/>
        </reference>
        <reference anchor="I-D.schrock-ep-bounded-capability-receipts">
          <front>
            <title>Bounded Capability Receipts and Durable Spend Control for Agent Actions</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="9" month="September" year="2026"/>
            <abstract>
              <t>   Agents sometimes need bounded authority to perform more than one
   consequential action without obtaining a new human approval for every
   operation.  A signed token alone cannot enforce a shared budget
   across replicas, survive retries safely, or distinguish an operation
   that never crossed an effect boundary from one whose outcome is
   unknown.

   This document defines a bounded capability receipt and a durable
   reserve-admit-reconcile protocol.  The receipt binds an issuance
   authorization, a closed action scope, a budget with explicit units, a
   holder proof, an expiry, and any parent capability.  The state
   protocol atomically refuses overspend and operation-key replay,
   fences concurrent owners, and charges an indeterminate operation when
   an external effect may have occurred.  Delegation transfers rather
   than copies authority: all direct child allocations are funded by
   committed parent operations before child registration, and their
   aggregate cannot exceed the parent balance within one authoritative
   atomic state domain.  It also defines narrowing-only delegation,
   explicit revocation inheritance for delegated authority, an optional
   admission-control epoch that can freeze new consequence admission,
   and evidence interfaces.  It does not make a bearer token into human
   approval, does not provide cross-domain or offline global double-
   spend prevention, and does not claim that an authorized action was
   safe, lawful, or successfully executed.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-ep-bounded-capability-receipts-06"/>
        </reference>
        <reference anchor="I-D.kuehlewind-audit-architecture" target="https://datatracker.ietf.org/doc/html/draft-kuehlewind-audit-architecture-01">
          <front>
            <title>An Architecture for Auditing Agent Delegation and Interactions</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind">
              <organization/>
            </author>
            <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
              <organization/>
            </author>
            <date year="2026" month="September" day="07"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kuehlewind-audit-architecture-01"/>
        </reference>
        <reference anchor="I-D.gilda-audit-agent-audit-record" target="https://datatracker.ietf.org/doc/html/draft-gilda-audit-agent-audit-record-03">
          <front>
            <title>An Audit Record Format for AI Agent Authorization Decisions</title>
            <author initials="S." surname="Gilda" fullname="Sankalp Gilda">
              <organization/>
            </author>
            <date year="2026" month="October" day="29"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-gilda-audit-agent-audit-record-03"/>
        </reference>
        <reference anchor="I-D.sharif-agent-audit-trail" target="https://datatracker.ietf.org/doc/html/draft-sharif-agent-audit-trail-09">
          <front>
            <title>Agent Audit Trail: A Standard Logging Format for Autonomous AI Systems</title>
            <author initials="R." surname="Sharif" fullname="Raza Sharif">
              <organization/>
            </author>
            <date year="2026" month="October" day="26"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sharif-agent-audit-trail-09"/>
        </reference>
        <reference anchor="I-D.sergeev-audit-task-requirements" target="https://datatracker.ietf.org/doc/html/draft-sergeev-audit-task-requirements-00">
          <front>
            <title>Task-Relative Evidence Requirements for Agent Auditing</title>
            <author initials="M." surname="Sergeev" fullname="Mikhail Sergeev">
              <organization/>
            </author>
            <date year="2026" month="October" day="15"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sergeev-audit-task-requirements-00"/>
        </reference>
        <reference anchor="AUDIT-BOFREQ" target="https://datatracker.ietf.org/doc/bofreq-kuhlewind-audit-agent-use-of-delegation-and-interaction-traceability/">
          <front>
            <title>AUDIT - Agent Use of Delegation and Interaction Traceability</title>
            <author initials="M." surname="Kuehlewind" fullname="Mirja Kuehlewind" role="editor">
              <organization/>
            </author>
            <date year="2026" month="October" day="08"/>
          </front>
          <seriesInfo name="IETF BOF request" value="bofreq-kuhlewind-audit-agent-use-of-delegation-and-interaction-traceability-00"/>
        </reference>
        <reference anchor="FORMAT" target="https://github.com/provared/provared/blob/v0.5.0/spec/provared-format.md">
          <front>
            <title>The Provared format - draft version 0</title>
            <author initials="P." surname="Izmaylov" fullname="Pavel Izmaylov">
              <organization/>
            </author>
            <date year="2026" month="October" day="16"/>
          </front>
        </reference>
        <reference anchor="VC-DATA-MODEL" target="https://www.w3.org/TR/vc-data-model-2.0/">
          <front>
            <title>Verifiable Credentials Data Model v2.0</title>
            <author>
              <organization>World Wide Web Consortium</organization>
            </author>
            <date year="2025" month="May" day="15"/>
          </front>
        </reference>
        <reference anchor="AP2" target="https://github.com/google-agentic-commerce/AP2">
          <front>
            <title>Agent Payments Protocol (AP2)</title>
            <author>
              <organization>AP2 project</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="MACAROONS">
          <front>
            <title>Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud</title>
            <author initials="A." surname="Birgisson" fullname="Arnar Birgisson">
              <organization/>
            </author>
            <author initials="J. G." surname="Politz" fullname="Joe Gibbs Politz">
              <organization/>
            </author>
            <author initials="U." surname="Erlingsson" fullname="Ulfar Erlingsson">
              <organization/>
            </author>
            <author initials="A." surname="Taly" fullname="Ankur Taly">
              <organization/>
            </author>
            <author initials="M." surname="Vrable" fullname="Michael Vrable">
              <organization/>
            </author>
            <author initials="M." surname="Lentczner" fullname="Mark Lentczner">
              <organization/>
            </author>
            <date year="2014" month="February"/>
          </front>
          <seriesInfo name="Network and Distributed System Security Symposium (NDSS)" value="2014"/>
          <seriesInfo name="DOI" value="10.14722/ndss.2014.23212"/>
        </reference>
        <reference anchor="BISCUIT" target="https://doc.biscuitsec.org/reference/specifications">
          <front>
            <title>Biscuit specification</title>
            <author>
              <organization>Eclipse Biscuit project</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="UCAN" target="https://github.com/ucan-wg/spec">
          <front>
            <title>User Controlled Authorization Network (UCAN) Specification, Version 1.0.0</title>
            <author>
              <organization>UCAN Working Group</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
      </references>
    </references>
    

<section anchor="codes">
      <name>Codes</name>
      <t>The JSON encoding (<xref target="json"/>): not-json (not JSON; empty; byte order mark); bad-envelope (envelope members); bad-base64url (not strict base64url); unknown-type (unknown label); bad-signatures-layout (signatures in wrong number or order); payload-not-canonical (content not canonical); line-not-canonical (line not canonical).</t>
      <t>Any record (<xref target="common"/>): too-large (over a size limit, <xref target="log-format"/> and <xref target="json"/>); payload-type-mismatch (other kind of record); bad-field (member missing, unknown, or malformed); bad-key (key not allowed, or a weak Ed25519 key); signature-invalid (signature fails, or has the wrong length); check-failed (anything unexpected).</t>
      <t>Passkeys (<xref target="passkey"/>): passkey-bad-data (malformed values); passkey-wrong-type (wrong "type"); passkey-challenge-mismatch (wrong challenge); passkey-origin-mismatch (other origin); passkey-rpid-mismatch (other "rpId"); passkey-user-not-present (flag clear); passkey-user-not-verified (flag clear); issuer-not-expected (key not trusted).</t>
      <t>Logs and receipts (<xref target="relied"/>, <xref target="log-format"/>, <xref target="receipt"/>): unknown-entry (unknown kind of entry); duplicate-id ("id" or delegation twice); duplicate-slip (permission twice); slip-missing (permission not earlier); slip-unusable (permission not sound); root-mismatch (unexpected root or size); chain-broken (receipt missing, moved, or changed); time-went-backwards (dated before its predecessor); terms-not-found (terms not in the log); countersignature-wrong-stub (for another receipt); countersignature-not-possible (service has no keys); countersignature-invalid (fails); approval-mismatch (for something else); approval-not-found (not in the entry); approval-reused (used twice); approval-invalid (fails); approval-dated-after-stub (dated after its receipt).</t>
      <t>Delegations, cancellations, and heads (<xref target="delegation"/>, <xref target="cancellation"/>, <xref target="log"/>): pass-missing (delegation not earlier or not sound); pass-mismatch (other permission); pass-too-deep (deeper than 10); cancellation-invalid (fails); cancellation-not-found (unusable); seal-mismatch (size or root wrong); seal-chain-broken (wrong "previous"); sealer-not-expected (recorder not trusted); dated-after-stamp (dated after a time-stamp); stamp-bad-data (malformed); stamp-wrong-data (for something else); stamp-invalid (signature or field fails).</t>
      <t>Findings (<xref target="findings"/>, <xref target="delegation"/>): action-not-allowed,
prohibited, party-not-allowed, outside-valid-time, amount-missing,
over-limit, over-each-limit, over-count-limit, over-period-limit,
countersignature-missing, approval-missing, after-cancellation,
pass-not-allowed, and pass-wider. The codes terms-unusable,
terms-mismatch, outside-terms, cover-invalid, vouching-missing,
acknowledgement-mismatch, proof-invalid, headers-invalid, and
record-not-sound belong only to parts specified in <xref target="FORMAT"/>.</t>
    </section>
    <section anchor="shared-list">
      <name>Shared List</name>
      <t>Names that begin "provared." are reserved for this list; <xref target="FORMAT"/>
also gives each action's meaning. Shared action names are written below
without their "provared." prefix: "data.read" stands for
"provared.data.read". Kinds and rules of conduct are written as shown,
with no prefix; a "never" list may name any of them.</t>
      <dl spacing="compact">
        <dt>"reads":</dt>
        <dd>
          <t>Looks at data without changing it. Actions: "data.read", "data.search", "message.read", "calendar.read", "code.read", "web.read".</t>
        </dd>
        <dt>"changes":</dt>
        <dd>
          <t>Creates or changes data in a way that can be put back. Actions: "data.create", "data.change", "message.draft", "calendar.change", "access.remove", "code.change", "system.configure".</t>
        </dd>
        <dt>"destroys":</dt>
        <dd>
          <t>Removes data or a resource in a way that may not be put back. Actions: "data.delete".</t>
        </dd>
        <dt>"sends":</dt>
        <dd>
          <t>Sends a message or data to a person, to the public, or to another system. Actions: "data.export", "message.send", "post.publish", "agent.instruct".</t>
        </dd>
        <dt>"commits":</dt>
        <dd>
          <t>Binds the principal to something: an order, a booking, an agreement, an account. Actions: "booking.make", "booking.cancel", "order.place", "order.cancel", "terms.accept", "form.submit", "account.create".</t>
        </dd>
        <dt>"grants":</dt>
        <dd>
          <t>Gives someone or something access or permission. Actions: "access.grant", "key.create".</t>
        </dd>
        <dt>"runs":</dt>
        <dd>
          <t>Runs a program or a command. Actions: "code.run", "code.release".</t>
        </dd>
        <dt>"enters":</dt>
        <dd>
          <t>Signs in to a system or an account. Actions: "account.sign-in".</t>
        </dd>
        <dt>"impersonate":</dt>
        <dd>
          <t>Never claim to be a human being, or to be anyone other than the agent of the principal who signed the permission.</t>
        </dd>
        <dt>"bypass":</dt>
        <dd>
          <t>Never go around an access control, a block, or a refusal.</t>
        </dd>
        <dt>"escalate":</dt>
        <dd>
          <t>Never obtain or use access that the agent was not given.</t>
        </dd>
        <dt>"conceal":</dt>
        <dd>
          <t>Never hide, alter, or leave out the agent's own records.</t>
        </dd>
        <dt>"deceive":</dt>
        <dd>
          <t>Never state what the agent has reason to believe is false, and never make up a record or a result.</t>
        </dd>
        <dt>"harass":</dt>
        <dd>
          <t>Never threaten, pressure, or attack a person.</t>
        </dd>
        <dt>"disclose":</dt>
        <dd>
          <t>Never pass information that is not public to anyone the permission does not name.</t>
        </dd>
        <dt>"continue-after-stop":</dt>
        <dd>
          <t>Never carry on after being told to stop.</t>
        </dd>
      </dl>
    </section>
    <section anchor="changes-01" removeInRFC="true">
      <name>Changes Since -01</name>
      <ul spacing="normal">
        <li>
          <t><xref target="terms"/> defines an executor: software other than the agent that
refuses an action its check of the permission does not allow, named in
a permission as a service is. <xref target="receipt"/> says how a receipt names an
executor that countersigns, and <xref target="security"/> states when an executor's
records show a receipt that was never written, and that comparing them
with the log is not specified.</t>
        </li>
        <li>
          <t><xref target="intro"/> and <xref target="related"/> describe newer versions of two drafts: the
cumulative limit of <xref target="I-D.gilda-audit-agent-audit-record"/>, and the
signature methods, pre-execution records, and independent recording of
<xref target="I-D.sharif-agent-audit-trail"/>.</t>
        </li>
        <li>
          <t><xref target="open-issues"/> adds retries and what a countersignature attests.</t>
        </li>
        <li>
          <t><xref target="impl"/> describes version 0.6.0, which refuses some time-stamps that
<xref target="timestamps"/> accepts.</t>
        </li>
        <li>
          <t>No record, and no rule that a verifier applies, changes.</t>
        </li>
      </ul>
    </section>
    <section anchor="changes" removeInRFC="true">
      <name>Changes Since -00</name>
      <ul spacing="normal">
        <li>
          <t>The content model (<xref target="common"/> through <xref target="verification"/>) is
specified apart from its encoding. The JWS form is now <xref target="json"/>, with
its rules unchanged; <xref target="other-encodings"/> states what another encoding,
such as one with COSE, has to define. Log "lines" are now "entries"
outside <xref target="json"/>, and the codes in <xref target="codes"/> are grouped by where they
arise.</t>
        </li>
        <li>
          <t>No record's bytes change, but a verifier of -01 refuses some records
that -00 accepted, to match versions 0.2.0 to 0.5.0 of the
implementation. From version 0.2.0: an Ed25519 key that encodes a y of
p or more, or the y of a point of small order, is refused as a key
wherever it stands, used or not (bad-key; in a TSA's certificate,
stamp-invalid), where -00 refused only a signature verified under such
a key; an "origin" outside the exact rule of <xref target="permission"/>, which
needs no parser of web addresses; a TSA's RSA public exponent that is
not odd, from 3 to 2^32 - 1 (stamp-invalid); and a TSA certificate's
public key not written strictly (stamp-bad-data). From version 0.4.0:
an Ed25519, ML-DSA-87, or SLH-DSA-SHA2-256s signature whose length is
not its method's is a problem on every verifier, whether or not it
implements the method (signature-invalid; <xref target="hybrid"/>), where -00 left
it unverified on a verifier without the method. From version 0.5.0: a
document name that begins "provared." in a receipt's or an approval's
"details" <bcp14>MUST</bcp14> be one of the seven reserved names, and only the three
identifiers among them may be named more than once in one record
(bad-field; <xref target="receipt"/>), where -00 read every name as a label.</t>
        </li>
        <li>
          <t><xref target="intro"/> names more of what other drafts already have. <xref target="related"/>
compares the two EMILIA Protocol drafts and maps the records onto the
AUDIT architecture's record types. <xref target="security"/> says which records can
show that a receipt was never written.</t>
        </li>
        <li>
          <t><xref target="impl"/> describes version 0.5.0 and a second implementation, in
Python, by the same author.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="ack">
      <name>Acknowledgements</name>
      <t>The author thanks Iman Schrock, whose comments on the audit@ietf.org
list on 8 October 2026 led to the separation of the content model from
its encoding and to the comparison in <xref target="related"/>, and Nicholas
Templeman and Lars Kersten Kroehl, for the discussion on that list,
from 11 to 23 October 2026, of failure cases and of the number rule.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
eFVfy2+hqD2CSkxciYgiXDURKGSRoyouElgaFvmb9+a/8NvQAr59+/716WXv
JNyW+TtYMkSByVV0hZ0G+JBDjMJG7WzancfsJvlm00kf6Y82QkL0yNvV1VhE
vm8WNqn442pWX33zcWd8ON75phXlItwZ6bzHd9j/P52NXpxeno5ev33x8lV3
rX8KomJHX3sh4M9Fd5eFfNwbb1zsb9HaDkc7h36ov6y1fZyMsPWjO3x7JJ/G
Jp2+29vEFN4VD0qWZLOW9aSe5Vvy5OMqj9zMBT5/E5bfA/8vAf6mrm9cmK4m
Iyo5zaT8RkaUV1+fnp2+f/v2zUXP9FFMCpExsfFndf1BTlV+L0MCSMvyp+VK
1K4zQZXC6KqIBjJ6U8yqn2H87IgNlWiXgpRns3q10X7gZOFUNLoGwthN1bam
vgXsOx2v3fH3/liXIldcXQkoazkZPfnujyJ0jLt3/MUfZtfywZfNTFjB+hd/
GK/fClOdf1g1+WUxe1ibZXIx0rvJbSHI+KcGqLpG7TqXwztF8yF/JTCd/Dwv
m7V3uneCRezgcSV38KZc3tcyqKveTXW1gqVahYxgBJa/qZ6t7vKtNy8uLrYH
tL/srtmYdg+e7O19M5+27Ri3x3v7e7v4+PPzi7MfzntU6XnVTlYiBLWpDeFR
XH85mVULYTf+1m/Ae6Gyokrytbac8GA25XUJO3T5TefrMCL/cHb6pjtR4XIN
kVwYzmwNlR2GW3hxu2sRGeZ/MvK6O975AtXBqyA9HyD6/aGpV4vfeJ5Xk2I+
ur/harJsNBrlxVUL1rDMssvbqs0FBivQFoe2nF0VX+0M398KQuaFnErRa/NF
0ciuy5i5sEfBxKq9HWYiSAkcgCp4o14t87mjD61lQxlEGIu8VASXBwnMMG9X
GBwWv0xGBniEKOdgY7NZdUOxbOv0fNsfv5dH6eJYYoxlLbPX72L8apnpzOXW
tBaAyfkSUiLPy5kk4bm/re9IXjiczG4pc8Pfi6aaT6pFMZMZVTey20UePSkK
B7lStO2H8uFE34i3hfbh/OSzSubVyl2sNVPLhMAFwJrclpMP+V0pR5t2rtmD
zk3nwU/KB0yP5lTLYnKbmajE77+c7h0e7j7jcjGBX2duzk5nN4KRy1s5oK9f
jV5cnI6ePtkeR0eUcFCZXVHBaYWhS0gQ8lvocAFXDGDWllmrbq1lU5b5bVlM
9cVldVeOBA/uFuV0LMpKWHNTLoQ5CnDbUjAGRuOHYXZ/W8rEG87eUQyjtLAo
2DbqE1h8HvbSoCDfeSinGYAhkwOk4x4oNCdgNwJPETyTEXJBcsftaSZyVLko
52D/swc8iYHceHmS1/My/DXM/3jx9g25fbRtb/3xx4vtrP6oG2tWyz8WH4uL
SYO9e3sF4pO/qZdKBLYwxvYQk5iW1wDzWI/hvF6Wf32D/1vWf30vIBU0zTJc
AF4DRu+/PZNdhwx7nC9mpWywrOhOPo2z2HKA/KoUZBFspC2aX5ThfwQGLjuH
u5gKsGXcmvDl2QRYljyLAs5PnypQsc+fAcmqlYP0kdq7TRoHNFcTluDm1qdP
giR37efPapvlMC12T/fFN7e9re+ziNY8GDjB8xLgu29wiucYrTV2IgOeyLp8
43Babsp2nH36ZD9HO7ufP8tBa3nOSn9CThAohdwdckLheXl4CfzVBzIRwRVT
BB9m4Nb5QOTueX1PQxkANQBYPpScrVDbG1CzIQAkXEWGKdrsXt4ExQIOUogE
wgumX5WTQoRyAQCGwORULv26zev7eT4rrspZtjVwqXXc+/D4485ge9ynyfck
jXM5IBPZp1plI6oB/8NVBUIDFLbEgbwtM/mCsGT3Kv9GTUyoLfS47ezeeM4N
eA6xF3yybXHQf7ytZqVuZ7h9VeJpLLmcDgVrlqIOy3FTI7nRGQGd/F0CdNh8
eUEUrAf1qzrSKw8c5nC1CJDbdgXkW2a/SkfQx+2A3VXTqUhK2VdYbCPUUlf7
6SvF9Cw7jWQ/kOCErNPbM1cSfexsUO2Ow4Q1ZiIDfBQKbBexNj6q3GCYXzfC
c3g0VoIsM/7cQPyzPvF3sif4tCw+lO2JzM4+lYtiJcRuhT3E6/KMUF9nfjLr
BShc6wePB1+JObZellgJfSMXsq+TbTlpB6FWln8J8n4B8k5rrAo3wJHLi9Pt
hPi3ImJCBDCwyAE2/p85/y8iayArbLtMgOS/vZfV4NjJPJxtZFTDacrPv8g+
hpF3yJd0XUqwBU6zaXZV+gzsGAnuTksAc/h/yHkeF6P6S8TfDgahCuYo8wCJ
YSYEXXiP7P9EKQKYyC0gT52o841lvSBJdgFBKa8clwwegrvFEodQwerPqPyD
jVUCS2QDfXE6LBzmYwm2ktFy4JoYsdSJmKBQl1yLmr+kEmLLrWekNiLOJSvJ
FyKNGf0X+VqoZDp5Y2GO53l5fS0cdMgxNnAcobQiYE5rTtXB/ZALq+nwqKlc
nsozdZN9KMtFmzKmIZ9OcUhFuKneEBnPNgwRMfJrInjfIvwFRNBVIZIoyp0m
hl5B8C1yYZf0TMqUy1lbki4DUGDL5XyDEEwxVKmNyaoqkwbUF0L4AQ9fCwju
i2bKmeCJlsof9pAbpeB0Rw5mKMQVIm9CmWS6RpiyaaUoqSKBCvbFjZy+cCLm
/9LTaBZmfWjtuIIwY4i7+s7krsJNZ7KGh4URGVIFdVSZdCwLwOaR0QpP9TOg
wseXVBJ9fU0Z4bF6UEVk+IgWIhp6TyhUmVaARIGeg2H87E6EMdLUH29riiqK
QXgKJwAflJ0RMYBHJseniHEzIcswbMiET7L0mLiEBOyCFcFOgkyH3CqVXWkN
AvKAc9ZzCjAURESoUeKhYh5kr7Z4EHkEY6Xi7m09m1LlqgN11x3lEYmE+G+r
KUQn3sXiM3Kq/slw6iBIdvUga+hvkcuHIjhnIQZApv+3lnM8flSGlvVYnJKs
kfJ0lKKzzVK0voLAJHlF0BnCehTCIXvYE0+eyqDYAuL2yOfVxp0whVRxPwr8
ro5iZGBRJsr9pKJxYV4IW7F5vS8XTdnK8m12Z8/fvt/2m1gngACQv5xPmocF
I962zt5evBTqdVuQHyvcxnDrtDnkRup0ZfMBkhVYoBwmLgaxVZ8/cwezhOXm
lKS4ZcKoL071YUSWQYbXgELuf0d7zBQ+O/sy5G/UJPOgSWZBkZSPWigUIAvT
6NUD/0thpacymg5yy/ggDSPKvhhGFFXXi1ff4Yvhc7K7cmzecvNorG6Bcg08
OuWUWslMTtdUuALOZ5DyRjaljq9bKKFfxhnBhFwfbtJozUQmG7opAJIWZM8Z
dosn4Cd5IjzlBAYHjVomOaKS1oQBVhBwI9fO5GStzDdFWq0iU8oBhE7LDNul
0v07SIKBNE7N75op03VZRklAdBfo4/VcyLNgdlPfr51sbFem4hjFEHng26oR
yp717B9LVTfLNXG6azeR3fOIq8+fs41Gk/wXjCb51lIowgx2BZmQCPe29qFK
w60uUp8BSdarzv0KiCfU+lQEpvIqGsoc/j3w2a0eO/y6TaVsIiW5fmetX4tk
0MUC29dtuP0wOsRfWc9EFEcFPRZ3hceCBggulAVpizvRyHtVygIT6Ci0cJxE
+aIkQEzLosB/W9615exjqYIMGIVpIh2hdMbZzg2zqD1eF5Pl8IviMNThyWxF
Ql8gGnYBQUClxGFPVu5iirG6lL0E6ZfyAJcoqonoW4WZhdwUAJ6rMl4WpCbM
QJgvCc+6PSjFZdPIJxA0IaVkNJgwlMy8XiIrkvVQRfykvjLhIXlHikssD0CQ
Ngt2JT1JgFk5hsp5hjCk+TLEf19iahYy9+krlWUVGjgZ94TH4PUPF5eDof43
f/OWv9+//Ncfzt+/fIHfF9+dvnoVfmT2xMV3b3949SL+im+evX39+uWbF/qy
XM07l7LB69O/DPTIDN6+uzx/++b01WBd2aC0WQNh6V0UzkfRtc0UZFdqQHp+
9u7/+d+7BwKv/8tCoAVc+geCoOUPUD39GmGlfwrEHnB+SpGKcERFqJoUi0oP
eaEmpHluYP3d/wRk/tdx/k9Xk8XuwT/bBSy4c9Fh1rlImK1fWXtZgbjh0obP
BGh2rvcg3Z3v6V86fzvck4v/9C9Co8p8tPv0X/45UxxJDE169iOG5tSmKjMw
KbLdlXdXciZVLZPty26El9C1xhh7gTk1MJ55nnDgo8D3ndO04+w4NZ1HUfIL
ZvF8a0DzS0Mz1ju9iIFO80lwt3Z4gNqYXQtfzWc1uZyIECv4VVJpN8ujpyC/
qkT0ESl7kic6E7wGBiUL65yvCIWtd+dvMCOKRJjPRX29vFcVqkiUrw5Rp1o7
LcFGuMrExkObT77BBBPtLfK17xKySJ6hdJLwMJtS8n1E1DWERWDPIs/Ev1R/
vNBJ+OakehsMPPNAn7HxZsGP2yXMbIC1DE7AVmT6soh0ARSgOH/92kvTpFOQ
De2jMvPEODA0CYDau1nIAkh1qQzDoGJiKrMce1HPIJbEfY1oomRi3VRA7Swn
rFU4EFreE0aCYUBISX1/kp6UyEohqhlG6Th9ZV2QNhnTDlJiXRDYKjCHMg7s
lG4ECTa6E+xJAl/V6cMAWLvaJHB02hLLIvdY24eYBBROZRQ9XMSkVuM6uJnv
CHig6bQm0N0KIF/qWijNlgk7gSv+cpjbWbXgUbbUJZsUkTmEvB5HQ+amySzV
LSegqD8kkhFGX66uBmo9quBbVe5vXik3PYmGpcbri9ViISzjDHI5Tdc30KuH
sFyHvCHuBDgtjTZbF2fnl5emMSLSWfa/oyLIwqJJPD2WcR23iKihZipTwDlz
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
suxXBNvkHnPVidNBiIlKa+5h7Ahz4/x1segaQVSJpMMGjx5ndnyGuZ0cjlSI
MLxQjs2IAroWoXCrVAu/BlWdr4zGq3hIg1uDlbk5ETGuMd4p2iAT+6NFRXXC
oWgvg19BRdBMGdNdKXOAjcc9hMSak/zPvvbopXKEwRdMzM3MP0Wl2zUFoTX/
yL/HQ3K5cXb1Dxmy9+8fuVkTCZMv/ftH9o/R2r9fd+mRfzJiWonLJwSa1Jvj
I4cOp8R+IjaFc8y7VnUdUYhHb0QTNIZ5DLl5bNX5WZ9S/WOdeP22EU89riFO
qFi/9NiqN42YRKH763j8/2TVaWCFvj5Zv/Rb5njaDcznqtcv/ZY59i3h2Osy
geFjqx564NPo4rvTPdhmW4746Vgz0H4/+N5dCHZ4jG5XjZ7mpnUzWCIOBBue
Sp2Fu4uVKZllj8QIBDmyqD+DJ7n6HFEqHXECycfcWjjViC7WdImMPjudhEge
dbCZhnEYdOna/IcuTVCjKKPJFxp80HmVRhbaiTU3KyjTiHuBqTkzrXpUzj+W
s3qhPj4mgqxES/pJiO/OQGbQfHBDO4LK0nnqRDJ1S2iU6XVT/1zOQ5q0pkgk
NYrMhKrJ1LIoJdhnLit8ZdD4wgYFTsChUq++W87Ilcqf4IKtM7UDMA/Lds9e
T+19gCwCkmA4ww19aWijFHNw4PIGPBzf3IF/ae//PtzPR/nu0D0nNp7ZHUjR
9bemD8ESrBG+6i5uaeJdNqtSgFbMWnWXzFezGaJ+5EMhq0LdGvmcNOJjmakL
H5FpMjtdT+oU+2Fe0crYTopZ0dh8Toh+s3J+Ax2nNR2JbIgPMyyu1d0PiGK2
t5TBW3wpfF4xIyK6Z0QsAgu2Q0O77F2xRCzF7Rr6BgkmfE+ZYba1QIZ8MR1h
FIj7HILuZ+wbR8UpTaSA0vk/d1DjlzKYUmk3NFnI8roYEbt1JePLnGfTbcXA
P+m2ffrK9izLnsMts+5zpLdm6LttEI1D6xd1NmOU4UizoVRwbKMkSQ8VxtLo
+ib6kuJ75oaF1oDN3j3KG3ld0NAij9/UFIDcmRZSFAkix3CZCQfYmq4WzIkr
RxWXjmwWXSSyZ3VilWYjndUyYDXnygSpWEBqxvSXfOuHy7PtoWcntRrQBxe6
Zbo49jru1tfXIkFTgOX2yeKQp1d4jDxxofwJZmsk+u49y78tr5oVgou5nofS
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

-->

</rfc>
