<?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.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gruszka-signed-evaluation-receipts-04" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Signed Evaluation Receipts">Signed Evaluation Receipts</title>
    <seriesInfo name="Internet-Draft" value="draft-gruszka-signed-evaluation-receipts-04"/>
    <author initials="K." surname="Gruszka" fullname="Konrad Gruszka">
      <organization>b7n0de</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>kontakt@b7n0de.com</email>
      </address>
    </author>
    <date/>
    <area>Security</area>
    <keyword>evaluation</keyword>
    <keyword>receipt</keyword>
    <keyword>Ed25519</keyword>
    <keyword>canonical JSON</keyword>
    <abstract>

<t>This document defines a Signed Evaluation Receipt: one JSON object that
records one evaluation result, whether a stated threshold held for a stated
metric of a stated test suite, and signs it with Ed25519 over a
domain-separated encoding of its canonical bytes. A receipt shows who signed
the recorded bytes. It does not show that the recorded result is true. A
receipt does not prove registration with a Transparency Service. In SCITT,
transparency additionally requires registering a Signed Statement carrying the
receipt or its digest with a Transparency Service and verifying the resulting
SCITT Receipt. Registration and verification of the resulting SCITT Receipt
are outside this document.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Evaluation results for software and models are often reported as numbers in
documents, dashboards or logs. A reader who receives such a number later has
no means to tell whether the bytes they see are the bytes the reporting party
produced. This document defines a small, fixed format that gives that means
and nothing more.</t>
      <t>A Signed Evaluation Receipt (receipt) holds exactly one assertion: for a named
test suite and metric, whether the score met a threshold under a stated
comparator. The model and the dataset are named only through salted
commitments. The assertion is serialized with the JSON Canonicalization Scheme
<xref target="RFC8785"/>, and the resulting bytes are signed with Ed25519 <xref target="RFC8032"/> over a
pre-authentication encoding that binds a fixed type.</t>
      <t>Two parties that share no infrastructure can use this format: an Issuer that
ran an evaluation, such as the provider of a model or a test laboratory, and a
Receiver that decides on the result, such as an operator that admits a model
into service or an auditor. The Issuer hands over one receipt; the Receiver
checks it under a key it fixed beforehand, without access to the Issuer's
systems, and learns which result the Issuer reports for which committed model
and dataset, under which threshold and comparator. The receipt object exists
next to the DSSE-compatible signature because it carries, together with B, the
fixed type and the payload schema identifier and is verified by one procedure
(<xref target="verification"/>), so that every Receiver reaches the same verdict on the same
receipt bytes and verification key, provided verification completes. A DSSE
signature check alone is not that verdict.</t>
      <t>A receipt establishes integrity and origin: the holder of the signing key
signed exactly these bytes. It does not establish truth. <xref target="non-claims"/> lists
what a receipt does not prove, and that list is part of the definition. A
receipt carries no inclusion proof and names no log. A receipt does not prove
registration with a Transparency Service. In SCITT <xref target="RFC9943"/>, transparency
additionally requires registering a Signed Statement carrying the receipt or its
digest with a Transparency Service and verifying the resulting SCITT Receipt.
Registration and verification of the resulting SCITT Receipt are outside this
document.</t>
      <t>This document defines an application payload and a receipt that
carries it with a signature. Its interoperability target is that
independent Receivers reach the same format, consistency and signature verdict
on the same receipt bytes and verification key, provided verification
completes. It does not define an evaluation method or decide whether
a reported result is sufficient for an application. A separate
profile can specify how this format is carried or cited in SCITT.
This document defines no envelope mapping and no transport.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <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>
      <dl>
        <dt>Issuer:</dt>
        <dd>
          <t>The party that creates and signs a receipt.</t>
        </dd>
        <dt>Receiver:</dt>
        <dd>
          <t>The party that verifies a receipt. The Receiver fixes the verification key
before verification, by means outside this document.</t>
        </dd>
        <dt>Payload:</dt>
        <dd>
          <t>The JSON object that holds the assertion (<xref target="payload"/>).</t>
        </dd>
        <dt>B:</dt>
        <dd>
          <t>The RFC 8785 byte string of the Payload. B is what is signed (through
PAE).</t>
        </dd>
        <dt>PAE:</dt>
        <dd>
          <t>The pre-authentication encoding of <xref target="pae"/>.</t>
        </dd>
        <dt>Commitment:</dt>
        <dd>
          <t>A string that binds an identifier without revealing it (<xref target="commitments"/>).</t>
        </dd>
      </dl>
    </section>
    <section anchor="format">
      <name>Receipt Format</name>
      <section anchor="receipt-object">
        <name>The Receipt Object</name>
        <t>A receipt is one JSON text <xref target="RFC8259"/> that is an I-JSON message <xref target="RFC7493"/>:
UTF-8 without a byte order mark, no string (member names included) that
contains a surrogate or noncharacter code point (<xref target="RFC7493"/> Section 2.1), no
duplicate member names at any level, and nothing before or after the JSON text
other than insignificant whitespace (<xref target="RFC8259"/> Section 2). Member names are
compared after
unescaping (<xref target="RFC8259"/> Section 8.3), and so are string values: the receipt
object is not canonicalized, so <tt>\/</tt> and <tt>/</tt> are the same character. Its
top-level value is an object with exactly these members:</t>
        <dl>
          <dt>schema:</dt>
          <dd>
            <t>The type of <xref target="type"/>, as a string.</t>
          </dd>
          <dt>payload_b64:</dt>
          <dd>
            <t>The base64 encoding of B (<xref target="RFC4648"/> Section 4, with padding). It <bcp14>MUST</bcp14> be
the canonical encoding: re-encoding the decoded bytes yields the same string
(<xref target="RFC4648"/> Section 3.5).</t>
          </dd>
          <dt>signature:</dt>
          <dd>
            <t>An object with exactly the members <tt>alg</tt> and <tt>sig</tt>, or exactly <tt>alg</tt>,
<tt>sig</tt> and <tt>key</tt>. <tt>alg</tt> is the string <tt>ed25519</tt>; <tt>sig</tt> is the canonical base64
encoding, as for <tt>payload_b64</tt>, of the 64-byte Ed25519 signature; <tt>key</tt>, when
present, is the canonical base64 encoding, as for <tt>payload_b64</tt>, of a 32-byte
Ed25519 public key and is only a hint (<xref target="verification"/>).</t>
          </dd>
        </dl>
        <t>The receipt object has no number member. The number rules of I-JSON are not
checked when the receipt is parsed: a number where a string belongs fails the
step that checks that member.</t>
        <t>The receipt names no trust instance: it carries no certificate, no address from
which a key could be fetched, and no list of trusted parties.</t>
      </section>
      <section anchor="payload">
        <name>The Payload</name>
        <t>The Payload is a JSON object with exactly the members of Table 1.
<tt>criteria_digest</tt> is the only optional member: a Payload either has it or not,
and has no member that Table 1 does not list. The Type column states every
constraint a member has except two: the pattern <tt>sha256:</tt> followed by 64
lowercase hexadecimal digits that the commitments of <xref target="commitments"/> and
<tt>criteria_digest</tt> (<xref target="criteria"/>) share, and the agreement of <tt>passed</tt> with the
comparison. A member that violates its row fails step 6 of <xref target="verification"/>, a
commitment or a <tt>criteria_digest</tt> without that pattern fails step 7, and a
<tt>passed</tt> that disagrees fails step 8.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">schema</td>
              <td align="left">string, exactly the payload schema identifier below</td>
              <td align="left">version of the payload format</td>
            </tr>
            <tr>
              <td align="left">suite</td>
              <td align="left">non-empty string</td>
              <td align="left">name of the test suite</td>
            </tr>
            <tr>
              <td align="left">suite_version</td>
              <td align="left">non-empty string</td>
              <td align="left">version of the test suite</td>
            </tr>
            <tr>
              <td align="left">metric</td>
              <td align="left">non-empty string</td>
              <td align="left">name of the metric</td>
            </tr>
            <tr>
              <td align="left">comparator</td>
              <td align="left">string, one of <tt>&gt;=</tt>, <tt>&gt;</tt>, <tt>&lt;=</tt>, <tt>&lt;</tt></td>
              <td align="left">how the score is compared with the threshold</td>
            </tr>
            <tr>
              <td align="left">threshold</td>
              <td align="left">decimal string</td>
              <td align="left">the threshold the score is compared with</td>
            </tr>
            <tr>
              <td align="left">score</td>
              <td align="left">decimal string</td>
              <td align="left">the score the Issuer reports</td>
            </tr>
            <tr>
              <td align="left">passed</td>
              <td align="left">
                <tt>true</tt> or <tt>false</tt></td>
              <td align="left">whether <tt>score comparator threshold</tt> holds</td>
            </tr>
            <tr>
              <td align="left">n</td>
              <td align="left">integer from 1 to 2^53 - 1</td>
              <td align="left">number of samples the Issuer reports; not checked against anything</td>
            </tr>
            <tr>
              <td align="left">model_id_commit</td>
              <td align="left">string</td>
              <td align="left">commitment (<xref target="commitments"/>) to the model identifier</td>
            </tr>
            <tr>
              <td align="left">dataset_id_commit</td>
              <td align="left">string</td>
              <td align="left">commitment (<xref target="commitments"/>) to the dataset identifier</td>
            </tr>
            <tr>
              <td align="left">commit_alg</td>
              <td align="left">string, exactly <tt>sha256-salted-v1</tt></td>
              <td align="left">the commitment construction</td>
            </tr>
            <tr>
              <td align="left">timestamp</td>
              <td align="left">string, a timestamp as defined below</td>
              <td align="left">when the Issuer states the evaluation ran</td>
            </tr>
            <tr>
              <td align="left">criteria_digest</td>
              <td align="left">string; <bcp14>OPTIONAL</bcp14></td>
              <td align="left">digest (<xref target="criteria"/>) of the criteria set the Issuer states this result belongs to</td>
            </tr>
          </tbody>
        </table>
        <t>The payload schema identifier is</t>
        <artwork><![CDATA[
https://signed-evidence.org/eval-receipt/v1
]]></artwork>
        <t>In this document a digit is one of the ASCII digits 0 to 9 (0x30 to 0x39); no
other Unicode digit counts. A lowercase hexadecimal digit is a digit or one of
the ASCII letters a to f (0x61 to 0x66). A non-empty string has at least one character. A
decimal string is an optional minus sign, then either the digit 0 or a digit
from 1 to 9 followed by any digits, then optionally a full stop followed by one
or more digits; it has no exponent and no plus sign. A timestamp is a UTC
date-time of <xref target="RFC3339"/> in exactly this form, with an uppercase <tt>T</tt> and <tt>Z</tt>:</t>
        <artwork><![CDATA[
YYYY-MM-DDTHH:MM:SSZ
]]></artwork>
        <t>The date exists in the proleptic Gregorian calendar: the day of the month is
at most the maximum that <xref target="RFC3339"/> Section 5.7 gives for its month and year,
under the leap-year rule of <xref target="RFC3339"/> Appendix C, so the year 0000 exists and
is a leap year; the hour is 00 to 23, the minute 00 to 59 and the second 00 to
59. A timestamp has no fractional seconds and no offset other than <tt>Z</tt>, and
this format does not represent a leap second. <tt>passed</tt> <bcp14>MUST</bcp14> equal the result of comparing <tt>score</tt> with
<tt>threshold</tt> under <tt>comparator</tt> as exact decimal numbers. The Payload thus
carries one assertion, and a Receiver can check that its parts agree with each
other; it cannot check that they agree with any evaluation.</t>
        <t>The version of the format lives in the <tt>schema</tt> identifier. The test vectors
