<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-thallapelly-oasnt-caid-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="OASNT-CAID">OASNT-CAID: Canonical Action Identifier Derivation and the Named-Human Binding</title>
    <seriesInfo name="Internet-Draft" value="draft-thallapelly-oasnt-caid-01"/>
    <author initials="A." surname="Thallapelly" fullname="Arun Thallapelly">
      <organization>OmniArx</organization>
      <address>
        <email>arun@advitlabs.com</email>
      </address>
    </author>
    <date year="2026" month="August" day="05"/>
    <area>Security</area>
    <keyword>attestation</keyword>
    <keyword>authorization</keyword>
    <keyword>CAID</keyword>
    <keyword>executor</keyword>
    <keyword>mobile</keyword>
    <keyword>agent</keyword>
    <abstract>

<t>This document profiles OASNT tokens for consumption by executor-side
processing models. It fixes one normative derivation of a Canonical Action
Identifier (CAID) from the OASNT action digest, so that every executor
checks the same derivation rather than each integration defining its own,
and it specifies the semantics of the token's named-human binding,
including a subject-to-enrollment check whose absence this profile makes a
refusal.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="I-D.thallapelly-oasnt"/> (hereafter "the core document") defines the OASNT
token: a compact JWS in which a hardware-bound device key attests that a
specific human authorized one specific action, with the disclosure the
human was shown bound into the signature. The core document deliberately
stops at the token. It does not define how an executor, having decided to
admit evidence of several kinds, identifies the action that evidence
authorizes.</t>
      <t>Executor-side processing models such as
<xref target="I-D.schrock-action-evidence-boundary"/> work in terms of a Canonical
Action Identifier: a value the executor derives for the effect it is about
to perform and matches against the identifiers derived from admissible
evidence. Left unspecified, that derivation would be reinvented by every
executor-to-OASNT integration, and two integrations that disagreed on any
detail would disagree silently.</t>
      <t>This document fixes the derivation once. It also specifies the named-human
binding of the token: what a validated token asserts about the human it
names, the subject-to-enrollment check a verifier is required to make, and
what the binding deliberately does not assert.</t>
      <t>This profile is written from a running implementation. The subject
verification requirement in <xref target="named-human"/> exists because implementing
this profile exposed its absence; see <xref target="sec-subject"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<t>"The core document" refers to <xref target="I-D.thallapelly-oasnt"/>. "Action",
"canonical action", "disclosure", and the claim names <tt>adg</tt>, <tt>dsp</tt>, <tt>rqf</tt>,
<tt>sub</tt>, and <tt>cnf</tt> have the meanings the core document gives them.</t>
      <t>"Effect" refers to the concrete operation an executor is about to perform,
in the executor's own representation.</t>
    </section>
    <section anchor="caid">
      <name>The Canonical Action Identifier</name>
      <section anchor="syntax">
        <name>Syntax</name>
        <sourcecode type="abnf"><![CDATA[
caid          = "oasnt:caid:" version ":" digest
version       = 1*DIGIT
digest        = 43base64url-char
base64url-char = ALPHA / DIGIT / "-" / "_"
]]></sourcecode>
        <t>A CAID is an opaque octet string. It is not a URI under <xref target="RFC3986"/>, it
<bcp14>MUST NOT</bcp14> be dereferenced, and no registration of the leading literal is
requested or implied. A CAID identifies an action within OASNT;
<xref target="sec-namespace"/> states the consequence for executors that also hold
evidence under other profiles.</t>
        <t>This document defines version <tt>1</tt>.</t>
      </section>
      <section anchor="derivation">
        <name>Derivation</name>
        <t>For an action with type T and parameters P, the version 1 CAID is:</t>
        <artwork><![CDATA[
CAID(T, P) = "oasnt:caid:1:" || BASE64URL(SHA-256(canonical-action(T, P)))
]]></artwork>
        <t>where <tt>canonical-action</tt> is the canonical action encoding of the core
