<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.42 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-alhemeiri-wathiqa-pqc-ers-02" category="exp" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="PQC Evidence Records">Post-Quantum Evidence Records with Algorithm Agility (Wathīqa Profile)</title>
    <seriesInfo name="Internet-Draft" value="draft-alhemeiri-wathiqa-pqc-ers-02"/>
    <author initials="M." surname="Alhemeiri" fullname="Mohamed Alhemeiri">
      <organization>MBQ</organization>
      <address>
        <postal>
          <region>Abu Dhabi</region>
          <country>United Arab Emirates</country>
        </postal>
        <email>Mohamed.Alhemeiri@mail.utoronto.ca</email>
      </address>
    </author>
    <date year="2026" month="October" day="29"/>
    <area>Security</area>
    <keyword>post-quantum</keyword>
    <keyword>evidence records</keyword>
    <keyword>long-term archiving</keyword>
    <keyword>algorithm agility</keyword>
    <keyword>ERS</keyword>
    <abstract>
      <t>This document describes an evidence-record format for the long-term, verifiable
preservation of digitally-signed data across the migration to post-quantum
cryptography. It builds on the Evidence Record Syntax (ERS) of RFC 4998 and adds
an explicit <strong>algorithm-agility</strong> extension: a record is a chain of signed
attestations in which each link re-witnesses the data under a fresh signature
primitive and commits to the prior link, so that the authenticity of the data
survives the cryptographic break of any single primitive. It specifies the
canonical hashing that makes a record reproducibly verifiable across independent
implementations, the exact binary encoding a decoder accepts, the authenticated
temporal binding that places each link in time (an append-only transparency log
à la RFC 6962, whose signed inclusion receipt is <em>not-after</em> evidence), and the
verification procedure. A per-link beacon anchor records <em>not-before</em> evidence:
from wire version 3 it is authenticated against the beacon's hash chain, with
the beacon's classical pulse signature as defence in depth; the Security
Considerations say which assumption each check rests on.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>A signature proves authenticity <em>now</em>. Preserving that proof for decades raises
two problems RFC 4998 (ERS) <xref target="RFC4998"/> already addresses — the signing key or
algorithm may weaken, and the timestamp authority may change — and one it does
not: the signature algorithm itself may be <strong>catastrophically broken</strong> by a
quantum computer. NIST's FIPS 203/204/205 <xref target="FIPS203"/> <xref target="FIPS204"/> <xref target="FIPS205"/>
(and draft 206) standardise post-quantum primitives, but a record signed today
only with a classical or single post-quantum algorithm has no path forward if
that algorithm falls.</t>
      <t>This document profiles ERS for that setting. The core idea, following RFC 4998's
Archive Timestamp chain, is to keep extending a record under fresh primitives
<em>before</em> the old one is broken, with each extension cryptographically bound to
its predecessor, so a verifier can establish an unbroken sequence in which every
link was sound at the time it was made.</t>
      <t>This document describes a format with a complete reference implementation, but
the security argument has not undergone independent cryptographic review.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="relationship-to-rfc-4998">
        <name>Relationship to RFC 4998</name>
        <t>This profile preserves ERS's central abstraction — an ordered chain of
timestamps over a data object, each renewing the evidence — and departs from it
in three deliberate ways:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Primitive agility is part of every link.</strong> An ERS ArchiveTimestamp renews
evidence chiefly to outrun hash weakening; here each link <em>also</em> changes the
signature primitive and records which primitive was in force, so the chain
spans a primitive break, not only a hash-strength downgrade.</t>
          </li>
          <li>
            <t><strong>Two serialisations.</strong> The normative interchange form is CBOR <xref target="RFC8949"/>;
an alternative ASN.1 DER serialisation, aligned with RFC 4998's ASN.1
structures, carries the same chain for implementations that work in ASN.1
(<xref target="asn1-der-form"/>). The <strong>chain hash</strong> is computed over a canonical JSON
form (<xref target="canonical-chain-hash"/>), independent of either, so
cross-implementation byte-equality does not depend on CBOR/DER encoder
quirks.</t>
          </li>
          <li>
            <t><strong>Explicit temporal binding.</strong> Each link's <em>authenticated</em> temporal evidence
is an append-only transparency-log inclusion receipt (a signed tree head plus
inclusion proof — <em>not-after</em> evidence), verifiable offline and enforced by
the verifier when a witness-trust policy is supplied (<xref target="verification"/>). A
per-link beacon anchor records <em>not-before</em> evidence: from wire version 3 it
carries the beacon pulse record, the certificate it was signed under and,
optionally, the successor pulse, and the verifier authenticates it against
the beacon's hash chain with the beacon's classical pulse signature as
defence in depth (<xref target="verification"/>, <xref target="security-considerations"/>). Wire
versions 1 and 2 carry the anchor unauthenticated; a verifier reports that
distinctly and never upgrades it.</t>
          </li>
        </ol>
        <t>This document is a profile and extension within the ERS family, not a new
