Expand description
RFC 0001 — the signed key-rotation attestation (spec/aph-0.2.md).
One claim, made by the CURRENT key: this named successor is mine. What it buys: a verifier can check that a successor was named BY ITS PREDECESSOR rather than merely served from the same origin — §8.4.7’s bare overlap upgraded to a chain a stranger can walk. What it cannot buy, per the RFC’s own §5 and repeated here so no caller oversells it: a stolen current key signs a rotation too; a verifier meeting an identity for the first time has nothing to chain from (continuity, not genesis); and it is no recovery from key LOSS, because the lost key can no longer speak.
Zero new cryptography (RFC 0001 §2.3): the statement is signed exactly as
a lone-proof envelope is — RFC 8785 JCS over the object with
proof.proofValue PRESENT AND EMPTIED (never removed; §8.2 records the
draft era that got that wrong), eddsa-jcs-2022, multibase proof value.
Publication (RFC 0001 §3.1): the DID Document property
DID_DOC_ROTATION_PROPERTY, full-URI keyed so JSON-LD expansion
cannot drop it, atomic with the successor key’s own entry.
Structs§
- Rotation
Attestation - RFC 0001 §2.1’s statement, byte-for-byte the published shape. Every member is inside the signed bytes for the reason its §2.2 table states.
- Rotation
Successor - The successor a rotation attestation names: the key, its fragment, and its activation bounds.
Constants§
- DID_
DOC_ ROTATION_ PROPERTY - The DID Document property carrying attestations (RFC 0001 §3.1): an array of statements, keyed by full URI so a JSON-LD-processing resolver survives expansion without a context definition APH does not serve.
- ROTATION_
ATTESTATION_ TYPE - The statement’s
typeliteral. A verifier refuses any other value: this object is not a VC on purpose (RFC 0001 §2.4 — a VC invitescredentialStatus, whose freshness bound is the opposite of what a rotation attestation needs).
Functions§
- sign_
rotation_ attestation - Signs an attestation in place:
proof.proofValueis computed over the lone-proof base and written back multibase. Exists for the committed test vectors and for operators minting real statements through the reference; it accepts a caller-held signing key and never touches key storage. - verify_
rotation_ attestation - Verifies a rotation attestation against the PREDECESSOR’s public key —
the key the verifier already trusts, resolved through §8.4 or remembered
from prior contact. Everything checkable is checked before the
signature, and every refusal is
APH_E024carrying the specific defect, because “the attestation is invalid” with no reason teaches an operator nothing.