document, under its escaping rules and its UTF-8-octet key ordering;
SHA-256 is <xref target="RFC6234"/>; and BASE64URL is the URL-safe alphabet of
<xref target="RFC4648"/> without padding, yielding exactly 43 characters.</t>
        <t>The digest octets are, by construction, identical to the value of the
<tt>adg</tt> claim of an OASNT token minted for the same action. A conforming
derivation therefore has two equivalent forms:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Recomputed.</strong> Derive from a representation of the action the deriving
party itself holds, by computing the canonical action encoding and its
digest. This is the form an executor uses for its effect, and the form a
verifier that recomputed <tt>adg</tt> during token validation uses for the
evidence.</t>
          </li>
          <li>
            <t><strong>Carried.</strong> Prefix the <tt>adg</tt> value of a validated token. This form is
only meaningful after the token's signature has verified under an
enrolled key, and it carries only the strength of that signature: it
proves what the device signed, not what the executor is about to do. A
carried value that is not exactly 43 characters of the base64url
alphabet <bcp14>MUST</bcp14> be refused rather than prefixed.</t>
          </li>
        </ul>
        <t>Every CAID comparison in <xref target="matching"/> is an octet-string equality. Nothing
is ever parsed out of a CAID.</t>
      </section>
      <section anchor="versioning">
        <name>Versioning</name>
        <t>Version 1 pins the canonicalization rules of the core document as of this
writing: the escaping of structural delimiters and the UTF-8-octet key
ordering. Any change to those rules is a new version, never a silent
change under the same one.</t>
        <t>Because the version participates in the octet-string comparison,
identifiers derived under different versions never compare equal. A
version mismatch therefore manifests as an ordinary CAID mismatch and
fails closed. No version negotiation exists or is needed.</t>
      </section>
    </section>
    <section anchor="matching">
      <name>CAID Matching</name>
      <t>An executor admitting an OASNT token as evidence for an effect <bcp14>MUST</bcp14>
proceed as follows.</t>
      <ol spacing="normal" type="1"><li>
          <t>Validate the token as the core document's verification procedure
requires, with the single-use boundary of <xref target="single-use-boundary"/>
observed: the executor <bcp14>MUST</bcp14> establish that the core document's replay
condition is satisfiable, that <tt>jti</tt> is present and has not been seen,
without yet recording it as seen. A token that fails validation yields
no CAID and no further processing.</t>
        </li>
        <li>
          <t>Derive <tt>CAID-effect</tt> from the executor's own representation of the
effect it is about to perform, using the recomputed form of
<xref target="derivation"/>. The executor <bcp14>MUST NOT</bcp14> construct <tt>CAID-effect</tt> from any
value carried in the token or supplied by the party presenting it.</t>
        </li>
        <li>
          <t>Derive <tt>CAID-evidence</tt> from the validated token: the recomputed form
where the validator recomputed <tt>adg</tt> against an expected action, the
carried form otherwise.</t>
        </li>
        <li>
          <t>The evidence identifies the effect only if <tt>CAID-effect</tt> and
<tt>CAID-evidence</tt> are equal as octet strings. Any other outcome, including
a refused carried derivation in step 3, <bcp14>MUST</bcp14> be treated as a refusal
(<tt>caid-mismatch</tt>) and <bcp14>MUST NOT</bcp14> be downgraded to a warning.</t>
        </li>
      </ol>
      <t>Note that step 2 makes the comparison self-strengthening: equality between
a self-derived <tt>CAID-effect</tt> and a carried-basis <tt>CAID-evidence</tt> is itself
a recomputation of the token's <tt>adg</tt> against the executor's view of the
effect. The carried basis is weak only where matching does not happen, for
example when a CAID is stored or forwarded for audit without being
compared; such a value retains only signature strength and <bcp14>MUST</bcp14> be marked
as carried wherever that distinction is visible.</t>
      <section anchor="single-use-boundary">
        <name>Single-use and the matching boundary</name>
        <t>The core document requires that <tt>jti</tt> be present and not have been seen