of this version are the vector set of <xref target="vectors"/>: this document gives ten of them in full and fixes the file that holds all of them by its URL, size and SHA-256.
A later version uses a different identifier under</t>
        <artwork><![CDATA[
https://signed-evidence.org/eval-receipt/
]]></artwork>
        <t>and comes with its own test vectors. The identifier above keeps naming the
format of this document.</t>
      </section>
      <section anchor="commitments">
        <name>Salted Commitments</name>
        <t><tt>sha256-salted-v1</tt> is defined as follows. The Issuer takes a salt of exactly 16
bytes from a cryptographically secure random source and keeps it. The
commitment is the string <tt>sha256:</tt> followed by the 64 lowercase hexadecimal
digits of SHA-256 over the salt bytes immediately followed by the UTF-8 bytes
of the identifier. There is no separator and no length prefix. SHA-256 is the
hash function specified in <xref target="RFC6234"/>. A Receiver
checks only the pattern <tt>sha256:</tt> followed by 64 lowercase hexadecimal digits;
it can check the binding only when the Issuer discloses salt and identifier.
Reusing the same salt and identifier produces the same commitment across
receipts. Fresh salts avoid this equality link but do not make receipts
unlinkable, because verification keys and other shared values may still link
them (<xref target="privacy"/>).</t>
      </section>
      <section anchor="bytes">
        <name>The Bytes B</name>
        <t>B is the serialization of the Payload under <xref target="RFC8785"/>. For a valid Payload
that means: members sorted by name, no insignificant whitespace, the integer
<tt>n</tt> as its decimal digits, and strings with the escaping of <xref target="RFC8785"/>
Section 3.2.2.2. A Receiver <bcp14>MUST</bcp14> reject payload bytes that are not their own
RFC 8785 serialization, so that exactly one B exists for each Payload. The
check (step 5 of <xref target="verification"/>) runs before the member checks of step 6,
so it applies RFC 8785 in full, including the number serialization of its
Section 3.2.2.3: a B that carries <tt>1.0</tt>, <tt>1e0</tt> or 9007199254740993 is not its
own serialization.</t>
      </section>
      <section anchor="criteria">
        <name>The Criteria Digest</name>
        <t><tt>criteria_digest</tt> is <bcp14>OPTIONAL</bcp14>. When present, it is the string <tt>sha256:</tt>
followed by the 64 lowercase hexadecimal digits of SHA-256 over the bytes of a
criteria set, exactly as the publisher of that criteria set fixed them. A
criteria set is any document that states how an evaluation is to be judged,
for example its metric, comparator and threshold; this document defines no
format and no canonical form for it. A Receiver checks only the pattern (step 7
of <xref target="verification"/>). It can check the binding only when it holds the bytes of
the criteria set, by computing SHA-256 over them. What the member does not show
is part of <xref target="non-claims"/>.</t>
        <t>As an informative example, the profile of <xref target="I-D.ozturk-scitt-prml-profile"/>
carries in its hash-only mode the 32 octets of SHA-256 over the canonical bytes of a
criteria set written in <xref target="PRML"/> as the payload of a Signed Statement. When the
bytes of the criteria set are those canonical bytes, the 64 hexadecimal digits
of <tt>criteria_digest</tt> are those 32 octets written in lowercase hexadecimal.</t>
      </section>
    </section>
    <section anchor="signature">
      <name>Signature</name>
      <section anchor="pae">
        <name>Pre-Authentication Encoding</name>
        <artwork><![CDATA[
PAE(type, body) = "DSSEv1" SP LEN(type) SP type SP LEN(body) SP body
]]></artwork>
        <t>SP is the byte 0x20. LEN(x) is the number of bytes of x as ASCII decimal
digits without leading zeros. <tt>type</tt> is the UTF-8 string of <xref target="type"/>, <tt>body</tt>
is B. "DSSEv1" is the six ASCII bytes of that literal. This is the
pre-authentication encoding of DSSE <xref target="DSSE"/>; it is defined here so that this
document can be implemented without it.</t>
      </section>
      <section anchor="type">
        <name>The Type</name>
        <t>The type is the fixed string</t>
        <artwork><![CDATA[
application/vnd.signed-evidence.eval-receipt+json
]]></artwork>
        <t>It enters every signature. It <bcp14>MUST NOT</bcp14> change for this format, because a
change would invalidate every signature made under it; a new format uses a new
type. The string is a media type name in the vendor tree (<xref target="RFC6838"/>
Section 3.2) with the <tt>+json</tt> structured syntax suffix (<xref target="RFC6839"/>
Section 3.1). It is the same string that a DSSE envelope would carry as
<tt>payloadType</tt>.</t>
      </section>
      <section anchor="signing">
        <name>Signing</name>
        <t>The signature is Ed25519 as defined in <xref target="RFC8032"/> Section 5.1, in its pure
form, without context and without prehashing (not Ed25519ctx, not Ed25519ph):</t>
        <artwork><![CDATA[
sig = Ed25519-Sign(secret key, PAE(type, B))
]]></artwork>
      </section>
      <section anchor="profile">
        <name>Verification Profile</name>
        <t>Ed25519 implementations differ on inputs that RFC 8032 leaves to choice
<xref target="TAMING"/>. A Receiver <bcp14>MUST</bcp14> use this profile. In it, <tt>x*P</tt> is the scalar
multiplication of the point P by the integer x, <tt>B'</tt> is the base point, and L
is the order of <tt>B'</tt> (<xref target="RFC8032"/> Section 5.1).</t>
        <ol spacing="normal" type="1"><li>
            <t>The public key A and the signature's first half R <bcp14>MUST</bcp14> be canonical
encodings: decoding as in <xref target="RFC8032"/> Section 5.1.3 succeeds. That decoding
rejects a y-coordinate that is not below p and the encoding of x = 0 with
the sign bit set.</t>
          </li>
          <li>
            <t>A and R <bcp14>MUST</bcp14> have order L: <tt>L*A</tt> and <tt>L*R</tt> are the neutral element, and A
and R are not the neutral element.</t>
          </li>
          <li>
            <t>The scalar S, the second half of the signature read as a little-endian
integer, <bcp14>MUST</bcp14> be below L (<xref target="RFC8032"/> Section 5.1.7).</t>
          </li>
          <li>
            <t>With k = SHA-512(R || A || PAE(type, B)) read as a little-endian integer
reduced modulo L, the equation <tt>S*B' = R + k*A</tt> <bcp14>MUST</bcp14> hold (the cofactorless
equation). In the hash input, R and A are the 32-byte encodings exactly as
received: the first 32 bytes of the 64-byte signature and the verification
key.</t>
          </li>
        </ol>
        <t>A signature that fails any rule is invalid. The rules are checked in the
order given, and within rules 1 and 2 the key before R. Because A and R have
order L, the cofactorless equation of rule 4 and the cofactored equation
<tt>8*S*B' = 8*R + 8*k*A</tt> of <xref target="RFC8032"/> Section 5.1.7 accept exactly the same
signatures. This specification defines individual verification only. A
randomized batch result <bcp14>MUST NOT</bcp14> substitute for checking all four rules for
each signature. A Receiver <bcp14>MUST NOT</bcp14> leave out any of the four rules.</t>
      </section>
    </section>
    <section anchor="verification">
      <name>Verification Procedure</name>
      <t>Input: the receipt bytes and the verification key that the Receiver fixed. The
verification-key input is exactly 32 octets containing the compressed
Edwards-point encoding of A defined by <xref target="RFC8032"/> Section 5.1.2. A verification-key input that is not exactly 32 octets is an input error: the steps below are not run, and the result is neither PASS nor the FAIL of one of them. Any textual or
file representation used to supply those octets is outside this specification.
The steps are evaluated in order; the result is PASS only when every step
succeeds, and the first step that fails gives FAIL. String values are compared
after unescaping. A Receiver that stops because it reached a resource limit
(<xref target="security"/>) reports a resource-limit error; that is neither PASS nor the FAIL
of one of the steps below.</t>
      <ol spacing="normal" type="1"><li>
          <t>Parse the receipt as one I-JSON text (<xref target="receipt-object"/>). A byte order
mark, bytes that are not UTF-8, a surrogate or noncharacter code point,
duplicate member names at any level, anything before or after the JSON
text other than insignificant whitespace (<xref target="RFC8259"/> Section 2), a
top-level value that is not an object with
exactly the members <tt>schema</tt>, <tt>payload_b64</tt> and <tt>signature</tt>, or a
<tt>signature</tt> that is not an object with exactly <tt>alg</tt> and <tt>sig</tt> or exactly
<tt>alg</tt>, <tt>sig</tt> and <tt>key</tt>: FAIL.</t>
        </li>
        <li>
          <t><tt>schema</tt> is not the type of <xref target="type"/>: FAIL.</t>
        </li>
        <li>
          <t><tt>payload_b64</tt> is not a string of the base64 alphabet with padding, or not
the canonical encoding of the bytes it decodes to: FAIL. Otherwise those
bytes are B.</t>
        </li>
        <li>
          <t>B is not one I-JSON text whose value is an object, under the rules of step
1 (byte order mark, UTF-8, surrogates and noncharacters, duplicate names as
in <xref target="RFC7493"/> Section 2.3, which <xref target="RFC8785"/> Section 3.1 requires of its
input, trailing data): FAIL. Numbers are not judged
here: each is read as an IEEE 754 double, rounded to nearest with ties to
even and overflowing to infinity, and a number that so has no finite
double, such as <tt>1e400</tt>, fails step 5.</t>
        </li>
        <li>
          <t>B is not the RFC 8785 serialization of the value parsed in step 4 (<xref target="bytes"/>):
FAIL. This step alone would also reject every B that step 4 rejects for
a byte order mark, duplicate names or trailing data; step 4 is kept so that
every Receiver reports the same failing step.</t>
        </li>
        <li>
          <t>The Payload's member set differs from <xref target="payload"/> (every member of Table 1,
with <tt>criteria_digest</tt> optional), or a member violates its
row of Table 1 (its type, the <tt>schema</tt> and <tt>commit_alg</tt> values, a non-empty
string, the comparator set, the decimal grammar, the range of <tt>n</tt>, the
timestamp form): FAIL.</t>
        </li>
        <li>
          <t>A commitment, or <tt>criteria_digest</tt> when present, is not <tt>sha256:</tt> followed
by 64 lowercase hexadecimal digits: FAIL.</t>
        </li>
        <li>
          <t><tt>passed</tt> differs from the comparison of <tt>score</tt> with <tt>threshold</tt>: FAIL.</t>
        </li>
        <li>
          <t><tt>signature.alg</tt> is not the string <tt>ed25519</tt>, or <tt>signature.sig</tt> is not a
string that is the canonical base64 encoding of exactly 64 bytes: FAIL.</t>
        </li>
        <li>
          <t><tt>signature.key</tt> is present and is not a string that is the canonical base64
encoding of the verification key: FAIL. A key in the receipt is only a hint.</t>
        </li>
        <li>
          <t>The signature is invalid under the profile of <xref target="profile"/> for the
verification key and PAE(type, B) with the fixed type: FAIL. A signature
made over PAE with another type fails here.</t>
        </li>
      </ol>
      <t>Table 2 lists every vector of the vector set (<xref target="vectors"/>) with the step at which it fails
