Skip to content

Use raw signatures for subtree cosignatures - #308

Merged
lukevalenta merged 1 commit into
lvalenta/tree-size-boundsfrom
lvalenta/raw-subtree-signatures
Oct 20, 2026
Merged

lukevalenta merged 1 commit into
lvalenta/tree-size-boundsfrom
lvalenta/raw-subtree-signatures

Conversation

@lukevalenta

@lukevalenta lukevalenta commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Why

Checkpoint and subtree cosignatures have different wire formats. A checkpoint cosignature carries an 8-byte POSIX timestamp prefix followed by the algorithm signature. A subtree cosignature is the raw algorithm signature and has no timestamp. Prefixing a subtree signature makes an otherwise valid sign-subtree response incompatible with implementations of the witness protocol and with certificates embedding the signature.

This change emits and verifies raw 2420-byte ML-DSA-44 values for subtree/v1, while retaining timestamp-prefixed values for checkpoint signed-note lines. The mirror worker follows the same split when responding to sign-subtree.

Compatibility

Compatible with c2sp.org/tlog-cosignature@v1.1.0 subtree cosignatures and c2sp.org/tlog-witness@v1.1.0 sign-subtree; both refer to draft-ietf-plants-merkle-tree-certs-07 for subtree validity and consistency proofs. Checkpoint behavior remains compatible with c2sp.org/tlog-checkpoint@v1.1.0 and tlog-cosignature@v1.1.0.

@lukevalenta
lukevalenta added this pull request to stack #309 October 16, 2026 15:27
@lukevalenta lukevalenta self-assigned this Oct 16, 2026
@lukevalenta
lukevalenta force-pushed the lvalenta/raw-subtree-signatures branch from 35d1695 to 012ab5c Compare October 19, 2026 12:30
@lukevalenta
lukevalenta force-pushed the lvalenta/raw-subtree-signatures branch from 012ab5c to b1726c1 Compare October 19, 2026 19:15
@lukevalenta
lukevalenta merged commit 78f9b26 into main Oct 20, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants