codexproof

glossary / Detached signature

a signature that travels alongside the content as an independent value rather than wrapping it or living inside it - verify by recomputing the message and checking, never by opening or excising.

ed25519hash then signenvelope
Detached signature - the sibling that never wraps

The signature emerges as its own 64-byte value at the end of the chain - beside the record, derived from the name, containing neither.

Hand-authored SVG for this glossary, 2026. Domain string per sign.rs SIG_DOMAIN (lines 13-20).

Etymology and backstory

the three signature architectures each left a mark on history. Enveloping signatures contain their payload (CMS/PKCS#7 SignedData, JWS tokens) - verify by opening. Enveloped signatures embed inside the document they sign (XML-DSig), a notorious bug factory because checking requires surgically removing the signature from the very bytes under test. Detached signatures ride beside the content (git tag signatures, minisign, signify) and became the modern default for exactly the failure modes the other two accumulated.

Ecosystem

git tags, OpenBSD signify, minisign, Sigstore's detached bundle signatures, Ed25519ph detached mode - the infrastructure world's standard shape.

In codexproof

purely detached, and the function says so - sign_detached at sign.rs line 66; the SignedNode is four sibling fields (node, cid, signer, sig), visible in any scenario output. Detachment is forced by the geometry: the chain canonical bytes -> cid -> framed message -> signature must stay acyclic, and an embedded signature would make the cid depend on bytes containing a signature computed over that cid. Three dividends: signature-independent cids (identical bytes share one name regardless of signer - deduplication for free), co-signing without touching node or name, and separable checks - the inspector's three lanes (integrity, authenticity, authorization) are three lights because nothing is entangled. Mathematically the cid IS consumed - the framed message is Ed25519's input, internally re-hashed by its SHA-512 - so: data layout appended, cryptography ingested, nothing encapsulated.

"Detached is the shape with no circular dependency and no excision ritual - the signature is a function of the name, never a container of it."
References: RFC 8032 (EdDSA, detached use); the XML-DSig security literature as the cautionary enveloped case; git's tag-signing model.

All terms · Questions & answers · The verifier