first; each of the eleven steps is the first failing step of at least one
vector. A vector shows the first failing step under in-order evaluation;
it does not show that a later step would also reject it. Of the profile, the
vectors cover rule 1 for the key (N18) and for R (N17), rule 2 for the key
(N12, and N61 for a key of mixed order) and for R (N16, and N59 for an R of
mixed order), rule 3 (N6) and rule 4 (N7). No vector isolates rule 1
from rule 2. Rule 1 rejects 40 encodings that a decoder reducing y modulo p
would try (y from p to p + 18 with either sign bit, and x = 0 with the sign
bit set); read by such a decoder, 14 of them give no point, 6 give points of
small order and 20 give points of mixed order. None of these 26 points has
order L, so a Receiver without rule 1 would still reject each of them under
rule 2; N17 and N18 use y = p + 1, which such a decoder reads as the neutral
element. P6 has no key hint, so step 10 has nothing to compare. N61 uses the
mixed-order test key, the issuer's public point plus a point of order 8, with a
signature that satisfies the cofactorless equation; only rule 2 rejects it.
Its expected result is FAIL at step 11, rule 2 for the verification key. N59
uses the issuer test key and an R of mixed order, the point <tt>r*B'</tt> plus the same
point of order 8, with <tt>S = r + k*a mod L</tt>; the cofactored equation holds and the
cofactorless one does not, and rule 2 rejects R before rule 4 is reached. P9 and N51 to N55 pin rules that no other vector
reaches: the year 0000 (P9), ASCII digits (N51), a number without a finite
double (N52), the key before R in rules 1 and 2 (N53, N54), and no number rule
at step 1 (N55). N56 writes <tt>n</tt> as <tt>1800.0</tt>, which a Receiver that skipped the
number serialization of RFC 8785 would accept. P10 carries the optional
<tt>criteria_digest</tt>; N57 gives it uppercase hexadecimal digits and N58 the value
null. The receipts without the member are the other positive vectors. P12 is
the receipt of P1 followed by a line feed, insignificant whitespace that step 1
admits. N60 is B of P1 followed by a line feed, signed anew: step 4 admits the
line feed under the rules of step 1, and step 5 rejects B, because its RFC 8785
serialization has no insignificant whitespace. P13 is a line feed followed by
the receipt of P1, insignificant whitespace before the JSON text that step 1
admits.</t>
      <table>
        <thead>
          <tr>
            <th align="left">ID</th>
            <th align="left">Step</th>
            <th align="left">Expected</th>
            <th align="left">What it shows</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">P1</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">pass</td>
          </tr>
          <tr>
            <td align="left">P2</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">recorded-failure</td>
          </tr>
          <tr>
            <td align="left">P4</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">escaped-receipt-string</td>
          </tr>
          <tr>
            <td align="left">P6</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">no-key-hint</td>
          </tr>
          <tr>
            <td align="left">P7</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">comparator-le</td>
          </tr>
          <tr>
            <td align="left">P8</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">exact-decimal</td>
          </tr>
          <tr>
            <td align="left">P9</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">year-0000</td>
          </tr>
          <tr>
            <td align="left">P10</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">criteria-digest</td>
          </tr>
          <tr>
            <td align="left">P12</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">receipt-trailing-whitespace</td>
          </tr>
          <tr>
            <td align="left">P13</td>
            <td align="left">all</td>
            <td align="left">PASS</td>
            <td align="left">receipt-leading-whitespace</td>
          </tr>
          <tr>
            <td align="left">N1</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">no-duplicate-names</td>
          </tr>
          <tr>
            <td align="left">N2</td>
            <td align="left">2</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-schema</td>
          </tr>
          <tr>
            <td align="left">N3</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">no-trailing-data</td>
          </tr>
          <tr>
            <td align="left">N4</td>
            <td align="left">7</td>
            <td align="left">FAIL</td>
            <td align="left">commitment-pattern</td>
          </tr>
          <tr>
            <td align="left">N5</td>
            <td align="left">5</td>
            <td align="left">FAIL</td>
            <td align="left">jcs-form</td>
          </tr>
          <tr>
            <td align="left">N6</td>
            <td align="left">11 (profile 3)</td>
            <td align="left">FAIL</td>
            <td align="left">s-less-than-L</td>
          </tr>
          <tr>
            <td align="left">N7</td>
            <td align="left">11 (profile 4)</td>
            <td align="left">FAIL</td>
            <td align="left">pae-type</td>
          </tr>
          <tr>
            <td align="left">N9</td>
            <td align="left">10</td>
            <td align="left">FAIL</td>
            <td align="left">key-hint</td>
          </tr>
          <tr>
            <td align="left">N10</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">payload-schema</td>
          </tr>
          <tr>
            <td align="left">N11</td>
            <td align="left">8</td>
            <td align="left">FAIL</td>
            <td align="left">result-consistency</td>
          </tr>
          <tr>
            <td align="left">N12</td>
            <td align="left">11 (profile 2, key)</td>
            <td align="left">FAIL</td>
            <td align="left">small-order-key</td>
          </tr>
          <tr>
            <td align="left">N13</td>
            <td align="left">3</td>
            <td align="left">FAIL</td>
            <td align="left">canonical-base64</td>
          </tr>
          <tr>
            <td align="left">N14</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-duplicate-names</td>
          </tr>
          <tr>
            <td align="left">N15</td>
            <td align="left">9</td>
            <td align="left">FAIL</td>
            <td align="left">signature-alg</td>
          </tr>
          <tr>
            <td align="left">N16</td>
            <td align="left">11 (profile 2, R)</td>
            <td align="left">FAIL</td>
            <td align="left">small-order-R</td>
          </tr>
          <tr>
            <td align="left">N17</td>
            <td align="left">11 (profile 1, R)</td>
            <td align="left">FAIL</td>
            <td align="left">noncanonical-R</td>
          </tr>
          <tr>
            <td align="left">N18</td>
            <td align="left">11 (profile 1, key)</td>
            <td align="left">FAIL</td>
            <td align="left">noncanonical-key</td>
          </tr>
          <tr>
            <td align="left">N19</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-trailing-data</td>
          </tr>
          <tr>
            <td align="left">N20</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-member-set</td>
          </tr>
          <tr>
            <td align="left">N21</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">signature-member-set</td>
          </tr>
          <tr>
            <td align="left">N22</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-duplicate-after-unescaping</td>
          </tr>
          <tr>
            <td align="left">N23</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-bom</td>
          </tr>
          <tr>
            <td align="left">N24</td>
            <td align="left">3</td>
            <td align="left">FAIL</td>
            <td align="left">payload-not-base64</td>
          </tr>
          <tr>
            <td align="left">N25</td>
            <td align="left">9</td>
            <td align="left">FAIL</td>
            <td align="left">signature-length</td>
          </tr>
          <tr>
            <td align="left">N26</td>
            <td align="left">9</td>
            <td align="left">FAIL</td>
            <td align="left">signature-canonical-base64</td>
          </tr>
          <tr>
            <td align="left">N30</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">commit-alg</td>
          </tr>
          <tr>
            <td align="left">N31</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">payload-member-missing</td>
          </tr>
          <tr>
            <td align="left">N32</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">payload-member-extra</td>
          </tr>
          <tr>
            <td align="left">N33</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">payload-member-type</td>
          </tr>
          <tr>
            <td align="left">N34</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">decimal-grammar</td>
          </tr>
          <tr>
            <td align="left">N35</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">n-at-least-1</td>
          </tr>
          <tr>
            <td align="left">N36</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">timestamp-calendar</td>
          </tr>
          <tr>
            <td align="left">N37</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">timestamp-leap-second</td>
          </tr>
          <tr>
            <td align="left">N38</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">comparator-set</td>
          </tr>
          <tr>
            <td align="left">N39</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">non-empty-string</td>
          </tr>
          <tr>
            <td align="left">N40</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">payload-utf8</td>
          </tr>
          <tr>
            <td align="left">N41</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">payload-lone-surrogate</td>
          </tr>
          <tr>
            <td align="left">N42</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">payload-noncharacter</td>
          </tr>
          <tr>
            <td align="left">N43</td>
            <td align="left">4</td>
            <td align="left">FAIL</td>
            <td align="left">payload-bom</td>
          </tr>
          <tr>
            <td align="left">N44</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-utf8</td>
          </tr>
          <tr>
            <td align="left">N45</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-lone-surrogate</td>
          </tr>
          <tr>
            <td align="left">N46</td>
            <td align="left">1</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-noncharacter</td>
          </tr>
          <tr>
            <td align="left">N48</td>
            <td align="left">8</td>
            <td align="left">FAIL</td>
            <td align="left">comparator-gt</td>
          </tr>
          <tr>
            <td align="left">N49</td>
            <td align="left">8</td>
            <td align="left">FAIL</td>
            <td align="left">comparator-lt</td>
          </tr>
          <tr>
            <td align="left">N50</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">n-below-2-53</td>
          </tr>
          <tr>
            <td align="left">N51</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">ascii-digits</td>
          </tr>
          <tr>
            <td align="left">N52</td>
            <td align="left">5</td>
            <td align="left">FAIL</td>
            <td align="left">number-without-double</td>
          </tr>
          <tr>
            <td align="left">N53</td>
            <td align="left">11 (profile 1, key)</td>
            <td align="left">FAIL</td>
            <td align="left">key-before-R-rule-1</td>
          </tr>
          <tr>
            <td align="left">N54</td>
            <td align="left">11 (profile 2, key)</td>
            <td align="left">FAIL</td>
            <td align="left">key-before-R-rule-2</td>
          </tr>
          <tr>
            <td align="left">N55</td>
            <td align="left">2</td>
            <td align="left">FAIL</td>
            <td align="left">receipt-number-at-step-2</td>
          </tr>
          <tr>
            <td align="left">N56</td>
            <td align="left">5</td>
            <td align="left">FAIL</td>
            <td align="left">number-serialization</td>
          </tr>
          <tr>
            <td align="left">N57</td>
            <td align="left">7</td>
            <td align="left">FAIL</td>
            <td align="left">criteria-digest-pattern</td>
          </tr>
          <tr>
            <td align="left">N58</td>
            <td align="left">6</td>
            <td align="left">FAIL</td>
            <td align="left">criteria-digest-type</td>
          </tr>
          <tr>
            <td align="left">N59</td>
            <td align="left">11 (profile 2, R)</td>
            <td align="left">FAIL</td>
            <td align="left">mixed-order-R</td>
          </tr>
          <tr>
            <td align="left">N60</td>
            <td align="left">5</td>
            <td align="left">FAIL</td>
            <td align="left">payload-trailing-whitespace</td>
          </tr>
          <tr>
            <td align="left">N61</td>
            <td align="left">11 (profile 2, key)</td>
            <td align="left">FAIL</td>
            <td align="left">mixed-order-key</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="non-claims">
      <name>What a Receipt Does Not Prove</name>
      <t>Verification establishes that the receipt passes the format,
consistency and signature checks in <xref target="verification"/> under the Receiver's
selected key. PASS does not mean that <tt>passed</tt> is true or that the
result meets the Receiver's requirements for its intended use.
Establishing who controls that key and whether that party is
authorized to make the claim is outside this procedure. Verification
does not establish that the Issuer's claims are true. In particular:</t>
      <ul spacing="normal">
        <li>
          <t>The score can be false. The evaluation can be wrong, badly designed or not
run at all; the receipt records what the Issuer states.</t>
        </li>
        <li>
          <t>The run need not have been the only run. An Issuer can evaluate many times
and record only the run it prefers.</t>
        </li>
        <li>
          <t>The Issuer can lie. A valid signature binds the statement to the key, not to
the truth.</t>
        </li>
        <li>
          <t>A receipt does not show that it was published, logged or shown to anyone