evidence format. <xref target="RFC4998"/> defines the Evidence Record Syntax whose Archive
Timestamp chain the agility extension above builds on. <xref target="RFC6283"/> (XMLERS) is
the XML serialisation of that same syntax; the two-serialisation approach here
— a CBOR interchange form beside a DER form (<xref target="asn1-der-form"/>) — follows its
precedent of one evidence model carried in more than one encoding. <xref target="RFC5276"/>
specifies how evidence records are conveyed by the Server-Based Certificate
Validation Protocol (SCVP); this profile leaves that transport untouched, and a
record in the DER form of <xref target="asn1-der-form"/> is a candidate payload for it. The
<tt>EvidenceRecord</tt> type referenced in <xref target="asn1-der-form"/> is the ERS type whose
current ASN.1 module is <xref target="RFC9169"/>, a restatement of the RFC 4998 and RFC 5276
modules in modern ASN.1 syntax with identical wire encoding; implementers
working from ASN.1 tooling take the type from that module. Outside the IETF,
BSI TR-03125 (TR-ESOR) <xref target="TR-03125"/> is a national technical guideline for
preservation services whose evidence handling is built on ERS; a record in this
profile is intended to be usable by such a service as an ERS evidence record
carrying an additional, explicitly labelled agility extension, rather than as a
competing format.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t><strong>HASH.</strong> SHA3-256 <xref target="FIPS202"/>. Every hash in this document is HASH unless
it is named otherwise (the beacon's own values are SHA-512).</t>
        </li>
        <li>
          <t><strong>Content address.</strong> The pair (<tt>root</tt>, <tt>byte_length</tt>) identifying the
protected data (<xref target="content-address"/>).</t>
        </li>
        <li>
          <t><strong>Chain entry / link.</strong> One renewal layer: a signature over the content
address under a stated primitive, an anchor, the hash of the prior link, and an
optional witness receipt.</t>
        </li>
        <li>
          <t><strong>Anchor.</strong> Per-link <em>not-before</em> evidence: beacon id, epoch, root, self-bound
to the link by <tt>witnessed_hash == HASH(signature.bytes)</tt>, and, from wire
version 3, one or more <em>beacon witnesses</em> (the pulse record, its certificate,
and optionally the successor pulse) against which the verifier authenticates
it (<xref target="verification"/>). In wire versions 1 and 2 the anchor is unauthenticated
metadata and is reported as such (<xref target="security-considerations"/>).</t>
        </li>
        <li>
          <t><strong>Beacon witness.</strong> One beacon's evidence for a link: the full pulse record
with the output hashes it commits to, the DER certificate named by the
pulse's <tt>certificateId</tt>, and optionally the next pulse of the same chain,
whose <tt>previous</tt> field commits forward to the anchored pulse.</t>
        </li>
        <li>
          <t><strong>Witness receipt.</strong> A signed transparency-log tree head plus an inclusion
proof showing the link's signature was logged — the authenticated <em>not-after</em>
temporal evidence, enforced when a witness-trust policy is supplied.</t>
        </li>
        <li>
          <t><strong>Pinned.</strong> Supplied to the verifier out of band by the relying party. A key,
certificate or set carried inside the object being verified is never pinned
by being carried.</t>
        </li>
      </ul>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <artwork><![CDATA[
data ──► content address ──► chain entry v1
                                 (primitive A, anchor, witness)
                                  │ prior_chain_hash
                                  ▼
                              chain entry v2
                                 (primitive B, anchor, witness)
                                  │
                                  ▼      … extend before A breaks
]]></artwork>
      <t>A record is <tt>{ content_address, chain[] }</tt>. Verification (<xref target="verification"/>) walks
the chain from v1 outward, requiring each link's signer key to be pinned, each
link's signature to verify over the content address under its stated primitive,
each non-initial link to commit to its predecessor's chain hash, and (when a
trust policy is supplied) each link to carry a valid witness receipt from a
trusted witness with monotonic time.</t>
    </section>
    <section anchor="data-structures">
      <name>Data Structures</name>
      <section anchor="logical-structure">
        <name>Logical structure</name>
        <sourcecode type="cddl"><![CDATA[
EvidenceRecord = {
  content_address: { root: bstr .size 32, byte_length: uint },
  chain: [ * ChainEntry ]   ; empty: refused at verification
}

ChainEntry = {
  version:          uint,            ; 1 = initial, >1 = extension
  signature: Signature,
  anchor: {
    beacon_id:         tstr,
    epoch:             uint,
    witnessed_at_unix: uint,
    beacon_root:       bstr .size 32,
    witnessed_hash:    bstr .size 32, ; = HASH(signature.bytes)
    ? chain_index:     uint,          ; present iff wire_v >= 2
    ? certificate_id:  tstr,          ; present iff wire_v >= 2
    ? witnesses:       [+ BeaconWitness]   ; present iff wire_v == 3
  },
  prior_chain_hash:    bstr .size 32 / null, ; null iff initial
  ? wire_v:            2 / 3,        ; absent for wire version 1
  ? not_before:        NotBefore / null,  ; present iff wire_v >= 2
  ? inclusion:         WitnessReceipt     ; absent when there is none
}

Signature = {
  algorithm:         tstr,  ; see Algorithm Identifiers
  algorithm_version: uint,
  bytes:             bstr,
  public_key:        bstr,
  signed_at_unix:    uint
}

NotBefore = {
  chain_index:  uint,
  pulse_index:  uint,
  output_value: bstr .size 64
}

BeaconWitness = {
  source:          tstr,            ; e.g. "nist-beacon-v2"
  pulse:           Pulse,           ; the full beacon v2 pulse record
  certificate_der: bstr,            ; the certificate the pulse names
  successor:       Pulse / null     ; next pulse of the same chain
}
]]></sourcecode>
        <t>The CDDL lists every map's fields in the order an encoder writes them, which
<xref target="encoding"/> makes normative.</t>
        <t><tt>certificate_id</tt> is the SHA-512, in lower-case hex, of the DER certificate the
pulse names; <tt>not_before</tt> is the pulse bound in the signed message
(<xref target="signing-contexts"/>), and is <tt>null</tt> on a wire version 2 or 3 link that binds
no pulse; a <tt>Pulse</tt> is the beacon's v2 pulse record, re-expressed as a CBOR
map with its hex fields in lower case; <tt>certificate_der</tt> lets the classical
check be repeated offline.</t>
        <t><tt>witnesses</tt> is REQUIRED on a wire version 3 link and MUST NOT appear on any
other: a decoder MUST reject a lower-version link that carries it (a legacy
anchor presented as authenticated) and a version 3 link without it, or with an
empty list. The witness at index 0, the primary witness, is the pulse the
signed message binds (<xref target="signing-contexts"/>); any further witness is an
independent beacon and is OPTIONAL.</t>
        <t>The signature is computed over a domain-separated message
(<xref target="signing-contexts"/>) binding the content address, the signing time, and the
algorithm identifier, so a signature made for one protocol context cannot be
replayed in another.</t>
      </section>
      <section anchor="canonical-chain-hash">
        <name>Canonical chain hash (normative)</name>
        <t><tt>prior_chain_hash</tt> for link <em>n+1</em> is <tt>HASH</tt> of the <strong>canonical JSON</strong> encoding
of link <em>n</em>. The canonical JSON form is RECOMMENDED for all cross-implementation
hashing and is defined as:</t>
        <ul spacing="normal">
          <li>
            <t>a JSON object with keys sorted lexicographically, no insignificant whitespace
(<tt>","</tt> and <tt>":"</tt> separators);</t>
          </li>
          <li>
            <t>octet-string fields encoded as lower-case hex with a <tt>_hex</tt> key suffix;</t>
          </li>
          <li>
            <t>exactly these fields per link:</t>
          </li>
        </ul>
        <artwork><![CDATA[
{
 "anchor":{"beacon_id":<tstr>,"beacon_root_hex":<hex>,
           "epoch":<uint>,"witnessed_at_unix":<uint>,
           "witnessed_hash_hex":<hex>},
 "prior_chain_hash_hex":<hex|null>,
 "signature":{"algorithm":<tstr>,"algorithm_version":<uint>,
              "bytes_hex":<hex>,"public_key_hex":<hex>,
              "signed_at_unix":<uint>},
 "version":<uint>
}
]]></artwork>
        <t>A wire version 2 link adds, in the same sorted-key form, <tt>"wire_v":2</tt>,