before. That condition is checked during step 1, but the token's single use
<bcp14>MUST NOT</bcp14> be recorded as spent until the comparison of step 4 has succeeded
and the executor is committed to performing the effect.</t>
        <t>Consuming earlier is a defect with a specific shape. An executor that spends
<tt>jti</tt> while validating, and then refuses <tt>caid-mismatch</tt> at step 4, has
destroyed a valid authorization for an effect that never occurred. The
approver's evidence is gone, the effect did not happen, and the only
remedy is a fresh human approval. A party able to induce a mismatch, by
presenting the token against a near-miss effect, can therefore burn
authorizations at will, converting an integrity refusal into a denial of
service against the human in the loop.</t>
        <t>Executors <bcp14>MUST</bcp14> therefore evaluate validity and policy sufficiency
separately from consumption, and <bcp14>MUST</bcp14> release any provisional reservation
when a refusal is returned for any reason, including <tt>caid-mismatch</tt>. The
practical shape is a reservation taken atomically before verification and
either committed on full acceptance or released on refusal; this profile
does not require that mechanism, only the property. A refusal <bcp14>MUST NOT</bcp14>
consume.</t>
        <t>This applies to every refusal reachable after step 1, not only
<tt>caid-mismatch</tt>, and it composes with the group semantics of the
enforcement profile: a refused token likewise leaves its group unconsumed.</t>
      </section>
    </section>
    <section anchor="named-human">
      <name>The Named-Human Binding</name>
      <section anchor="what-a-validated-token-asserts">
        <name>What a validated token asserts</name>
        <t>The core document records, at enrollment, a subject identifier bound to
the enrolled key, and requires the <tt>sub</tt> claim in every token. This
profile makes the linkage load-bearing. A token validated under this
profile asserts:</t>
        <t>the subject recorded at enrollment and named by <tt>sub</tt>, in control of the
enrolled hardware-bound key identified by <tt>cnf.jkt</tt>, approved the specific
action identified by the CAID, having been shown the disclosure whose
digest <tt>dsp</tt> carries, on a device whose runtime integrity was assessed as
the <tt>int</tt> claim reports.</t>
      </section>
      <section anchor="subject-verification">
        <name>Subject verification</name>
        <t>A verifier operating under this profile <bcp14>MUST</bcp14> refuse a token
(<tt>sub-mismatch</tt>) when <tt>sub</tt> is absent, is not a string, or is not equal to
the subject identifier recorded at enrollment for the key that verified
the signature.</t>
        <t>This check is <bcp14>REQUIRED</bcp14>. Without it, a token signed by one enrolled key may
assert any subject whatsoever: every cryptographic check passes, the key
is authorized, and the named human is fiction. <xref target="sec-subject"/> records the
implementation experience behind this requirement.</t>
      </section>
      <section anchor="what-the-binding-does-not-assert">
        <name>What the binding does not assert</name>
        <t>The binding deliberately asserts nothing beyond the statement above. In
particular:</t>
        <ul spacing="normal">
          <li>
            <t>It is not a per-signature user-verification ceremony. The approval step
precedes the signature; no claim attests a biometric or knowledge-factor
ceremony for each individual signature. A relying party that requires
per-signature user verification composes it alongside this profile; this
profile will not fold it into the core semantics.</t>
          </li>
          <li>
            <t>It does not assert comprehension or legal consent. A valid <tt>dsp</tt> proves
which octets were displayed and signed, not that they were understood.
This limit is inherited from the core document unchanged.</t>
          </li>
          <li>
            <t>It does not strengthen the <tt>int</tt> claim. A device-asserted integrity
verdict retains exactly the limits the core document states.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-one-derivation">
        <name>One derivation or none</name>
        <t>The interoperability property this profile buys is deliberately fragile in
one direction: two implementations that disagree on any canonicalization
detail, escaping, ordering, or version, produce disjoint CAID spaces and
refuse each other's identifiers. The failure mode of divergence is
<tt>caid-mismatch</tt>, which denies. Nothing about the construction can turn a
divergence into an acceptance.</t>
      </section>
      <section anchor="sec-carried">
        <name>Carried derivations</name>
        <t>The carried form of <xref target="derivation"/> is a convenience for parties that