else. A receipt does not prove registration with a Transparency Service. In
SCITT, transparency additionally requires registering a Signed Statement
carrying the receipt or its digest with a Transparency Service and verifying
the resulting SCITT Receipt. Registration and verification of the resulting
SCITT Receipt are outside this document.</t>
        </li>
        <li>
          <t>The receipt bytes are not a stable name for the receipt. Only B is signed;
the receipt object around it is not canonicalized, and its key hint can be
present or absent. A party that cites a receipt cites SHA-256 over B.</t>
        </li>
        <li>
          <t>A commitment is computationally binding under the collision resistance of
SHA-256. A Receiver can check a claimed opening only after receiving the salt
and identifier. Hiding depends on keeping an unpredictable salt secret.</t>
        </li>
        <li>
          <t>The timestamp is the Issuer's statement, not a time attested by another
party.</t>
        </li>
        <li>
          <t>The receipt says nothing about individual samples: <tt>n</tt> is the Issuer's
statement, and no sample result is committed or can be disclosed against the
receipt. A sample-level audit is outside this document and is left to a
separate document.</t>
        </li>
        <li>
          <t>A receipt does not show that the threshold was fixed before the run.</t>
        </li>
        <li>
          <t><tt>criteria_digest</tt> binds only the Issuer's statement that this result belongs
to the criteria set with that digest. It shows neither that the criteria set
existed before the run nor that the metric, comparator and threshold in it
equal those in the receipt.</t>
        </li>
        <li>
          <t>Even with salt and identifier disclosed, the receipt does not show that the
named model or dataset was the one actually evaluated.</t>
        </li>
        <li>
          <t>A receipt does not show where B came from. B carries no reference to another
receipt or record that it was made from, for example when an Issuer
translates the result of another format into a receipt; this format has no
member for it.</t>
        </li>
      </ul>
    </section>
    <section anchor="related">
      <name>Related Work</name>
      <t>The following individual drafts also define signed receipts; each sentence
states a difference in construction as read on 2026-10-25.</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.farley-acta-signed-receipts"/> records access control decisions,
serializes them with RFC 8785, makes Ed25519 mandatory to implement, permits
ES256 and recommends ML-DSA-65, and offers an optional commitment mode that
places salted field values in a Merkle tree hashed as in Certificate
Transparency (<xref target="RFC9162"/> Section 2.1.1).</t>
        </li>
        <li>
          <t><xref target="I-D.chueayen-attestation-receipts"/> defines two records signed with
Ed25519: an attestation receipt for an AI inference decision, with twelve required members, the signature
among them, three optional members and no other member; and an action record for the decision an enforcement
point takes before a proposed agent action runs, with thirteen required members and no other member, all
strings or arrays of strings. Both use a canonicalization that, by its own statement, differs from RFC 8785
only in forbidding numbers that RFC 8785 writes in exponential notation.</t>
        </li>
        <li>
          <t><xref target="I-D.marques-asqav-compliance-receipts"/> profiles action receipts with
RFC 8785, requires ML-DSA-65 for new issuance, accepts Ed25519 only under a
separately selected historical format, and requires a hash chain between
receipts.</t>
        </li>
      </ul>
      <t>None of the three, as read on that date, has a member for an evaluation
threshold. Two further individual drafts concern evaluation evidence without
defining a signed result:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.abak-ai-evaluation-claim-preservation"/> states format-neutral
requirements for converting and consuming evaluation evidence so that
claim-relevant loss stays visible; it defines no wire format, while this
document defines one signed format for one result.</t>
        </li>
        <li>
          <t><xref target="I-D.ozturk-scitt-prml-profile"/> carries pre-run evaluation criteria in the
format of <xref target="PRML"/> as a SCITT Signed Statement, in full or as the 32-octet
SHA-256 of their canonical bytes; it records criteria before a run, while a
receipt records one result after it and names such criteria at most by
<tt>criteria_digest</tt> (<xref target="criteria"/>).</t>
        </li>
      </ul>
      <t>The following individual drafts were read on 2026-10-19. The summaries
describe their scope and construction in the cited revisions and identify
differences from this document. The first three concern receipts for decisions
or actions:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.sirkkavaara-vaara-receipt"/> records decisions about autonomous actions
as allow, block or escalate, optionally with decimal-string scores and
thresholds. It authenticates an RFC 8785 encoding of a fixed set of members
with ES256 or RS256 signatures or an HS256 MAC. Its required backLink follows
the applicable profile; the initial receipt in the engine decision profile
uses the SHA-256 digest of the empty string.</t>
        </li>
        <li>
          <t><xref target="I-D.sahu-agent-action-receipts"/> records agent actions with a boolean
success member. A detached Ed25519 signature covers compact UTF-8 JSON with
signed top-level members in a fixed, non-lexicographic order; objects within
params are recursively sorted. In its receipt log, the first entry omits
prev_hash. Each later entry carries the SHA-256 digest of the preceding
serialized line, including its public key and signature but excluding its
terminating newline.</t>
        </li>
        <li>
          <t><xref target="I-D.wang-jep-receipt-profile"/> binds a JSON behavior record to an event of
the Judgment Event Protocol through a critical extension. The record
identifies an agent and an action and contains zero or more evidence
descriptors, each carrying a digest. It is addressed by SHA-256 over its RFC
8785 serialization. The profile defines no independent signature format and
leaves signature processing to that protocol.</t>
        </li>
      </ul>
      <t>Among these three revisions, Vaara explicitly defines optional thresholdAllow
and thresholdBlock members for decision scores. This document requires score,
comparator, threshold and passed for an evaluation result and checks their
consistency using exact decimal comparison. That check does not establish that
the reported score is correct. Three further individual drafts concern
evaluation or measurement records:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="I-D.watts-agent-evidence-boundary"/> defines an Evidence Qualification
Receipt that binds an exact proposition digest to a versioned
evidence-requirements profile, evidence digests and one of three evaluation
results, PASS, FAIL or INDETERMINATE, as one input to an authorization
system; it defines no signature format and requires a receipt exchanged
between domains to be integrity protected by a mechanism acceptable to the
verifier, while this document defines the signature of a receipt.</t>
        </li>
        <li>
          <t><xref target="I-D.watts-scientific-admissibility-evidence"/> describes a JSON evidence
record whose members include a preregistered decision procedure and an
admissibility evaluation of binding gate results, serializes the core of
each event with RFC 8785 before hashing when an event digest is used, and
requires every event but the first to reference the digest of the
preceding one; it names SHA-256 and Ed25519 only for profiles that use
them, while this document fixes both for every receipt.</t>
        </li>
        <li>
          <t><xref target="I-D.templeman-scitt-measurement-capsule"/> defines capsules that compare
declarations with observations, carry no decision and distinguish UNCHECKABLE
from pass or failure. Self-measurement is permitted. A capsule's identifier is
SHA-256 over its RFC 8785 serialization with capsule_id omitted; batches use
an RFC 9162 Merkle Tree Hash over those identifiers. The profile describes
COSE_Sign1 registration of a capsule, batch record or index. The draft reports
comparisons with evaluation reruns but states that its implementation does not
yet encode COSE and has made no SCITT registration. This document instead
fixes a signed format for one Issuer-reported evaluation result and defines no
SCITT registration profile.</t>
        </li>
      </ul>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>This section follows the guidance of <xref target="RFC3552"/>. The attacker considered can
read, create, modify, replay and reorder receipts, and controls every input
except the Receiver's choice of verification key.</t>
      <t>Forgery. Without the secret key an attacker cannot produce a receipt that
verifies under the Receiver's key, given the security of Ed25519. The Receiver
fixes the key out of band; a key carried in the receipt is only compared with
it and never used on its own. A Receiver that took the key from the receipt
would accept any receipt from anyone.</t>
      <t>Domain separation. The signature covers PAE(type, B), not B alone. A signature
made by the same key for another purpose over the same bytes, or over the same
bytes under another type, does not verify as a receipt, and a receipt
signature does not verify as a signature over B in another protocol that also
signs with PAE under a different type. The type is fixed (<xref target="type"/>) so that
this separation does not depend on a value the attacker controls.</t>
      <t>Ambiguous bytes. Duplicate member names (also when they differ only in
escapes), trailing data, a byte order mark, surrogate or noncharacter code
points, non-canonical base64 and payload bytes that are not their own RFC 8785
form, for example a number written as <tt>1800.0</tt>, would let two parsers see different
content behind one signature. The procedure of <xref target="verification"/> rejects each
of them, so that one B has one meaning. The receipt object around B is not
canonical and not signed (<xref target="non-claims"/>).</t>
      <t>Ed25519 edge cases. Implementations of Ed25519 differ in whether they accept a
non-reduced S, non-canonical point encodings, points of small or mixed order, and whether
they use the cofactored or the cofactorless equation <xref target="TAMING"/>. A receipt
format whose verdict depends on the library would let one Receiver accept what
another rejects. The profile of <xref target="profile"/> fixes each choice. Vector N12 shows
why rule 2 refuses points of small order: with the neutral element as
verification key, <tt>R = S*B'</tt> satisfies the cofactorless equation for every
message. N61 and N59 show why rule 2 requires order L: under a key or with an R
of mixed order the cofactored and the cofactorless equation can disagree
(N59), and a verifier that does not check the order accepts N61 under either
equation. In the measurements of <xref target="impl"/>, the plain Ed25519 verification of
a general library accepted the signatures of vectors N12, N16, N18 and N61
and rejected those of N6, N17 and N59; the profile of <xref target="profile"/> rejects
all seven. A Receiver that relies on
a library verdict alone therefore does not implement this format.</t>
      <t>Resource limits. This document defines no universal input-size limit.
Oversized inputs, long strings and deeply nested invalid JSON can exhaust
memory or processing time before verification completes. Implementations
<bcp14>SHOULD</bcp14> apply documented resource limits before and during processing of
untrusted input. Reaching a limit <bcp14>MUST NOT</bcp14> produce PASS and is reported as a
resource-limit error, not as a completed format or signature verdict under
<xref target="verification"/>.</t>
      <t>Commitments. A commitment with a short or guessable salt can be tested against
candidate identifiers. The salt is therefore 16 bytes from a cryptographically
secure source and stays with the Issuer.</t>
      <t>Criteria digest. <tt>criteria_digest</tt> binds the bytes of a criteria set, not a
time. Whoever wants to show that the criteria set existed before the run needs
an anchor outside the receipt, for example the digest of the criteria set
registered with a Transparency Service before the run began. The member also
carries weight only when the Receiver compares it with bytes of the criteria
set that it obtained independently of the state it checks: criteria bytes
taken from the same place as the result can have been changed together with
it, and their digest then matches.</t>
      <t>Replay. A receipt is a static statement, not an authentication token. Showing a
valid receipt proves nothing about the party that shows it.</t>
      <t>Key compromise. A compromised key can sign receipts with any content. This
document defines no revocation; a Receiver that needs it uses means outside this
document.</t>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Model and dataset identifiers appear only as salted commitments. Reusing the
same salt and identifier produces the same commitment across receipts. Fresh
salts avoid this equality link but do not make receipts unlinkable, because
verification keys and other shared values may still link them: identical
suite, metric and timestamp values link receipts, and so does the same
<tt>criteria_digest</tt>. Disclosing salt and identifier to one Receiver discloses
them to everyone that Receiver passes them on to.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions. Registering the media type of
<xref target="iana-media-type"/> in the vendor tree goes directly to IANA (<xref target="RFC6838"/>
Section 3.2) and is not an action of this document.</t>
      <section anchor="iana-media-type">
        <name>Media Type Registration Template</name>
        <t>The following template for application/vnd.signed-evidence.eval-receipt+json