<tt>"not_before"</tt> (<tt>{"chain_index","output_value_hex","pulse_index"}</tt> or null) and
<tt>"certificate_id"</tt>/<tt>"chain_index"</tt> inside <tt>"anchor"</tt>. A wire version 3 link
adds those same keys with <tt>"wire_v":3</tt> and, inside <tt>"anchor"</tt>,
<tt>"witnesses_hex"</tt>: the HASH of the deterministic CBOR (<xref target="RFC8949"/>
Section 4.2) of the array <tt>[[source, pulse-json, successor-json-or-null,
certificate_der], ...]</tt> where each pulse is its canonical JSON (sorted keys,
no whitespace, lower-case hex) carried as a text string. The witness list is
therefore committed by the chain hash and cannot be exchanged after the link
is chained.</t>
        <t>An implementation MUST produce byte-identical canonical JSON for the same
link; this is what lets independent verifiers compute the same chain hash.
Note the witness receipt (<tt>inclusion</tt>) is <strong>not</strong> part of the chain hash — it
is supplementary evidence bound to the link by
<tt>witnessed_hash = HASH(signature.bytes)</tt>, so attaching or detaching it does
not alter the chain.</t>
      </section>
      <section anchor="asn1-der-form">
        <name>ASN.1 DER form (RFC 4998 alignment)</name>
        <t>An alternative ASN.1 DER serialisation, aligned with RFC 4998's ASN.1
structures, is defined here for implementations that work in ASN.1. The
evidence record is carried in a ContentInfo-style wrapper that identifies it by
the Wathīqa enterprise OID (<xref target="algorithm-identifiers"/>):</t>
        <sourcecode type="asn.1"><![CDATA[
WathiqaEvidenceRecord ::= SEQUENCE {
  contentType  OBJECT IDENTIFIER,   -- 1.3.6.1.4.1.66038.1.1
  content      EvidenceRecord }     -- SEQUENCE { version,
                                    --   contentAddress…, chain }
]]></sourcecode>
        <t>The inner <tt>EvidenceRecord</tt> carries the post-quantum AlgorithmIdentifier OIDs of
<xref target="algorithm-identifiers"/> and a leading <tt>version</tt> INTEGER giving the DER
profile. An encoder emits profile 4, whose chain entries carry <tt>wire_v</tt>, the
anchor's <tt>chain_index</tt> and <tt>certificate_id</tt>, and an OPTIONAL <tt>NotBefore</tt>
SEQUENCE. A decoder accepts the wrapped form with inner profile 4 or 3 and the
legacy bare form (no wrapper) with profile 1 or 2, distinguishing the two by
the tag of the leading inner element (OBJECT IDENTIFIER vs INTEGER). A decoder
MUST reject a record whose <tt>contentType</tt> is not the Wathīqa evidence OID, a
wrapped record whose inner profile is not the one its shape decodes as, a bare
record claiming profile 3 or later, a non-minimal length or INTEGER, and
trailing bytes.</t>
        <t>The DER form carries the signed chain only. It does not carry witness receipts
(<tt>inclusion</tt>) or beacon witnesses, and profile 4 accepts wire versions 1 and 2
only: a record containing a wire version 3 link has no DER form in this
revision. For a record without receipts whose links are all wire version 1 or
2, the DER form round-trips with the CBOR form. The detailed ASN.1 module is
tracked in the implementation (<tt>asn1_der.py</tt>, authoritative; Rust <tt>der.rs</tt> in
lock-step); a future revision will inline it.</t>
      </section>
      <section anchor="witness-receipt">
        <name>Witness receipt</name>
        <sourcecode type="cddl"><![CDATA[
WitnessReceipt = {
  schema:          "wathiqa.witness_receipt.v1",
  witnessed_hash:  bstr .size 32, ; = HASH(link signature.bytes)
  leaf_index:      uint,
  sth:             SignedTreeHead,
  inclusion_proof: [ * bstr .size 32 ]
}

SignedTreeHead = {
  schema:          "wathiqa.sth.v1",
  log_id:          tstr,
  tree_size:       uint,
  root:            bstr .size 32,
  timestamp_unix:  uint,
  signature:       Signature      ; as in a chain entry
}
]]></sourcecode>
        <t>The Merkle tree follows <xref target="RFC6962"/> hashing (leaf = <tt>HASH(0x00 || data)</tt>,
node = <tt>HASH(0x01 || left || right)</tt>), with HASH as the hash; the logged
<tt>data</tt> of a link is its <tt>witnessed_hash</tt>. The tree head's signature is made
over the content address (<xref target="content-address"/>) of the octets</t>
        <artwork><![CDATA[
"wathiqa.sth.v1" || 0x00 || len(log_id)(4, BE) || log_id-utf8 ||
    tree_size(8, BE) || root(32) || timestamp_unix(8, BE)
]]></artwork>
        <t>under the signing context <tt>wathiqa.sth.v1</tt> (<xref target="signing-contexts"/>). A receipt
verifies offline: check that the tree head's signer key is pinned, check the
tree head's signature, then check that the inclusion proof connects
<tt>witnessed_hash</tt> at <tt>leaf_index</tt> to the tree head's root.</t>
      </section>
      <section anchor="encoding">
        <name>Encoding (normative)</name>
        <t>Every structure of this document is carried in exactly one byte form. A decoder
MUST accept that form and refuse every other, so that one sequence of bytes can
never be read as two records, and two encodings of one record can never both be
accepted.</t>
        <t><strong>Field-order family.</strong> The evidence record and everything inside it (the
content address, chain entries, signature, anchor, not-before claim and beacon
witnesses with their pulses), the witness receipt and the signed tree head
(<xref target="witness-receipt"/>), whether standalone or inside a record, are encoded with:</t>
        <ul spacing="normal">
          <li>
            <t>each map's fields in the order <xref target="logical-structure"/> and <xref target="witness-receipt"/>
list them, an optional field taking its place in that order when present;</t>
          </li>
          <li>
            <t>the deterministic rules of <xref target="RFC8949"/> Section 4.2.1 other than key order:
every argument in its shortest form and every length definite;</t>
          </li>
          <li>
            <t>text-string map keys only;</t>
          </li>
          <li>
            <t>no tags anywhere;</t>
          </li>
          <li>
            <t>no simple value other than <tt>null</tt>, and no floating-point value.</t>
          </li>
        </ul>
        <t><strong>Bytewise family.</strong> The same implementations carry other structures that this
document does not define (signing envelopes, trust-anchor bundles,
attestations, provenance manifests, the pulses of the implementation's own
beacon service). These use the key order of <xref target="RFC8949"/> Section 4.2.1: keys
sorted by the bytewise lexical order of their deterministic encodings, a tag
only where that structure's own format defines one, on the outermost item, and
no simple values. Where the bytes sit fixes the family: a witness receipt or
tree head carried inside a bytewise-family structure is encoded in that
family, and a NIST pulse inside an evidence record is a field-order map.</t>
        <t><strong>The round-trip rule.</strong> For either family a decoder MUST, after reading the