cannot recompute, and it is exactly as strong as the signature over the
token that carried it. The matching procedure of <xref target="matching"/> restores
recomputation strength wherever it is actually applied. Deployments <bcp14>SHOULD</bcp14>
treat an unmatched carried CAID, for example in logs or forwarded
evidence, as a claim by the device rather than a fact about any effect.</t>
      </section>
      <section anchor="sec-subject">
        <name>The subject check</name>
        <t>The reference implementation, prior to this profile, validated enrollment,
signature, thumbprint, freshness, replay, all three bindings, and the
integrity claim, and did not compare <tt>sub</tt> against the enrollment record.
A token signed by an enrolled key claiming a different subject passed
every check. The defect was found while implementing this profile's
named-human semantics, was fixed by the refusal <xref target="subject-verification"/>
requires, and is now exercised by a published refusal vector (the
named-human substitution case in the implementation's adversarial corpus,
and <xref target="vectors"/>).</t>
        <t>The lesson generalizes: the named-human binding is precisely as strong as
the weakest link between <tt>sub</tt>, the enrollment record, and the key. A
deployment that enrolls keys without recording a verified subject
identifier has nothing for this check to bind, and the assertion of
<xref target="named-human"/> silently degrades to "some enrolled key approved this".
Enrollment procedures <bcp14>SHOULD</bcp14> therefore verify the subject identifier they
record.</t>
      </section>
      <section anchor="sec-namespace">
        <name>Namespace separation</name>
        <t>The fixed leading literal exists so that an OASNT-derived identifier can
never be confused with an identifier derived by another evidence profile
that also feeds an executor. Executors handling multiple evidence profiles
<bcp14>SHOULD</bcp14> treat the full octet string, prefix included, as the identifier and
compare nothing shorter.</t>
        <t>The consequence is worth stating plainly: a CAID under this profile
identifies an action within OASNT, and it is not a join key across
evidence profiles. Another profile that derives its identifier over a
different preimage of the same logical action produces a different digest
under a different prefix, and no octet-string comparison between the two
ever succeeds, by design and fail-closed. An executor holding an OASNT
token and a non-OASNT authorization record for the same action therefore
cannot join them by comparing identifiers. It derives an identifier under
each profile separately, from its own representation of the effect, and
joins on that representation.</t>
        <t>This document defines an OASNT-specific derivation and namespace. The