is the one for its registration in the vendor tree; it is given for
information.</t>
        <t>This media type identifies the canonical payload bytes B defined in <xref target="bytes"/>.
It does not identify the receipt object of <xref target="receipt-object"/>, which may be
transferred as application/json. The receipt object's schema member remains the
fixed format discriminator defined in <xref target="type"/>.</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>vnd.signed-evidence.eval-receipt+json</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>Binary. The representation is B, a UTF-8 JSON text in the canonical form
defined in <xref target="bytes"/>, without a byte order mark.</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>B is data and contains no active content:
it carries no directive and nothing a recipient executes. B is
not compressed. A receipt that carries B gives integrity and
origin of B only under a key the Receiver fixed before
verification, and only with the procedure of <xref target="verification"/>; a key
named in the receipt is never used on its own. B gives no
confidentiality: its members are readable by anyone who holds
it, and model and dataset identifiers appear in it only as
salted commitments (<xref target="commitments"/>, <xref target="privacy"/>). Parsing untrusted
input needs documented resource limits; reaching a limit is
not a verdict. See <xref target="security"/> of this document and <xref target="RFC8259"/>
Section 12.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>When the verification-key input is 32 octets and processing completes without a resource-limit error, the procedure of
<xref target="verification"/> and the signature profile of <xref target="profile"/> determine the
verdict and first failing step on the vectors of <xref target="vectors"/>. The type string enters
every signature (<xref target="type"/>).</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>This document.</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Issuers and Receivers of evaluation payloads, including DSSE envelopes that
carry B and digest references that identify B.</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>As specified for the <tt>+json</tt> structured syntax suffix in <xref target="RFC6839"/>
Section 3.1. This document defines no fragment identifier of its own.</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <t>Deprecated alias names for this type: N/A. Magic number(s): N/A. File
extension(s): N/A. Macintosh file type code(s): N/A.</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>Konrad Gruszka &lt;kontakt@b7n0de.com&gt;</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>Konrad Gruszka</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>Konrad Gruszka &lt;kontakt@b7n0de.com&gt;</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="impl">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations at the time of
writing, following <xref target="RFC7942"/>, and is to be removed before publication.</t>
      <t>The vectors of <xref target="vectors"/> were produced by a generator script whose two runs
are byte-identical, and verified by two verifiers: one written by the author of
the generator, and one written from the text of this document alone, without
access to the generator. Both verifiers reach the expected verdict and the expected first failing step
on every vector. An implementation of this format in the proofbundle project, behind an
explicit option and with these vectors as conformance tests, is under way on a
work branch and not released. The show-eval command of that implementation
with --expect-issuer refuses a verification key whose y-coordinate is not
below p or that is a point of small order, as in vectors N12, N18, N53 and N54,
before starting the receipt verification procedure, with exit status 2. The
receipt verification function reads the receipt first. It refuses a key of
mixed order, as in N61, at step 11. The early refusals are checks the command makes before the procedure runs; under <xref target="verification"/>, a 32-octet key of these kinds is not an input error, and the procedure gives FAIL unless it stops at a resource limit.</t>
      <t>On 2026-10-12, the implementation named above, at commit
a339424e07fd58fa261d8ca3f41af5de4dcbf751 of its work branch, was run on the 66
vectors of <xref target="vectors"/> with the bytes given there, and for each vector its
verdict and first failing step were compared with the expected ones: it reached
the expected verdict and the expected first failing step on all 66 vectors. A
further verifier, written from the published text of this document alone,
agreed with the verifier written by the author of the generator on the verdict
and the first failing step of each of the 66 vectors, on 23000
targeted inputs across all eleven steps and on 4002 serializations of numbers
by <xref target="RFC8785"/>, with no deviation on these inputs (measured on 2026-10-11).</t>
      <t>In the measurements behind <xref target="vectors"/>, the plain Ed25519 verification of
pyca/cryptography 41.0.7 accepted the signatures of vectors N12 (small-order
key), N16 (small-order R), N18 (non-canonical key) and N61 (mixed-order key),
and rejected those of N6 (S not below L), N17 (non-canonical R) and N59
(mixed-order R).</t>
      <t>In a local measurement on 2026-10-10, a receipt made from the result of a test
run was checked by the implementation named above and by the verifier written
from the text of this document alone. Both passed it, and both refused the
same receipt with one byte of B changed, at step 11.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
        </reference>
        <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author initials="S." surname="Josefsson">
              <organization/>
            </author>
            <author initials="I." surname="Liusvaara">
              <organization/>
            </author>
            <date year="2017" month="January"/>
          </front>
          <seriesInfo name="RFC" value="8032"/>
        </reference>
        <reference anchor="RFC6234" target="https://www.rfc-editor.org/info/rfc6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author initials="D." surname="Eastlake 3rd">
              <organization/>
            </author>
            <author initials="T." surname="Hansen">
              <organization/>
            </author>
            <date year="2011" month="May"/>
          </front>
          <seriesInfo name="RFC" value="6234"/>
        </reference>
        <reference anchor="RFC8785" target="https://www.rfc-editor.org/info/rfc8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author initials="A." surname="Rundgren">
              <organization/>
            </author>
            <author initials="B." surname="Jordan">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman">
              <organization/>
            </author>
            <date year="2020" month="June"/>
          </front>
          <seriesInfo name="RFC" value="8785"/>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date year="2006" month="October"/>
          </front>
          <seriesInfo name="RFC" value="4648"/>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author initials="T." surname="Bray" role="editor">
              <organization/>
            </author>
            <date year="2017" month="December"/>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
        </reference>
        <reference anchor="RFC7493" target="https://www.rfc-editor.org/info/rfc7493">
          <front>
            <title>The I-JSON Message Format</title>
            <author initials="T." surname="Bray" role="editor">
              <organization/>
            </author>
            <date year="2015" month="March"/>
          </front>
          <seriesInfo name="RFC" value="7493"/>
        </reference>
        <reference anchor="RFC3339" target="https://www.rfc-editor.org/info/rfc3339">
          <front>
            <title>Date and Time on the Internet: Timestamps</title>
            <author initials="G." surname="Klyne">
              <organization/>
            </author>
            <author initials="C." surname="Newman">
              <organization/>
            </author>
            <date year="2002" month="July"/>
          </front>
          <seriesInfo name="RFC" value="3339"/>
        </reference>
        <reference anchor="RFC6838" target="https://www.rfc-editor.org/info/rfc6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author initials="N." surname="Freed">
              <organization/>
            </author>
            <author initials="J." surname="Klensin">
              <organization/>
            </author>
            <author initials="T." surname="Hansen">
              <organization/>
            </author>
            <date year="2013" month="January"/>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
        </reference>
        <reference anchor="RFC6839" target="https://www.rfc-editor.org/info/rfc6839">
          <front>
            <title>Additional Media Type Structured Syntax Suffixes</title>
            <author initials="T." surname="Hansen">
              <organization/>
            </author>
            <author initials="A." surname="Melnikov">
              <organization/>
            </author>
            <date year="2013" month="January"/>
          </front>
          <seriesInfo name="RFC" value="6839"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9943" target="https://www.rfc-editor.org/info/rfc9943">
          <front>
            <title>An Architecture for Trustworthy and Transparent Digital Supply Chains</title>
            <author initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author initials="A." surname="Delignat-Lavaud">
              <organization/>
            </author>
            <author initials="C." surname="Fournet">
              <organization/>
            </author>
            <author initials="Y." surname="Deshpande">
              <organization/>
            </author>
            <author initials="S." surname="Lasker">
              <organization/>
            </author>
            <date year="2026" month="June"/>
          </front>
          <seriesInfo name="RFC" value="9943"/>
        </reference>
        <reference anchor="RFC3552" target="https://www.rfc-editor.org/info/rfc3552">
          <front>
            <title>Guidelines for Writing RFC Text on Security Considerations</title>
            <author initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author initials="B." surname="Korver">
              <organization/>
            </author>
            <date year="2003" month="July"/>
          </front>
          <seriesInfo name="BCP" value="72"/>
          <seriesInfo name="RFC" value="3552"/>
        </reference>
        <reference anchor="RFC9162" target="https://www.rfc-editor.org/info/rfc9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author initials="B." surname="Laurie">
              <organization/>
            </author>
            <author initials="E." surname="Messeri">
              <organization/>
            </author>
            <author initials="R." surname="Stradling">
              <organization/>
            </author>
            <date year="2021" month="December"/>
          </front>
          <seriesInfo name="RFC" value="9162"/>
        </reference>
        <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author initials="Y." surname="Sheffer">
              <organization/>
            </author>
            <author initials="A." surname="Farrel">
              <organization/>
            </author>
            <date year="2016" month="July"/>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
        </reference>
        <reference anchor="DSSE" target="https://github.com/secure-systems-lab/dsse/blob/v1.0.2/protocol.md">
          <front>
            <title>DSSE: Dead Simple Signing Envelope, protocol specification, version 1.0.2</title>
            <author>
              <organization>Secure Systems Lab</organization>
            </author>
            <date year="2024" month="May" day="28"/>
          </front>
        </reference>
        <reference anchor="TAMING" target="https://eprint.iacr.org/2020/1244">
          <front>
            <title>Taming the Many EdDSAs</title>
            <author initials="K." surname="Chalkias">
              <organization/>
            </author>
            <author initials="F." surname="Garillot">
              <organization/>
            </author>
            <author initials="V." surname="Nikolaenko">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Security Standardisation Research (SSR 2020), LNCS" value="12529"/>
        </reference>
        <reference anchor="I-D.farley-acta-signed-receipts" target="https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/03/">
          <front>
            <title>Signed Decision Receipts for Machine-to-Machine Access Control</title>
            <author initials="T." surname="Farley">
              <organization/>
            </author>
            <date year="2026" month="August" day="29"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-farley-acta-signed-receipts-03"/>
        </reference>
        <reference anchor="I-D.chueayen-attestation-receipts" target="https://datatracker.ietf.org/doc/draft-chueayen-attestation-receipts/05/">
          <front>
            <title>Enforcement Attestation Receipts for AI Inference and Agent Action Decisions</title>
            <author initials="A." surname="Chueayen">
              <organization/>
            </author>
            <date year="2026" month="October" day="25"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-chueayen-attestation-receipts-05"/>
        </reference>
        <reference anchor="I-D.marques-asqav-compliance-receipts" target="https://datatracker.ietf.org/doc/draft-marques-asqav-compliance-receipts/09/">
          <front>
            <title>Compliance Profile of Signed Action Receipts for AI Agents</title>
            <author initials="J. A." surname="Gomes Marques">
              <organization/>
            </author>
            <date year="2026" month="September" day="21"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-marques-asqav-compliance-receipts-09"/>
        </reference>
        <reference anchor="I-D.abak-ai-evaluation-claim-preservation" target="https://datatracker.ietf.org/doc/draft-abak-ai-evaluation-claim-preservation/00/">
          <front>
            <title>Claim-Preserving Exchange of AI Evaluation Evidence</title>
            <author initials="A. T." surname="Abak">
              <organization/>
            </author>
            <date year="2026" month="September" day="23"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-abak-ai-evaluation-claim-preservation-00"/>
        </reference>
        <reference anchor="I-D.ozturk-scitt-prml-profile" target="https://datatracker.ietf.org/doc/draft-ozturk-scitt-prml-profile/00/">
          <front>
            <title>A SCITT Profile for Pre-Run Evaluation Criteria (PRML)</title>
            <author initials="C." surname="Öztürk">
              <organization/>
            </author>
            <date year="2026" month="September" day="11"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ozturk-scitt-prml-profile-00"/>
        </reference>
        <reference anchor="I-D.sirkkavaara-vaara-receipt" target="https://datatracker.ietf.org/doc/draft-sirkkavaara-vaara-receipt/14/">
          <front>
            <title>The Vaara Receipt: A Recomputable Receipt Format for Decisions About Autonomous Actions</title>
            <author initials="H." surname="Sirkkavaara">
              <organization/>
            </author>
            <date year="2026" month="October" day="15"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sirkkavaara-vaara-receipt-14"/>
        </reference>
        <reference anchor="I-D.sahu-agent-action-receipts" target="https://datatracker.ietf.org/doc/draft-sahu-agent-action-receipts/00/">
          <front>
            <title>Signed, Hash-Chained Action Receipts for AI Agents</title>
            <author initials="N." surname="Sahu">
              <organization/>
            </author>
            <date year="2026" month="August" day="16"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-sahu-agent-action-receipts-00"/>
        </reference>
        <reference anchor="I-D.wang-jep-receipt-profile" target="https://datatracker.ietf.org/doc/draft-wang-jep-receipt-profile/01/">
          <front>
            <title>JEP Receipt Profile: Verifiable Behavior and Evidence Receipts</title>
            <author initials="Y." surname="Wang">
              <organization/>
            </author>
            <date year="2026" month="October" day="05"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wang-jep-receipt-profile-01"/>
        </reference>
        <reference anchor="I-D.watts-agent-evidence-boundary" target="https://datatracker.ietf.org/doc/draft-watts-agent-evidence-boundary/00/">
          <front>
            <title>Evidence-Bounded Authorization for Agentic Systems: Evidence Qualification Receipts</title>
            <author initials="D." surname="Watts">
              <organization/>
            </author>
            <date year="2026" month="September" day="12"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-watts-agent-evidence-boundary-00"/>
        </reference>
        <reference anchor="I-D.watts-scientific-admissibility-evidence" target="https://datatracker.ietf.org/doc/draft-watts-scientific-admissibility-evidence/00/">
          <front>
            <title>Scientific Admissibility Evidence Records for Verifiable Research Provenance</title>
            <author initials="D." surname="Watts">
              <organization/>
            </author>
            <date year="2026" month="September" day="01"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-watts-scientific-admissibility-evidence-00"/>
        </reference>
        <reference anchor="I-D.templeman-scitt-measurement-capsule" target="https://datatracker.ietf.org/doc/draft-templeman-scitt-measurement-capsule/00/">
          <front>
            <title>Declared-versus-Observed Measurement Capsules: A Profile for Third-Party Measurement Statements in SCITT</title>
            <author initials="N." surname="Templeman">
              <organization/>
            </author>
            <date year="2026" month="September" day="27"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-templeman-scitt-measurement-capsule-00"/>
        </reference>
        <reference anchor="PRML" target="https://spec.falsify.dev/v0.1">
          <front>
            <title>PRML: Pre-Registered ML Manifest Specification, Version 0.1</title>
            <author initials="C." surname="Öztürk" role="editor">
              <organization/>
            </author>
            <date year="2026" month="May" day="01"/>
          </front>
        </reference>
      </references>
    </references>