structure, re-encode it with the encoding rules above and compare the result
with its input; if the bytes differ, the input is refused. This one rule
enforces both families, and it is the rule <xref target="security-considerations"/>
("Canonical-form attacks") relies on.</t>
        <t>A decoder MUST refuse, before reading any field as a value:</t>
        <ul spacing="normal">
          <li>
            <t>a map with two keys whose encodings are identical, whatever their type;</t>
          </li>
          <li>
            <t>a tag the format does not define at that position; tag 55799 (self-described
CBOR) is never defined, at any position;</t>
          </li>
          <li>
            <t>a non-shortest argument, an indefinite-length item, or bytes after the
top-level item.</t>
          </li>
        </ul>
        <t>The exact form also fixes what is absent and what is present:</t>
        <ul spacing="normal">
          <li>
            <t><tt>inclusion</tt> is absent when a link has no witness receipt. It is never
<tt>null</tt>; a link carrying <tt>"inclusion": null</tt> MUST be refused.</t>
          </li>
          <li>
            <t><tt>wire_v</tt> is absent for wire version 1 and present for versions 2 and 3; a
link carrying <tt>"wire_v": 1</tt> MUST be refused.</t>
          </li>
          <li>
            <t><tt>not_before</tt>, <tt>anchor.chain_index</tt> and <tt>anchor.certificate_id</tt> are absent for
wire version 1 and present for versions 2 and 3 (<tt>not_before</tt> possibly
<tt>null</tt>).</t>
          </li>
          <li>
            <t>A map holding a field the exact form does not write (an unknown field) MUST
be refused, as must a map missing a field the exact form writes, or holding
<tt>null</tt> where the field is omitted.</t>
          </li>
        </ul>
        <t>Extensions to these structures come with a new version number (a new <tt>wire_v</tt>
value, a new schema string), never as extra fields in an existing version: an
existing decoder refuses the extended object rather than reading past what it
does not understand.</t>
        <t>An implementation MAY refuse an encoded structure larger than 16 MiB or nested
more than 256 levels deep; the reference implementation does both.</t>
      </section>
      <section anchor="content-address">
        <name>Content address</name>
        <t>The data is split into 4096-byte chunks; the last chunk is padded with zero
octets to 4096 octets. Each chunk's leaf hash is <tt>HASH(0x00 || chunk)</tt> and the
leaves form an <xref target="RFC6962"/> Merkle tree (interior node
<tt>HASH(0x01 || left || right)</tt>, split at the largest power of two below the
leaf count, so an unpaired node is carried up, never duplicated). <tt>root</tt> is
that tree's root and <tt>byte_length</tt> the data's length in octets before
padding. Empty data has the single leaf <tt>HASH(0x00)</tt>, which is its root, and
<tt>byte_length</tt> 0. Both values are bound into every signature
(<xref target="signing-contexts"/>).</t>
      </section>
    </section>
    <section anchor="verification">
      <name>Verification</name>
      <t>A verifier is given the protected data <tt>D</tt>, the record, a set of pinned signer
public keys <tt>S</tt>, and OPTIONALLY a set of pinned witness public keys <tt>W</tt>. It
MUST:</t>
      <ol spacing="normal" type="1"><li>
          <t>Recompute the content address of <tt>D</tt> (<xref target="content-address"/>) and check it
equals <tt>record.content_address</tt>.</t>
        </li>
        <li>
          <t>Refuse a record whose chain is empty.</t>
        </li>
        <li>
          <t>Check that the public key of every link is in <tt>S</tt>, before any signature is
verified. A record with any link outside <tt>S</tt> is refused, and the refusal
names the links. A verifier given no <tt>S</tt> checks each link under the key the
link carries; that is a self-consistency check, not a verdict, and the
verifier MUST report that no signer was pinned instead of reporting
acceptance.</t>
        </li>
        <li>
          <t>For each link, in chain order, with <tt>prev</tt> = the link before it (none at
position 0):  </t>
          <t>
(a) Verify <tt>signature</tt> over the content address under <tt>signature.algorithm</tt>
   and the signing context of the link's wire version (<xref target="signing-contexts"/>).
   Reject on failure.  </t>
          <t>
(b) By position, not by the <tt>version</tt> field: the link at position 0 MUST
   have <tt>version == 1</tt> and <tt>prior_chain_hash == null</tt>; every later link
   MUST have a <tt>version</tt> strictly greater than <tt>prev.version</tt> and
   <tt>prior_chain_hash == HASH(canonicalJSON(prev))</tt>.  </t>
          <t>
(c) If <tt>W</tt> is supplied (temporal-binding enforcement): require <tt>inclusion</tt> to
   be present and valid (<xref target="witness-receipt"/>); require
   <tt>inclusion.witnessed_hash == HASH(signature.bytes)</tt>; require the tree
   head's signer key to be in <tt>W</tt>; and require tree-head timestamps to be
   non-decreasing along the chain.  </t>
          <t>
(d) Beacon anchor. Require <tt>anchor.witnessed_hash == HASH(signature.bytes)</tt>.
   If <tt>wire_v == 3</tt>, check each witness in order. A witness whose <tt>source</tt>
   has no pinned certificate set is SOURCE_UNPINNED, before any pulse
   check: a pulse is never checked against the certificate the witness
   carries alone. Otherwise require ALL of: the pulse is well-formed;
   <tt>certificateId == SHA-512(certificate_der)</tt> and that certificate is in
   the source's pinned set; the pulse signature verifies under it; and
   <tt>outputValue == SHA-512(serialization || signatureValue)</tt>. For the
   primary witness further require that <tt>anchor.epoch</tt> equals the pulse
   index; <tt>anchor.chain_index</tt> (when not 0) and <tt>anchor.certificate_id</tt>
   (when not empty) equal the pulse's; <tt>anchor.beacon_root ==
   HASH(outputValue || pulseIndex)</tt>, with the pulse index as ASCII
   decimal digits; <tt>anchor.witnessed_at_unix</tt> is the pulse's timestamp in
   Unix seconds; and the link's <tt>not_before</tt> is not null and names exactly
   this pulse (chain index, pulse index, <tt>outputValue</tt>). Any further witness
   MUST lie within one beacon period of <tt>anchor.witnessed_at_unix</tt>. If a
   witness carries a successor, require it to authenticate under the same
   certificate, to be the next index of the same chain, to have its
   <tt>previous</tt> value equal the anchored <tt>outputValue</tt>, and to have a
   timestamp no earlier than the pulse's.
   Report one verdict per link: INVALID if any witness fails a check;
   otherwise SOURCE_UNPINNED if any witness is unpinned; otherwise
   AUTHENTICATED if every witness carries an authenticated successor,
   AUTHENTICATED_NO_SUCCESSOR if not, and CHAIN_CONFIRMED where an optional
   online re-fetch of the primary pulse agreed (a re-fetch that disagrees
   is INVALID). If <tt>wire_v &lt; 3</tt>, report LEGACY_UNAUTHENTICATED and perform
   no further anchor check. An INVALID or SOURCE_UNPINNED anchor MUST fail
   the link whatever the policy; a LEGACY_UNAUTHENTICATED anchor MUST NOT be
   upgraded and fails the link only under a policy that requires
   authenticated anchors.</t>
        </li>
        <li>
          <t>Accept iff every link passed.</t>
        </li>
      </ol>
      <t>Acceptance means: there exists an unbroken sequence of attestations, each made
by a signer the relying party pinned, in which each primitive was applied while
sound, the data was unchanged throughout, and (under a trust policy) each step
was publicly logged by a trusted witness in monotonic time. Which primitives a
relying party still trusts at verification time is the relying party's policy
input, not a property of the record.</t>
    </section>
    <section anchor="signing-contexts">
      <name>Signing contexts and the v2 evidence message</name>
      <t>Every signature commits to a context tag so a signature for one protocol cannot be
replayed in another. The base message layout is:</t>
      <artwork><![CDATA[
context-utf8 || 0x00 || algorithm-utf8 || 0x00 || root(32) ||
    byte_length(8, big-endian) || signed_at_unix(8, big-endian) ||
    extra
]]></artwork>
      <t><tt>extra</tt> is empty for every v1 context. Evidence-record links produced from
wire profile v0.3 onward sign under <tt>wathiqa.evidence.v2</tt> with a fixed-width
<tt>extra</tt> tail:</t>
      <artwork><![CDATA[
signer_id(32)
    -- HASH of the signer's public key
prior_flag(1) || prior(32)
    -- 0x00 + zeros = genesis; 0x01 + hash = link
nb_flag(1) || nb_chain(8, BE) || nb_pulse(8, BE) || nb_output(64)
    -- 0x00 + zeros = no not-before binding;
    -- 0x01 = NIST Beacon 2.0 pulse claim
]]></artwork>
      <t>A chain entry declares its rule on the wire via <tt>wire_v</tt>: absent = 1, the
legacy rule under <tt>wathiqa.evidence.v1</tt>, which verifiers MUST support
indefinitely; 2 = the rule above; 3 = the same signed message as 2, with the
anchor's beacon witnesses as verifier-side evidence bound through the
not-before claim (no new signing context). Any other value MUST be rejected at
decode. Mixed chains are legal: a v1 record extended under v0.3 gains v2
entries. The not-before pulse claim is a signed CLAIM; on a wire version 3 link
it is authenticated by step 4d of <xref target="verification"/>. Other contexts are
unchanged: <tt>wathiqa.evidence.v1</tt> (legacy record links), <tt>wathiqa.sth.v1</tt>
(transparency-log tree heads), <tt>wathiqa.witness_roster.v1</tt> (witness-key
succession), and others per protocol.</t>
    </section>
    <section anchor="algorithm-identifiers">
      <name>Algorithm Identifiers</name>
      <t>The algorithm strings an implementation of this profile recognises are