term Canonical Action Identifier originates in executor-side processing
models (<xref target="I-D.schrock-action-evidence-boundary"/>), and a general CAID
framework with its own action object, canonicalization, and identifier
syntax is defined in <xref target="I-D.schrock-canonical-action-identifier"/>.
Identifiers derived under this document are not wire-compatible with
identifiers derived under that framework and never compare equal to
them; the two coexist by the same rule this section states for evidence
profiles generally.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. The literal <tt>oasnt:caid:</tt> is a fixed
string defined by this document; it is not a URI scheme, not a URN
namespace, and no registration is requested.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.thallapelly-oasnt">
          <front>
            <title>OASNT: Attested Action Authorization Tokens</title>
            <author fullname="Arun Thallapelly" initials="A." surname="Thallapelly">
              <organization>OmniArx</organization>
            </author>
            <date day="24" month="July" year="2026"/>
            <abstract>
              <t>   This document defines the OASNT token, a compact JWS-based credential
   in which a hardware-bound device key attests that a specific human,
   on a device whose runtime integrity was assessed, authorized one
   specific action whose human-readable disclosure is cryptographically
   bound to the token (What You See Is What You Sign).  Tokens are
   single-use, short-lived, and may additionally be bound to one
   concrete HTTP request.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thallapelly-oasnt-01"/>
        </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="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.schrock-action-evidence-boundary">
          <front>
            <title>The Action Evidence Boundary for Consequential Agent Effects</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="2" month="August" year="2026"/>
            <abstract>
              <t>   Consequential agent actions can cross identity, transport,
   authorization, policy, and execution systems.  Each system can
   produce a valid artifact while the executor still lacks a safe rule
   for joining the artifacts to the exact effect, consuming one-time
   authority, and handling an uncertain outcome.  This document defines
   the Action Evidence Boundary (AEB), an executor-side processing model
   for that lifecycle.

   AEB requires native artifact verification, Canonical Action
   Identifier (CAID) matching, Authorization Evidence Chain (AEC)
   satisfaction, a separate local authorization decision, durable atomic
   consumption or reservation, invocation, closed effect outcomes, and
   authenticated reconciliation.  It defines no receipt or token format,
   no policy language, no universal evidence taxonomy, and no new
   registry.  Native workload credentials, message signatures, attested
   per-action tokens, permit records, authorization receipts, and status
   mechanisms retain their own semantics and verifiers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-action-evidence-boundary-03"/>
        </reference>
        <reference anchor="I-D.schrock-canonical-action-identifier">
          <front>
            <title>The Canonical Action Identifier (CAID)</title>
            <author fullname="Iman Schrock" initials="I." surname="Schrock">
              <organization>EMILIA Protocol, Inc.</organization>
            </author>
            <date day="21" month="July" year="2026"/>
            <abstract>
              <t>   Authorization, delegation, execution, and audit artifacts often
   identify an action using format-local content and digests.  Those
   digests are not directly comparable when the formats select or encode
   material action fields differently.  This document defines the
   Canonical Action IDentifier (CAID): a typed action object, a
   canonicalization and digest suite, a compact identifier string, and
   immutable action-type definitions with required material fields.  It
   also defines an Action-Mapping Profile for projecting independently
   verified native artifacts into a common action type, with the closed
   results EQUIVALENT_UNDER_PROFILE, NOT_EQUIVALENT, and INDETERMINATE.
   CAID carries no trust semantics.  It does not establish identity,
   authority, authorization, execution, safety, or legal reliance.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schrock-canonical-action-identifier-01"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
      </references>
    </references>

<section anchor="vectors">
      <name>Test Vectors</name>
      <t>The derivation vectors below are byte-reproducible: they are generated
from the shipped canonicalization by <tt>docs/ietf/caid/gen-vectors-caid.mjs</tt>
in the implementation repository, and unlike the signature vectors of the
core document they involve no randomness. The named-human refusal vector
involves an ECDSA signature and is verified rather than compared.</t>
      <section anchor="p1-caid-derivation">
        <name>P1: CAID derivation</name>
        <t>Action type <tt>payment.transfer</tt>, parameters <tt>amount=100.00</tt>, <tt>payee=acct_9</tt>.</t>
        <artwork><![CDATA[
canonical action  payment.transfer|amount=100.00&payee=acct_9
adg               YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ
CAID              oasnt:caid:1:YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ
]]></artwork>
        <t>This vector is deterministic: any conforming implementation reproduces
these exact octets.</t>
      </section>
      <section anchor="p2-caid-mismatch">
        <name>P2: CAID mismatch</name>
        <t>The evidence above is presented for a different effect: <tt>amount=9000.00</tt>,
<tt>payee=acct_EVIL</tt>.</t>
        <artwork><![CDATA[
executing canonical action  payment.transfer|amount=9000.00&payee=acct_EVIL
CAID-effect                 oasnt:caid:1:EWy_PVFw3FxdZIk6AEpEJ5HxhAsCJQnSq7P1jPHg6gc
CAID-evidence               oasnt:caid:1:YlHp3M4JIWFPPZIVAwAmYOBOMfUyb2bjE6ve3AD2iaQ
]]></artwork>
        <t>The octet strings differ; the outcome is a refusal (<tt>caid-mismatch</tt>).</t>
      </section>
      <section anchor="p2b-caid-mismatch-escaping-load-bearing">
        <name>P2b: CAID mismatch, escaping load-bearing</name>
        <t>The single parameter (<tt>a</tt>, <tt>b&amp;c=d</tt>) and the parameter set (<tt>a</tt>, <tt>b</tt>),