<section anchor="vectors">
      <name>Test Vectors</name>
      <t>Vector identifiers are labels: a P vector expects PASS, an N vector expects FAIL,
and gaps in the numbering carry no meaning.</t>
      <t>The vector set has 66 vectors, those of Table 2 (<xref target="verification"/>). <xref target="vector-set"/> gives ten of them in full; the file of <xref target="vector-file"/> holds all of them. A verifier needs only the bytes of a vector and the verification key named for it.</t>
      <section anchor="constants-and-test-material">
        <name>Constants and Test Material</name>
        <t>Receipt schema, also the type of <xref target="type"/>:</t>
        <artwork><![CDATA[
application/vnd.signed-evidence.eval-receipt+json
]]></artwork>
        <t>Payload schema:</t>
        <artwork><![CDATA[
https://signed-evidence.org/eval-receipt/v1
]]></artwork>
        <t>commit_alg:</t>
        <artwork><![CDATA[
sha256-salted-v1
]]></artwork>
        <t>PURE TEST KEYS AND SALTS. They <bcp14>MUST NOT</bcp14> be used for any real receipt.</t>
        <t>Issuer test key, Ed25519 seed (hex, 32 bytes) and public key (base64, 32 bytes):</t>
        <artwork><![CDATA[
2365520410748de8778b544410b15792fcf174e0fba4806a8c1afbdbb0946b07
x7ppA99DtumHO/Au0M/gumSK8IwCzNwPiID92BSFbak=
]]></artwork>
        <t>Second test key, used only as a wrong hint, Ed25519 seed (hex, 32 bytes) and public key (base64, 32 bytes):</t>
        <artwork><![CDATA[
1497efc27315bf3c5fbfa514c8761efa81b669f0b354dd22b762be7209da3b6a
tvFn0pKiOvm4eNHsrH3T6OsiYk7X0aMfy60UyuObvMQ=
]]></artwork>
        <t>Mixed-order test key, used only by vector N61: the public point of the issuer test key plus a point of order 8. It has no RFC 8032 seed; the discrete logarithm of its prime-order part is the secret scalar of the issuer test key. The point of order 8, which vector N59 also adds to its R (hex, 32 bytes), and the public key (base64, 32 bytes):</t>
        <artwork><![CDATA[
c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a
JBz17qgxoLE067Bf5k3hKZ6Pfmfx/iD8IEaped1NGoM=
]]></artwork>
        <t>The model commitment: salt (hex, 16 bytes), identifier, commitment:</t>
        <artwork><![CDATA[
2d1845bc523b3c2635ab90af343f33eb
acme/model-x@2026-09
sha256:904de42562f9a19651e19eb7ab165e4ffe114ce5a2f98e57da5838959684fb0f
]]></artwork>
        <t>The dataset commitment: salt (hex, 16 bytes), identifier, commitment:</t>
        <artwork><![CDATA[
6233feb59b670c391abeed0a61973c40
acme/suite-data@v3
sha256:a21ba4d96c803d4263dd3d2161bc039a30f4462bd59470e31ba5a9ab0a9b3b63
]]></artwork>
        <t>The example criteria set of vectors P10 and N57: its bytes (hex), and criteria_digest over them:</t>
        <artwork><![CDATA[
7b22636f6d70617261746f72223a223e3d222c226d6574726963223a22616363
7572616379222c227375697465223a2261636d652d7361666574792d73756974
65222c227468726573686f6c64223a22302e383030227d0a
sha256:7ccedb152aba3740dcde20e4f4014e2875b863ed4a4062879558bf78df9ce41a
]]></artwork>
      </section>
      <section anchor="vector-set">
        <name>Vector Set</name>
        <t>The ten vectors below are P1, P2, P4, P6, N5, N7, N12, N13, N14 and N59. Where the payload bytes of a vector are those of P1, their hex is not repeated: the list item gives their size and SHA-256, and the bytes are B of P1.</t>
        <section anchor="p1-pass-expected-pass-step-all">
          <name>P1 (pass; expected PASS, step all)</name>
          <t>A well-formed receipt: the signature over PAE(TYPE, B) verifies under
the verification key, the commitments have the fixed pattern, and passed
= true agrees with score &gt;= threshold.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 02036d1f57509858330383755ec16c532bdc58b0f2d949464488d57abc9f95e7</t>
            </li>
          </ul>
          <t>B (hex):</t>
          <artwork><![CDATA[
7b22636f6d6d69745f616c67223a227368613235362d73616c7465642d763122
2c22636f6d70617261746f72223a223e3d222c22646174617365745f69645f63
6f6d6d6974223a227368613235363a6132316261346439366338303364343236
3364643364323136316263303339613330663434363262643539343730653331
626135613961623061396233623633222c226d6574726963223a226163637572
616379222c226d6f64656c5f69645f636f6d6d6974223a227368613235363a39
3034646534323536326639613139363531653139656237616231363565346666
6531313463653561326639386535376461353833383935393638346662306622
2c226e223a313830302c22706173736564223a747275652c22736368656d6122
3a2268747470733a2f2f7369676e65642d65766964656e63652e6f72672f6576
616c2d726563656970742f7631222c2273636f7265223a22302e383334222c22
7375697465223a2261636d652d7361666574792d7375697465222c2273756974
655f76657273696f6e223a22312e322e30222c227468726573686f6c64223a22
302e383030222c2274696d657374616d70223a22323032362d31302d30325430
303a30303a30305a227d
]]></artwork>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a22434247744e323639464f68505372357865307a6c
4a4753424e427a47696e457a38693031664d36312b4a4e614a50646e5a793148
626f596934656d686d384b5a715055337973546d726d434578537653786f637a
42413d3d227d7d
]]></artwork>
        </section>
        <section anchor="p2-recorded-failure-expected-pass-step-all">
          <name>P2 (recorded-failure; expected PASS, step all)</name>
          <t>A recorded failure (score below the threshold, passed = false) verifies
exactly like a recorded success.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 459 bytes, SHA-256 07182e9bff69baa8ab9a5646d69b5118ccf3780b903b9a9d5b4bd0d9c9d70b87</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 2405d1783d1803ddea207c027622fba40b3e82161686505ee96988e306e17278</t>
            </li>
          </ul>
          <t>B (hex):</t>
          <artwork><![CDATA[
7b22636f6d6d69745f616c67223a227368613235362d73616c7465642d763122
2c22636f6d70617261746f72223a223e3d222c22646174617365745f69645f63
6f6d6d6974223a227368613235363a6132316261346439366338303364343236
3364643364323136316263303339613330663434363262643539343730653331
626135613961623061396233623633222c226d6574726963223a226163637572
616379222c226d6f64656c5f69645f636f6d6d6974223a227368613235363a39
3034646534323536326639613139363531653139656237616231363565346666
6531313463653561326639386535376461353833383935393638346662306622
2c226e223a313830302c22706173736564223a66616c73652c22736368656d61
223a2268747470733a2f2f7369676e65642d65766964656e63652e6f72672f65
76616c2d726563656970742f7631222c2273636f7265223a22302e373632222c
227375697465223a2261636d652d7361666574792d7375697465222c22737569
74655f76657273696f6e223a22312e322e30222c227468726573686f6c64223a
22302e383030222c2274696d657374616d70223a22323032362d31302d303254
30303a30303a30305a227d
]]></artwork>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a706d
5957787a5a53776963324e6f5a573168496a6f696148523063484d364c79397a
615764755a5751745a585a705a4756755932557562334a6e4c32563259577774
636d566a5a576c77644339324d534973496e4e6a62334a6c496a6f694d433433
4e6a49694c434a7a64576c305a534936496d466a625755746332466d5a585235
4c584e316158526c496977696333567064475666646d567963326c7662694936
496a45754d69347749697769644768795a584e6f6232786b496a6f694d433434
4d4441694c434a306157316c63335268625841694f6949794d4449324c544577
4c544179564441774f6a41774f6a417757694a39222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a226c4e61433357554f6c4566486b676c646e576266
31756e6b6a655a49677057325856306d6c31416953356e647975312b79525578
4b3070673435304b2b66387058794156477631326a4a427471546677587a4873
44773d3d227d7d
]]></artwork>
        </section>
        <section anchor="p4-escaped-receipt-string-expected-pass-step-all">
          <name>P4 (escaped-receipt-string; expected PASS, step all)</name>
          <t>The receipt writes the schema with the JSON escape \/ for each solidus;