<tt>SLH-DSA-SHAKE-256s</tt> (<xref target="FIPS205"/>), <tt>ML-DSA-87</tt> (<xref target="FIPS204"/>) and <tt>Falcon-1024</tt>
(the pre-standard Falcon, pending FIPS 206). In the DER form
(<xref target="asn1-der-form"/>) SLH-DSA and ML-DSA are identified by their NIST CSOR OIDs
(<tt>2.16.840.1.101.3.4.3.30</tt> and <tt>2.16.840.1.101.3.4.3.19</tt>); <tt>Falcon-1024</tt> is
carried under an experimental OID (<tt>1.3.9999.3.6</tt>) that is not for interchange
and will be replaced when FIPS 206 assigns FN-DSA its identifier. The
Wathīqa-specific structures are identified under the IANA Private Enterprise
Number arc <tt>1.3.6.1.4.1.66038</tt> (PEN 66038, registered at IANA to "Wathiqa
PQC"). An implementation MUST treat the algorithm string and the OID as
equivalent identifiers of the same primitive and MUST fail a link whose
algorithm it does not recognise (rather than accepting it unverified).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <ul spacing="normal">
        <li>
          <t><strong>Agility window.</strong> The scheme protects data only if each link is added <em>before</em>
the prior primitive is broken; an operational renewal policy (out of scope for
this document) is REQUIRED. A record left un-renewed past a primitive's break is
no stronger than that primitive.</t>
        </li>
        <li>
          <t><strong>Whose key signed.</strong> Every link carries the public key it was signed with,
so a record that verifies under its own keys says nothing about who made it:
anyone can replace a document and its record and sign both with a key of
their own. The signed message binds the key (<xref target="signing-contexts"/>); only the
relying party's pinned set <tt>S</tt> says whose it is. This is why step 3 of
<xref target="verification"/> is not optional, and why every renewal link, not only the
initial one, is checked against <tt>S</tt>.</t>
        </li>
        <li>
          <t><strong>Temporal trust over decades.</strong> The witness keys in <tt>W</tt> must themselves survive
rotation; this profile recommends a quorum-authorised, append-only witness-key
succession pinned to a single long-lived anchor. Without it, <tt>W</tt> is
unmaintainable on a century scale.</t>
        </li>
        <li>
          <t><strong>Beacon anchor: what it proves, and under which assumption.</strong> A wire
version 3 link carries an <em>authenticated</em> beacon anchor
(<xref target="logical-structure"/>): the full beacon pulse record with the five output
hashes it commits to, the certificate the pulse was signed under, and
optionally the successor pulse. The link's signed message binds the pulse's
<tt>outputValue</tt> (<xref target="signing-contexts"/>), a 512-bit value that was unpredictable
before the pulse was released, so the signature is <em>not-before</em> the pulse.
Two assumptions are involved and MUST be kept apart. The beacon's own pulse
signature is <strong>classical</strong> (RSA, <xref target="NIST-BEACON"/>); verifying it under the
pinned certificate is defence in depth at sealing time and a repeatable
offline check afterwards, but a post-quantum adversary who breaks RSA can
forge a pulse record with any timestamp. The <strong>post-quantum</strong> claim
therefore rests on the beacon's hash chain: every pulse's <tt>outputValue</tt> is
the SHA-512 of its signed serialization and signature, every pulse commits
to its predecessor's <tt>outputValue</tt>, and the successor carried in the anchor
commits forward to the anchored pulse. What a verifier can establish from
the record alone is that the link commits to a pulse value that is
internally consistent with a chain context; placing that value in the chain
the beacon actually published requires either the classical signature or an
independently obtained copy of the chain (a live fetch, or an archive kept
by the verifier). Implementations SHOULD keep such a copy for records they
expect to verify beyond the life of the beacon's RSA keys, and MUST report
the anchor verdict distinctly (<xref target="verification"/>): a legacy unauthenticated
anchor MUST be reported as such and MUST NOT be upgraded to authenticated by
any verification step.</t>
        </li>
        <li>
          <t><strong>Beacon certificate rotation.</strong> A pulse names its certificate by
<tt>certificateId</tt>; a verifier MUST pin certificates out of band, per source
name matched exactly, and MUST fail closed when the source has no pinned
certificate, when the named certificate is not pinned, or when the signature
does not verify under it. On 2026-09-05 the reference implementation
observed live pulses that named a newly issued certificate and carried
signatures that verified under neither the new nor the previous key; this
document does not state a cause. The sealing rule, verify the pulse before
binding it and refuse otherwise, covers that situation.</t>
        </li>
        <li>
          <t><strong>Fail-closed verification.</strong> A verifier MUST treat any malformed field,
unrecognised algorithm, or unverifiable proof as verification failure, never as
success.</t>
        </li>
        <li>
          <t><strong>Canonical-form attacks.</strong> Because the chain hash is over a canonical form,
implementations MUST reject inputs that do not round-trip to that exact form
(<xref target="encoding"/>: non-minimal numbers, duplicate keys, tags, unknown fields), to
deny an attacker a second pre-image via encoding ambiguity. Before this rule
was enforced at decode, a key given twice, once behind tag 55799, was read
as one value by some implementations and as the other by the rest.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The Wathīqa structures of <xref target="data-structures"/> are identified under <strong>IANA Private
Enterprise Number 66038</strong> (<tt>1.3.6.1.4.1.66038</tt>), already registered — no further
OID registration is requested for them.</t>
      <t>Still <strong>outstanding</strong> (a separate IANA process, not yet filed): registration of
the two media types <tt>application/wathiqa-evidence+cbor</tt> and
<tt>application/wathiqa-evidence+der</tt>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4998">
          <front>
            <title>Evidence Record Syntax (ERS)</title>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <author fullname="R. Brandner" initials="R." surname="Brandner"/>
            <author fullname="U. Pordesch" initials="U." surname="Pordesch"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>In many scenarios, users must be able prove the existence and integrity of data, including digitally signed data, in a common and reproducible way over a long and possibly undetermined period of time. This document specifies the syntax and processing of an Evidence Record, a structure designed to support long-term non-repudiation of existence of data. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4998"/>
          <seriesInfo name="DOI" value="10.17487/RFC4998"/>
        </reference>
        <reference anchor="RFC6962">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9169">
          <front>
            <title>New ASN.1 Modules for the Evidence Record Syntax (ERS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Evidence Record Syntax (ERS) and the conventions for including these evidence records in the Server-based Certificate Validation Protocol (SCVP) are expressed using ASN.1. This document offers alternative ASN.1 modules that conform to the 2002 version of ASN.1 and employ the conventions adopted in RFCs 5911, 5912, and 6268. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the ASN.1 syntax.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9169"/>
          <seriesInfo name="DOI" value="10.17487/RFC9169"/>
        </reference>
        <reference anchor="FIPS202" target="https://doi.org/10.6028/NIST.FIPS.202">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="202"/>
        </reference>
        <reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="204"/>
        </reference>
        <reference anchor="FIPS205" target="https://doi.org/10.6028/NIST.FIPS.205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="205"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5276">
          <front>
            <title>Using the Server-Based Certificate Validation Protocol (SCVP) to Convey Long-Term Evidence Records</title>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>The Server-based Certificate Validation Protocol (SCVP) defines an extensible means of delegating the development and validation of certification paths to a server. It can be used to support the development and validation of certification paths well after the expiration of the certificates in the path by specifying a time of interest in the past. The Evidence Record Syntax (ERS) defines structures, called evidence records, to support the non-repudiation of the existence of data. Evidence records can be used to preserve materials that comprise a certification path such that trust in the certificates can be established after the expiration of the certificates in the path and after the cryptographic algorithms used to sign the certificates in the path are no longer secure. This document describes usage of the SCVP WantBack feature to convey evidence records, enabling SCVP responders to provide preservation evidence for certificates and certificate revocation lists (CRLs). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5276"/>
          <seriesInfo name="DOI" value="10.17487/RFC5276"/>
        </reference>
        <reference anchor="RFC6283">
          <front>
            <title>Extensible Markup Language Evidence Record Syntax (XMLERS)</title>
            <author fullname="A. Jerman Blazic" initials="A." surname="Jerman Blazic"/>
            <author fullname="S. Saljic" initials="S." surname="Saljic"/>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>In many scenarios, users must be able to demonstrate the (time of) existence, integrity, and validity of data including signed data for long or undetermined periods of time. This document specifies XML syntax and processing rules for creating evidence for long-term non- repudiation of existence and integrity of data. The Extensible Markup Language Evidence Record Syntax XMLERS provides alternative syntax and processing rules to the ASN.1 (Abstract Syntax Notation One) ERS (Evidence Record Syntax) (RFC 4998) syntax by using XML. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6283"/>
          <seriesInfo name="DOI" value="10.17487/RFC6283"/>
        </reference>
        <reference anchor="TR-03125" target="https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Technische-Richtlinien/TR-nach-Thema-sortiert/tr03125/TR-03125_node.html">
          <front>
            <title>BSI TR-03125 Preservation of Evidence of Cryptographically Signed Documents (TR-ESOR), Version 1.3</title>
            <author>
              <organization>Bundesamt für Sicherheit in der Informationstechnik (BSI)</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="BSI" value="TR-03125"/>
        </reference>
        <reference anchor="FIPS203" target="https://doi.org/10.6028/NIST.FIPS.203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="203"/>
        </reference>
        <reference anchor="NIST-BEACON" target="https://doi.org/10.6028/NIST.IR.8213-draft">
          <front>
            <title>A Reference for Randomness Beacons: Format and Protocol Version 2</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2019" month="May"/>
          </front>
          <seriesInfo name="NIST IR" value="8213 (draft)"/>
        </reference>
      </references>
    </references>
    <section anchor="implementation-status">
      <name>Implementation status</name>
      <t>A reference implementation (Python) is authoritative for the wire formats. A
TypeScript verifier decodes all three wire versions in the exact form of
<xref target="encoding"/>. A JavaScript SDK and a Rust port read wire versions 1 and 2,
refuse wire version 3 at decode, and reproduce the canonical chain hash
byte-for-byte for the versions they read. All of them are run against one
shared suite of test vectors, including encoding-level negatives (non-shortest
arguments, tags, duplicate keys, unknown fields, wrong schema strings), and
must reach the same verdict on each. This draft documents the reference
implementation's formats; divergences are implementation bugs, not intended
profile variation.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <section anchor="history-02">
        <name>Changes in -02</name>
        <ul spacing="normal">
          <li>
            <t>New <xref target="encoding"/>: the exact byte form per structure family (field order, or
RFC 8949 Section 4.2.1 bytewise order), one round-trip rule for both.</t>
          </li>
          <li>
            <t><xref target="encoding"/>: duplicate keys, undefined tags (55799 included) and unknown
fields are refused at decode.</t>
          </li>
          <li>
            <t><tt>inclusion</tt> is absent when there is no receipt, never <tt>null</tt>
(<xref target="logical-structure"/>, <xref target="encoding"/>).</t>
          </li>
          <li>
            <t><tt>wire_v</tt> is absent for wire version 1; <tt>"wire_v": 1</tt> is refused.</t>
          </li>
          <li>
            <t>Extensions come with a version change, never as extra fields.</t>
          </li>
          <li>
            <t><xref target="logical-structure"/>: fields listed in encoder order (<tt>inclusion</tt> last).</t>
          </li>
          <li>
            <t><xref target="logical-structure"/>: <tt>chain_index</tt>, <tt>certificate_id</tt> and <tt>not_before</tt>
present exactly from wire version 2.</t>
          </li>
          <li>
            <t>New <xref target="content-address"/>: the content address defined (4096-octet chunks,
zero padding, RFC 6962 tree, empty data).</t>
          </li>
          <li>
            <t><xref target="witness-receipt"/>: schema strings, field order and the tree head's signed
octets added.</t>
          </li>
          <li>
            <t><xref target="verification"/>: pinned signer keys <tt>S</tt> required for a verdict; every link
checked against <tt>S</tt> before any signature.</t>
          </li>
          <li>
            <t><xref target="verification"/>: an empty chain is refused.</t>
          </li>
          <li>
            <t><xref target="verification"/>: link order checked by position, versions strictly
increasing.</t>
          </li>
          <li>
            <t><xref target="verification"/>: SOURCE_UNPINNED verdict and the exact anchor checks added.</t>
          </li>
          <li>
            <t><xref target="signing-contexts"/>: wire version 3 added to the accepted values.</t>
          </li>
          <li>
            <t><xref target="asn1-der-form"/>: encoder emits DER profile 4; decoder accepts 3 and 4
wrapped, 1 and 2 bare.</t>
          </li>
          <li>
            <t><xref target="asn1-der-form"/>: no receipts, beacon witnesses or wire version 3 in DER.</t>
          </li>
          <li>
            <t><xref target="algorithm-identifiers"/>: the three algorithm strings and their OIDs
listed.</t>
          </li>
          <li>
            <t>Security Considerations: "Whose key signed" added; pin certificates per
source.</t>
          </li>
          <li>
            <t>Implementation status restated per implementation and wire version.</t>
          </li>
          <li>
            <t>Sections 1.2, 4.3 and Appendix A reworded: the DER form is an
alternative serialisation; Appendix A says how implementations are checked.</t>
          </li>
          <li>
            <t>PEN 66038 stated as registered to "Wathiqa PQC"; no cause stated for the
beacon observation.</t>
          </li>
          <li>
            <t>Author affiliation MBQ, Abu Dhabi; date and version updated.</t>
          </li>
        </ul>
      </section>
      <section anchor="history-01">
        <name>Changes in -01</name>
        <ul spacing="normal">
          <li>
            <t>Authenticated beacon anchors (wire version 3, <xref target="logical-structure"/>): the
anchor carries the pulse record, its certificate and optionally the
successor pulse; the verifier authenticates it (<xref target="verification"/>, step 2d
in -01)
and reports a distinct verdict; legacy anchors are reported, never upgraded.</t>
          </li>
          <li>
            <t>Security Considerations rewritten to state which assumption each anchor
check rests on: the beacon's pulse signature is classical; the
post-quantum not-before claim rests on the hash chain, and on an
independently held copy of it for verification beyond the life of the
beacon's keys.</t>
          </li>
          <li>
            <t>Canonical chain hash extended for wire version 3 (<xref target="canonical-chain-hash"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="history-00">
        <name>Changes in -00</name>
        <t>-00 was the initial public revision. The following changes were made in the
pre-submission revisions that preceded it:</t>
        <ul spacing="normal">
          <li>
            <t>Wire profile v0.3: chain entries carry <tt>wire_v</tt> (version gate); the v2
signed message binds the signer identity, the prior chain hash, and an
optional NIST-pulse not-before claim (<xref target="signing-contexts"/>). v1 records remain
verifiable indefinitely.</t>
          </li>
          <li>
            <t>Anchor structure gains <tt>chain_index</tt> and <tt>certificate_id</tt> (beacon chain and
pulse-certificate pinning for authenticated re-verification).</t>
          </li>
          <li>
            <t>ASN.1 DER profile v4 (per-entry wire version, optional NotBefore SEQUENCE,
extended anchor); v1–v3 remain decodable, only v4 is emitted.</t>
          </li>
          <li>
            <t>The machine-checked model now proves the strengthened per-link property:
acceptance implies an honest attestation of (document, algorithm,
POSITION), or a prior primitive break.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81923Ib2ZXle37FCdZDAXImxJvkEtjlHpJiddGWKJWocrXH
USEkgASZViITlZkgBcvqcMwvTEc/z1O/zB9M9FvPl/hLZq+997lkApTLHdMx
o+h2gUDmueyz77eTJEl0NzZHUZu3RTY2r6umTb5bp2W7XpqLu3yelbPMvMlm
VT1vzH3e3prT4qaq6cPSnN7kRd5uzOCHtL393//zp9S8rqtFXmTDKJ1O64wG
fv3d+dYw0byalemSZpvX6aJN0uI2W2Z5nSf3NE7+U5qsfpolWd0k+4fRPG3p
wcP9w6fJwX5y+Cya0Re0gM3YZB9WUb6qx6at1017uL//jJ7/wly3dZYu6dvb
zFxevP3GNPxFbO5v89mtyRvzYVkc1ovZl42ZZ4t0XbRmUdUmLU1eznNa7Dot
aBxeHH07xyvzrMinWU1zFxtz9eotDUqf51hDkc8Idhtzm9XZiH/bo3GyVUb/
U7Z7YxqqvU1bjMJL8r+Z6/V0mTdNXpWNuZjnLa1iRSCwSyVgNLqM27QxZdXS
WPQeTTSPZWWtadarVZ01TSbDn1dz/M9yVZX0ZGMeE9Tv8oaWenb93LzIZ1nZ
ZOamphN2C1uuCjoAjNuYasHDnF5fjQ54ivPnz18QYHQx1WyNJ00NOFTlyJyW
WJNCgRZjN/R2s8roAZPqBjDo85SAVqez91ktG8ru6FOTZaVZpu+zhkbK52VO
qx74gcySdjSkCVdVTRD7/uzl5fX15aurd29/9/ri3fdXF//4+uL87cXzE55C
D5RGusnvFCQN4ZoiAWNwtZbl0ATLtJ3djqKUfhub62y2JsTeRO+zzT0h6jgy
JjErUMRPQhH8RWbRuVZ0xpdFVd4kBMClSevZLSFRecPfp45YUiEW/vbizXWU
rmkltcyRl83YvCRgWkqgb40RGnlZ3dJ/573fvjBvaQfpgqgtT1uASdFrRkef
lhvC7eYWAMMgI0I6s1gXBY12Zr5ze8Ew5xtCa7d1c4rVt9msXdcZH/9p3eYL
Otu0oEEI+4v8hjf/nM6uqFayTwx0ndV3hF0NbefF6MXonP57PXo9OqddXZ9f
Xgq+8ppiM81m6ZrQkHGKToZGofXrQHV+cwumkN+UtO28bCveWL0uSzx3m6Xz
rAaJZFgiQ94Q4Szp2PNkumkzHecuLdaZWa2bW8WDIi/p77RpzS8PDR5sRvxo
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
z0jDRwq4bXXO5U3wncZq12li6X0+42InOG8zsiXnvuIjVrUwZTYp1TMixODY
rHbUq7HmJLqrOHJdE/RGbrtgV8uW7yFPy3Tb7wBKcJ0pAscQu1L7LZQ/7fYX
PXoUeosi7y0y6i1ihxB0yx0uI2jUejdq4DBCTyEf643g6pFf9aJnTgP9ac1p
6rZDEupUrjly9+gRUkbhWqTzw7ypbQmnji2+RRcFqkDATYYysiKbc7pbMAnu
AryVFiJEjIQSqPAhLYsDm0Jaj9XDm1j38S9m06qWZL3PP4felXp37ZTwkM+t
6wcDz1rzyXW+T+T7T9Kl/IEM/MHrDZma5dC6y10fCNdOit3rUqCENNkI/Uqu
ZzXq5Rxfct1FEA3lCwy7rTdUzQoqN7jLjSdXeIV+nd6lOvD189+o3v9Gorp1
K/XMOzt6xJHy2l4kICSy0l8drTxqR0/FiBts0foSW6ptdS4tFcH9lFgHLZd2
KkrSknEdtyZazwSaDje3ac0ZGLlczc51VnfE2aqau83NirUmUQoItIqqJL1I
Qs2DsEIrshVajmX1GVmXhRGvgKesW4vSSMggYsdHzQ5B5/i0iptenawuHrly
1wrJpivio62iU0WSE1L/aLwbPKT2Z+9WwPWNUpS9FcjdFHSXkoEjYhG92q14
/pZorapxJY9dTHIrX0m39nO9iZLOMdk/pMf0V/qDXaZXpAh0pYNHR1eVLwqZ
K3jRmsqBVA9pojQbQejghVrZXl20q4rlZ4dyp0uvbpNxSgpekt6Ktk/UdgLj
uueBlP0J5tgmr3rqMGOlrIhR0beE1/jc58vqWt8t2xbTWQVASqkedOrEnS0M
f3bd3EmvCC6oDKUhgtqssA7Lvi0xjwfqqgSsO5Y6thBC+by2ZtCGWFJsGzYZ
4rqh4WfG6nTAirfaX0lAKEgMhPdD859tQ4jtSxYPRw5Tt+o0BGH7ifQWQQZc
/cSVN1r+BPUKwXWjBTixu2eeA4+x5jpwpxXZ51Yq9rjHPWITUIJzGWy192Bv
m9QAcZhBRu+agONuUYyrhrEW9lyv71GudBKkMUVmlyN4Z9XI7pnhieC9u3KV
APW2H5eULN6ynXcaFgw42WBT89nut2nhu8fsJ51Z5mthKnwpTFvrwHLb2Tje
knzzub8Px3bwsOXxPEgvMDrutYdDDNX10zrZ6tImzdeOodVKT7LYXQKF1mIP
TOH5Czx1/TSGPpc4Ao3SOnSw3Q3xhC5E5dgVvp5rrIQjuEaJHyM+EHobm71+
CGlPoHmybc2vuNBYrHCMuVst0+sFOUGxLwklcOs3rSsTTfxgdBiTaBFYn3Jw
If/A0TNcD55pRYpvS9aI1ynsSNnpQ3kSDsJBHdwmuWU01JnFdKzGhWntXTBs
gzj1O4jTGsRpT3DIYgjq8wuXtK4nLo4AZ/uestJp0gXhWq5x3bPvYnM6XZvn
t+k0PzFz6wSwqLFe4av5aFv2H4Sy/4Bl/2nXKxRGKxokV4QoF+9m+BK88N6p
bhjxM5eyme0LwCLTjz6cdBx725fc7rh+loNuh3PmNdj1MDJWxeUrY1PngfM8
VF1udueiKYh3Le5eJvs5AgH21aiiLnH24i3pB5Ik2Ox9xuylt37xcdex2K+d
yIP7eU9s4CB0529lMHUc7t7Pbi+X3+WKvZUb1cQNm7syeO8H2e0OdTj8pUQS
AaadrdldqtOW6nP0mQu2d6DzfojO+0Bn+upebXobINVAtm9HCFNduq5xRpcO
eJ/ZVvRijUWcVrOecok9X3ct7zc2sM5X2M45ek0b/aGf3Dj+bMtQM7BbJoMm
GyqOH0bm4fiaKgPC39uNu3aAhWD3AqnurY8cgVJv7VZ+2wMdzFxeGjB6Kd7/
wD0Wpu4xlxLC99aBZK799U6oZqAcR7Yg0Uhpfx3yCehDehVpz41NhxSipnRf
cI2G3YEcmwEu+5bUxxDl4gBO7kYZ24E15liAIqsQLCJ4B3/583+/O1LAiPAH
VGIJz9NcnCyrvRQSxrcld1qmTamSJPcck3GigWc5YdIWkbablSIO5TJOm/fM
SRI+Nx2CSUPOt1XJbUp8BjoocmBtwThwdNIYr19dX6KeeiiRlK3EFg4BjqL/
A5vZ9TQzmQAA

-->

</rfc>