(<tt>c</tt>, <tt>d</tt>) canonicalize identically if the escaping rules of the core
document are ignored, and must not under them.</t>
        <artwork><![CDATA[
canonical, single parameter  payment.transfer|a=b\&c\=d
CAID                         oasnt:caid:1:4u_wRl1BAfeJRhqTs268VI1_kCw03xEah5PmylQOd1M
canonical, two parameters    payment.transfer|a=b&c=d
CAID                         oasnt:caid:1:YE3P-GAUpmAvZdKvqezf1RBMlLCdpt0e0deVj5vBrps
]]></artwork>
        <t>The octet strings differ, and differ only because the escaping is
applied. Presenting evidence for either action against the other as the
effect refuses (<tt>caid-mismatch</tt>) at the CAID layer, rather than
surfacing an <tt>adg</tt> error.</t>
      </section>
      <section anchor="p3-carried-form-refusals">
        <name>P3: carried-form refusals</name>
        <t>Each of the following values <bcp14>MUST</bcp14> be refused by the carried form of the
derivation rather than prefixed:</t>
        <artwork><![CDATA[
""                                             (empty)
"short"                                        (wrong length)
42 or 44 characters of the base64url alphabet  (wrong length)
43 characters ending in "="                    (padding)
any character outside ALPHA / DIGIT / "-" / "_"
]]></artwork>
      </section>
      <section anchor="p4-named-human-refusal-verified-not-compared">
        <name>P4: named-human refusal (verified, not compared)</name>
        <t>A token signed by the core document's published test key, with every claim
valid except <tt>sub</tt>, which names <tt>mallory</tt> while enrollment records
<tt>agent-1</tt> for the key. Verification refuses with <tt>sub-mismatch</tt> and no
other reason. The signature is not byte-reproducible; regenerate and
verify with the tool named above.</t>
      </section>
    </section>
    <section numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>RFC Editor: please remove this section before publication.</t>
      <t>Since <tt>-00</tt>:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="sec-namespace"/> now states that a CAID identifies an action within
OASNT and is not a join key across evidence profiles, with the
consequence for executors holding evidence under several profiles.
Raised in executor-implementer review.</t>
        </li>
        <li>
          <t>New derivation vector P2b: a CAID mismatch between two parameter sets
that canonicalize identically unless the escaping rules are applied,
refusing at the CAID layer rather than as an <tt>adg</tt> error.</t>
        </li>
        <li>
          <t><xref target="sec-namespace"/> cites <xref target="I-D.schrock-canonical-action-identifier"/> as
the general CAID framework and states that identifiers under this
document are an OASNT-specific derivation and namespace, not
wire-compatible with identifiers derived under that framework.</t>
        </li>
        <li>
          <t><xref target="matching"/> step 1 and the new <xref target="single-use-boundary"/> state that the
replay condition is checked but the token's single use <bcp14>MUST NOT</bcp14> be
recorded as spent until the step-4 comparison succeeds. As published,
<tt>-00</tt> permitted an executor to consume <tt>jti</tt> during validation and then
refuse <tt>caid-mismatch</tt>, destroying a valid authorization for an effect
that never occurred and allowing an induced mismatch to burn approvals.
A refusal <bcp14>MUST NOT</bcp14> consume. Raised in executor-implementer review.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The composition questions raised by Iman Schrock on the WIMSE mailing
list, in particular whether the <tt>adg</tt>-to-CAID derivation should be fixed
normatively or left to each executor adapter, prompted this profile. His
executor-implementer review of the <tt>-00</tt> text contributed the
cross-profile observation now stated in <xref target="sec-namespace"/>, the shape
of the escaping vector in <xref target="vectors"/>, and the single-use ordering defect
corrected in <xref target="single-use-boundary"/>, a case where the published text
permitted an executor to consume an authorization while refusing the
effect it authorized.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
32Qh/hCQOCLBOA4T5qHG6v8AKW801eNMAAA=

-->

</rfc>