compared after unescaping it is the receipt media type. The receipt
object is not canonicalized.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 872 bytes, SHA-256 c2a7943f0ea3de6e9da88c11925b1e112d32f697a403f07fcfbc3776bca10e72</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e5c2f766e642e7369676e65642d65766964656e6365
2e6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a
7b22616c67223a2265643235353139222c226b6579223a227837707041393944
74756d484f2f4175304d2f67756d534b384977437a4e77506949443932425346
62616b3d222c22736967223a22434247744e323639464f68505372357865307a
6c4a4753424e427a47696e457a38693031664d36312b4a4e614a50646e5a7931
48626f596934656d686d384b5a715055337973546d726d434578537653786f63
7a42413d3d227d7d
]]></artwork>
        </section>
        <section anchor="p6-no-key-hint-expected-pass-step-all">
          <name>P6 (no-key-hint; expected PASS, step all)</name>
          <t>The signature object has exactly alg and sig, without a key hint; step
10 has nothing to compare.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 818 bytes, SHA-256 2c8144d50b4cc42a712d84e4d0417e52b0d8cbc484ad8e6d8d4b36a429b94ec1</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c22736967223a22434247744e32363946
4f68505372357865307a6c4a4753424e427a47696e457a38693031664d36312b
4a4e614a50646e5a793148626f596934656d686d384b5a715055337973546d72
6d434578537653786f637a42413d3d227d7d
]]></artwork>
        </section>
        <section anchor="n5-jcs-form-expected-fail-step-5">
          <name>N5 (jcs-form; expected FAIL, step 5)</name>
          <t>The payload bytes are a valid JSON text of the same object but not its
own RFC 8785 form (insignificant whitespace, member order).</t>
          <t>Note: the signature over these bytes is valid; re-serializing the parsed
payload gives other bytes.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 498 bytes, SHA-256 fa97d7e9e6e2560d3025761ebfbae46635427dd2856b8c9b965679456cef2318</t>
            </li>
            <li>
              <t>receipt bytes: 923 bytes, SHA-256 f4573f3c66570e347f4fa305b61cd189211824d9c02c603942766ff082c391c4</t>
            </li>
          </ul>
          <t>B (hex):</t>
          <artwork><![CDATA[
7b0a2022736368656d61223a202268747470733a2f2f7369676e65642d657669
64656e63652e6f72672f6576616c2d726563656970742f7631222c0a20227375
697465223a202261636d652d7361666574792d7375697465222c0a2022737569
74655f76657273696f6e223a2022312e322e30222c0a20226d6574726963223a
20226163637572616379222c0a2022636f6d70617261746f72223a20223e3d22
2c0a20227468726573686f6c64223a2022302e383030222c0a202273636f7265
223a2022302e383334222c0a2022706173736564223a20747275652c0a20226e
223a20313830302c0a20226d6f64656c5f69645f636f6d6d6974223a20227368
613235363a393034646534323536326639613139363531653139656237616231
3635653466666531313463653561326639386535376461353833383935393638
3466623066222c0a2022646174617365745f69645f636f6d6d6974223a202273
68613235363a6132316261346439366338303364343236336464336432313631
6263303339613330663434363262643539343730653331626135613961623061
396233623633222c0a2022636f6d6d69745f616c67223a20227368613235362d
73616c7465642d7631222c0a202274696d657374616d70223a2022323032362d
31302d30325430303a30303a30305a220a7d
]]></artwork>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265776f67496e4e6a6147567459534936
49434a6f64485277637a6f764c334e705a32356c5a43316c646d6c6b5a57356a
5a533576636d63765a585a68624331795a574e6c615842304c3359784969774b
49434a7a64576c305a53493649434a685932316c4c584e685a6d56306553317a
64576c305a534973436941696333567064475666646d567963326c7662694936
494349784c6a49754d4349734369416962575630636d6c6a496a6f67496d466a
5933567959574e354969774b49434a6a6232317759584a6864473979496a6f67
496a34394969774b49434a3061484a6c63326876624751694f6941694d433434
4d4441694c416f67496e4e6a62334a6c496a6f67496a41754f444d304969774b
49434a7759584e7a5a5751694f694230636e566c4c416f67496d34694f694178
4f4441774c416f67496d31765a47567358326c6b58324e766257317064434936
49434a7a614745794e5459364f5441305a4755304d6a55324d6d593559544535
4e6a55785a5445355a574933595749784e6a566c4e475a6d5a5445784e474e6c
4e5745795a6a6b345a5455335a4745314f444d344f5455354e6a67305a6d4977
5a694973436941695a47463059584e6c644639705a46396a6232317461585169
4f694169633268684d6a55324f6d45794d574a684e4751354e6d4d344d444e6b
4e4449324d32526b4d3251794d545978596d4d774d7a6c684d7a426d4e445132
4d6d4a6b4e546b304e7a426c4d7a4669595456684f5746694d474535596a4e69
4e6a4d694c416f67496d4e766257317064463968624763694f69416963326868
4d6a55324c584e686248526c5a4331324d5349734369416964476c745a584e30
59573177496a6f67496a49774d6a59744d5441744d444a554d4441364d444136
4d44426149677039222c22736368656d61223a226170706c69636174696f6e2f
766e642e7369676e65642d65766964656e63652e6576616c2d72656365697074
2b6a736f6e222c227369676e6174757265223a7b22616c67223a226564323535
3139222c226b6579223a22783770704139394474756d484f2f4175304d2f6775
6d534b384977437a4e7750694944393242534662616b3d222c22736967223a22
745a4e2f5145764a714d50596169426d6f4663346d34683572374e4d77474138
4f55556e70526531462f6153424d4e6766754d556c31456f6746655151315878
4379304f4855714159436d733372672b6d59597142413d3d227d7d
]]></artwork>
        </section>
        <section anchor="n7-pae-type-expected-fail-step-11-profile-4">
          <name>N7 (pae-type; expected FAIL, step 11 (profile 4))</name>
          <t>The signature was made over PAE with a different type string; under the
fixed type it does not verify.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 18b1b6dc631cf0f00d8b0d2c237b28a67b12c2d7088ae0313a2fb27760f96bdd</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a224e66464c314f4b356b3374784951424459695956
6d71746d50303668533269434777736e573142637376727953646d2f49703463
5542546e61384a30646a6f57664658346659494c51686231654e6a6b7339436c
42513d3d227d7d
]]></artwork>
        </section>
        <section anchor="n12-small-order-key-expected-fail-step-11-profile-2-key">
          <name>N12 (small-order-key; expected FAIL, step 11 (profile 2, key))</name>
          <t>The verification key is the neutral element (a point of small order).
The signature R || S with R = S*B' satisfies the cofactorless equation
for any message under that key; the profile rejects small-order keys.</t>
          <t>Note: the receiver fixed this key; the vector shows why the profile
refuses it.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the neutral element, canonical encoding (01 followed by 31 zero bytes)</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 19d798c4199635a8bc637e09466633a270f1502ce5f802e57908a063443b3e60</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22415141414141414141
4141414141414141414141414141414141414141414141414141414141414141
41413d222c22736967223a22466233322f334579647a382b78377242636e2f42
777657366d4b64574f58492f614f566b327331572f2f3248596f68534d567536
61663049746d4f7052654d627a377473396c5645356f55587a3338786c537079
43773d3d227d7d
]]></artwork>
        </section>
        <section anchor="n13-canonical-base64-expected-fail-step-3">
          <name>N13 (canonical-base64; expected FAIL, step 3)</name>
          <t>payload_b64 decodes to the same B but is not its canonical base64
encoding (non-zero padding bits, RFC 4648 Section 3.5).</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes carried (not B: the procedure stops at step 3 before it obtains B): 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 31a34194edd90bade6568a3cb00dbb983dabab9efccfd7a8b38650bd3e8d5201</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e313d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a22434247744e323639464f68505372357865307a6c
4a4753424e427a47696e457a38693031664d36312b4a4e614a50646e5a793148
626f596934656d686d384b5a715055337973546d726d434578537653786f637a
42413d3d227d7d
]]></artwork>
        </section>
        <section anchor="n14-receipt-duplicate-names-expected-fail-step-1">
          <name>N14 (receipt-duplicate-names; expected FAIL, step 1)</name>
          <t>The signature object repeats the member name "sig"; a parser that keeps
the last value and one that keeps the first disagree.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes carried (not B: the procedure stops at step 1 before it obtains B): 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 968 bytes, SHA-256 8966f27c5f2566d986b0ab7821060ea0c901504fe984d450dfc7f8ca7d1c27e1</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a224141414141414141414141414141414141414141
4141414141414141414141414141414141414141414141414141414141414141
4141414141414141414141414141414141414141414141414141414141414141
41413d3d222c22736967223a22434247744e323639464f68505372357865307a
6c4a4753424e427a47696e457a38693031664d36312b4a4e614a50646e5a7931
48626f596934656d686d384b5a715055337973546d726d434578537653786f63
7a42413d3d227d7d
]]></artwork>
        </section>
        <section anchor="n59-mixed-order-r-expected-fail-step-11-profile-2-r">
          <name>N59 (mixed-order-R; expected FAIL, step 11 (profile 2, R))</name>
          <t>R is the point r*B' plus the point of order 8, a canonical encoding of
a point of mixed order, and S = r + k*a mod L with the issuer's secret
scalar a. The cofactored equation 8*S*B' = 8*R + 8*k*A holds and
the cofactorless equation does not; rule 2 rejects R before rule 4 is
reached.</t>
          <ul spacing="normal">
            <li>
              <t>verification key: the issuer test key</t>
            </li>
            <li>
              <t>payload bytes B: 458 bytes, SHA-256 8cd849a6dcce08aee334511d7b2f31c54e478885dda1795d3c8f972dd0d4811c</t>
            </li>
            <li>
              <t>receipt bytes: 871 bytes, SHA-256 2c913638dc4b977574a2582a60aeb934a87b3492a0da5dc451e1de84d9e4c3cc</t>
            </li>
          </ul>
          <t>Receipt (hex):</t>
          <artwork><![CDATA[
7b227061796c6f61645f623634223a2265794a6a62323174615852665957786e
496a6f69633268684d6a55324c584e686248526c5a4331324d534973496d4e76
62584268636d4630623349694f69492b50534973496d52686447467a5a585266
615752665932397462576c30496a6f69633268684d6a55324f6d45794d574a68
4e4751354e6d4d344d444e6b4e4449324d32526b4d3251794d545978596d4d77
4d7a6c684d7a426d4e4451324d6d4a6b4e546b304e7a426c4d7a466959545668
4f5746694d474535596a4e694e6a4d694c434a745a58527961574d694f694a68
59324e31636d466a65534973496d31765a47567358326c6b58324e7662573170
64434936496e4e6f595449314e6a6f354d44526b5a5451794e5459795a6a6c68
4d546b324e54466c4d546c6c596a6468596a45324e5755305a6d5a6c4d544530
5932553159544a6d4f54686c4e54646b595455344d7a67354e546b324f44526d
596a426d49697769626949364d5467774d4377696347467a6332566b496a7030
636e566c4c434a7a5932686c625745694f694a6f64485277637a6f764c334e70
5a32356c5a43316c646d6c6b5a57356a5a533576636d63765a585a6862433179
5a574e6c615842304c3359784969776963324e76636d55694f6949774c6a677a
4e434973496e4e316158526c496a6f6959574e745a53317a59575a6c64486b74
63335670644755694c434a7a64576c305a5639325a584a7a61573975496a6f69
4d5334794c6a41694c434a3061484a6c63326876624751694f6949774c6a6777
4d434973496e52706257567a6447467463434936496a49774d6a59744d544174
4d444a554d4441364d4441364d444261496e303d222c22736368656d61223a22
6170706c69636174696f6e2f766e642e7369676e65642d65766964656e63652e
6576616c2d726563656970742b6a736f6e222c227369676e6174757265223a7b
22616c67223a2265643235353139222c226b6579223a22783770704139394474
756d484f2f4175304d2f67756d534b384977437a4e7750694944393242534662
616b3d222c22736967223a22474b44624f565966752b682b4b6962376c355859
374a5a3461544975714f53586f46784a715a726c7a4e306576355855764d444f
745a78436849674c7552684d696a76464937786c5830416c667a68425355786e
44513d3d227d7d
]]></artwork>
        </section>
      </section>
      <section anchor="vector-file">
        <name>The Complete Vector Set</name>
        <t>All 66 vectors, the ten of <xref target="vector-set"/> included, are in one file:</t>
        <ul spacing="normal">
          <li>
            <t>URL: https://signed-evidence.org/eval-receipt/v1/test-vectors.json</t>
          </li>
          <li>
            <t>size: 232309 bytes</t>
          </li>
          <li>
            <t>SHA-256: 710cb8abab7ca51cf61b85c5610018f9a153add4c3db4f71b2d597e57b1671d1</t>
          </li>
        </ul>
        <t>A verifier uses the file only after its size and SHA-256 are those above. The file is one JSON text
<xref target="RFC8259"/> in UTF-8: an object with the members <tt>document</tt>, the name of this draft;
<tt>title</tt> and <tt>note</tt>, two strings for a human reader; <tt>count</tt>, the number of vectors; and
<tt>vectors</tt>, an array with one object per vector, in the order of Table 2. Each object has the members
<tt>id</tt>, <tt>label</tt>, <tt>expected</tt> and <tt>step</tt>, as in the vector's heading; <tt>description</tt>,
an array of the paragraphs that describe the vector; <tt>items</tt>, an array
of its list items, which name the verification key and the size and SHA-256 of each byte string; and <tt>bytes</tt>,
an array with one object per byte string, with the members <tt>label</tt> (B, Receipt, or Payload bytes carried),
<tt>length</tt>, <tt>sha256</tt> and <tt>hex</tt>. For the ten vectors of <xref target="vector-set"/> the file holds
the same words and bytes as this appendix, the payload bytes included.</t>
      </section>
    </section>
    <section numbered="false" anchor="changes-to-be-removed-before-publication">
      <name>Changes (to be removed before publication)</name>
      <section numbered="false" anchor="since-draft-gruszka-signed-evaluation-receipts-03">
        <name>Since draft-gruszka-signed-evaluation-receipts-03</name>
        <ul spacing="normal">
          <li>
            <t>The vector set is unchanged. <xref target="vector-set"/> gives ten of its 66 vectors in full, without repeating B of P1, and <xref target="vector-file"/> names the file that holds all of them by its URL, size and SHA-256. <xref target="payload"/>, the text before Table 2 and the opening of <xref target="vectors"/> say so.</t>
          </li>
          <li>
            <t><xref target="related"/> cites draft-chueayen-attestation-receipts-05 and describes the two records that revision defines; its first three drafts are now as read on 2026-10-25.</t>
          </li>
          <li>
            <t>Section 5 states that a verification-key input that is not exactly 32 octets is an input error and not a verdict, and Sections 10.1 and 11 are worded to match; no vector changes.</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-gruszka-signed-evaluation-receipts-02">
        <name>Since draft-gruszka-signed-evaluation-receipts-02</name>
        <ul spacing="normal">
          <li>
            <t><xref target="related"/> adds six individual drafts, read on 2026-10-19, and the
informative references to them.</t>
          </li>
          <li>
            <t><xref target="criteria"/> calls the mode of <xref target="I-D.ozturk-scitt-prml-profile"/>
hash-only, as that draft does.</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-gruszka-signed-evaluation-receipts-01">
        <name>Since draft-gruszka-signed-evaluation-receipts-01</name>
        <ul spacing="normal">
          <li>
            <t><xref target="introduction"/> ends with the scope of this document and its
interoperability target.</t>
          </li>
          <li>
            <t><xref target="non-claims"/> opens with what PASS does not mean and says that
establishing who controls the key is outside the procedure.</t>
          </li>
          <li>
            <t>The security considerations of <xref target="iana-media-type"/> also refer to
<xref target="RFC8259"/> Section 12.</t>
          </li>
          <li>
            <t><xref target="impl"/> adds the conformance run of the implementation named there, at
commit a339424e, on the vectors of <xref target="vectors"/>, and the result of a
further verifier written from the text. It also limits the description
of early key rejection to the command-line interface.</t>
          </li>
          <li>
            <t>The Open Items section is removed. The references were checked against
the published documents on 2026-10-12, and <xref target="impl"/> now gives the
conformance result it asked for.</t>
          </li>
          <li>
            <t>This appendix is added.</t>
          </li>
        </ul>
      </section>
      <section numbered="false" anchor="since-draft-gruszka-signed-evaluation-receipts-00">
        <name>Since draft-gruszka-signed-evaluation-receipts-00</name>
        <ul spacing="normal">
          <li>
            <t><xref target="introduction"/> names the two parties the format serves, an Issuer and
a Receiver that share no infrastructure, and says why the receipt
object stands next to the DSSE-compatible signature.</t>
          </li>
          <li>
            <t><xref target="payload"/> states that the vectors of this version are
maintained in <xref target="vectors"/> and that a later version of the format
uses a different identifier with its own vectors.</t>
          </li>
          <li>
            <t><xref target="non-claims"/> adds that a receipt does not show where B came from.</t>
          </li>
          <li>
            <t><xref target="security"/> adds that <tt>criteria_digest</tt> binds bytes, not a time, and
carries weight only against criteria bytes the Receiver obtained
independently.</t>
          </li>
          <li>
            <t><xref target="iana-media-type"/> writes out the security considerations of the
registration template and names contact, author and change
controller.</t>
          </li>
          <li>
            <t><xref target="impl"/> adds a local measurement on 2026-10-10 of a receipt
made from the result of a test run.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAACA+297XbbSJI2+B9XgVN1zrZUQ9IASfBDnp4zkq2qcpe/xnL1
bM/2bgkEQAktimADpGRVlfsy3qvZf++NbTwRkYkESMqWPWffnVl1H5ckMpHI
jIzviIzodrveOl8vsiP/LL9YZql/ehMvNvE6L5b+uyzJ8tW68uLZrMxu7h2S
FskyvqZp0jKer7sX5ab69SruVvxEN7NPdEt9ohsMPZpy4CXxOrsoyrsjP1/O
C6/azK7zqqKh67sVzffi9P33Xr4qj/w1zbnuB8E06HtxmcW0nizZlPn6zrvK
7m6LMj3yfL/r1y/jP/WF/Ptp2o+icMq/J/GyWOZJvPD/dPbmtVet42X6S7wo
lvTSu6zyVvmR/3+si6TjV0W5LrN5Rb/dXeOX/9OLN+vLopT35cvqyP+p5/8g
e6bPfF9g8VOxLOO08UVRXsTL/Fde3pE/Gy+DNOMvsus4Xxz5V7Tv+Gr9r/JN
Lymu+duk2CzXgNEPWXkdL++8ZUE/1/lNhjW8+/5ZPwynRzxUj/Obn7I7H0Cp
/HlR+psqo4ViZOWvC//FMs0BeDrAv2/yMrvOlmv/ZXaTLapveJZ6g/ifbvKs
55/QhpZZyZ+nNMGRH06n424w4E+qrMyzCudonjx59pbWEg6/0b9pAfQ3Viuf
rOPyIlsf+Zfr9ao6evLk9va2V86Tbpbm66LsEbieYLon9Bkeks1OwvGwudnj
61l+sSFU8Iu5//NqlZVJTDu+qfyXxa3+Idv3MY0P4Pw7gHPPbk96BJF8Fjt7
7Qch7TV60F6x2AfvFQ/pXoNBv7nX0/Q2ppV3n23Km8x/nl/ka0Ji0Ga83pSZ
f7wgcsrXl9f+wWn6/Oz48P4T/VNREUpXTC3ONy9o9/mmuonjchsC4R4I6I5p
yQ/fMT0kOx71B63T/flMSD3zf4yry3qDlX9w9uOxT4Tr08/ujE459X98dfyM
P/rxp+ff37f35z3/NK7Wi/gq8wdl2vzyfY/etayyZXPv4f7Tl71j8Q/eOx7S
0x5PoubewZz8Z4ZXKefwz5JLoln/4E/Pzu7b4nHPf7dZphdlttzC7T8R+sfL
LXQ4LdP1ddzcdj/oBqP7j5zW/fAjp4dk28PRcNLc9vvLzD+h8wxHHf456Hf4
UPH7aOg/j9exf7pMijRfXlQPQXCzp2DUDYN794RFPXhPeEiPsh9Nt/f0p/gm
PktKEkj+m9nfsmTtvy7WcqYHOOpD2dqL5Zq41mW8vMj875nV37PH98yW7/RD
3y8LvE4W1ybdsL9nz2fvn9MSp0GLedEmHn6u9JDAYDycDrZh8KLLSP0qq6r4
P3d/0X5BJPvBgh68Hzwk+xkMBq0zfQ4hCsR8nxM90imusUGc3hKz41PSLK5X
9+HoDz3/p8XdMmt++qznv85u26QY9LvB+N4tYo0P3iIeUu47GbRI8RWNj/33
pI35Z6ssyefQHAhhK973u+wir9aloPDbskiylBj1fdt93fO/L7OsxXD/BCBk
S9rQZzHiwX4hpGJ40MRk7OvhjJkesmBpnfxxSuNp0yR7XQiRlppADJNIuiNV
7oN/tpnP8w/3QqS5R5d7v8oWy/yquPnszdvNTr9ks1MPfzQ1y+l02KLh46V/
TMwpX2e8U9Yv30M5J3VzfXkn5FDShlakppNeaVWUzWq1uPOfXca0vXvA8SPR
e15eXRaLX7cA8jxbsKLTfUmMdJNukcz3xQaU1/z8L3iuulzRwrIt8fAyrq6y
Jh/pjz4l7wCUBwMYDykfiaKWUvfDJk9pa8tM1PV/J/2GJBsrrO+zD2twFmPt
+M+I9mi00Nx9gDwl8Z9VSVEu4i3x/1NB2mNz28FgP28Rohr3m0SFfTyc19BD
ilrhqAWGZ1m5FgaTOSiU3Pl/zkrYhH6/F3xCZY8JSNkWHCBsaFPNz9/1QK9x
SnC/aCJAuF9QKgLQ0h+OAPSQCsbpsLXzF9ersrjBmR/fYs+0XtgypL4t8eGz
IqVRLD2vVwu211QTpJ+bCsiBP++BDRHB2WU2n+uhu0T1fVyW2aLJY0afwoV+
EDWRAXt6uGylh+iZ52dnpy3Bik+IbMl+PsuxZbZwAIrTJZmpxSrr+AQxMtCL
hV+5cqnj3yiyhL2g198NElrDkTEqzu6qdUbGxMt41sSCIWn73f5k556IpV1u
ZjDQn1Q8TbeSabqLePYkJWx7MlsUsyc3vIgnZqm9a/Cs98evXrz+oaUZxdfY
HfSHV2Th+2y73UfdP/XAShdXeVw1v/i+5/8Ql/liUbT44J9JpSBpsoiz5VXR
0vD3nPU3luucwUFChmdeGddPlcUkBsgGO3vHUxx2/Jevn519A+nbj/p7JFC2
KvPlupfHiWACnnwS9oewgF50n/fmcbnI7rpxsrbuI+MzagJMvVHP6egr1xfF
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

-->

</rfc>
