docs(adr): accept ADR-0011, envelope moves to COSE_Sign1 in v0.2 - #242
Merged
Conversation
Records the decision on part 2 and the sequence for getting there. The main technical risk when the migration was first written up was the post-quantum profile, and it has since cleared: RFC 9964 (Standards Track, May 2026) gives ML-DSA final IANA code points in COSE, with ML-DSA-65 as alg -49 and AKP as key type 7. Both profiles therefore have stable registered identifiers, so nothing has to be pinned to a draft. Hybrid is the one construction COSE has no single answer for; that choice is deferred to the v0.2 spec work. Migration is five phases, each its own PR, gated on the manifest version field rather than a flag, so v0.1 records keep verifying exactly as they do today. Spec 10.2 gains the v0.2 line item and 3.6 says what happens to it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Jul 27, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Records the decision on ADR-0011 part 2 and sequences the work. Follows #241, which posed the question.
Decision
COSE_Sign1, in spec v0.2, aligning with SCITT (RFC 9943).
Three concrete properties, not alignment for its own sake:
REPORT_DATA, but stops being an input to verification. That removes canonicalize-before-verify, the specific surface DSSE names.algsits in the protected header, covered by the signature. The bug we shipped and fixed in 0.6.0 cannot be expressed in this envelope.transparency_log_entry-after-signing ordering Section 3.6 already describes in prose.The post-quantum blocker cleared
This was the main technical risk, and checking it changed the plan rather than confirming it. My first search returned
draft-ietf-cose-dilithium-11(Nov 2025, expiring April 2026) with requested code points, which would have forced either provisional identifiers or holding the PQ profile on the old envelope. That result was stale. The draft is now RFC 9964 (Standards Track, May 2026) with final IANA assignments:alg-49EdDSA(-8), long establishedBoth profiles have stable registered identifiers. Nothing is pinned to a draft.
Hybrid is the one gap. COSE has no single-signature hybrid mode, so
hybrid-Ed25519-ML-DSA-65becomes either two COSE_Sign1 structures over the same payload or oneCOSE_Signwith two signers. Deferred to the v0.2 spec work.Migration
Five phases, each its own PR, gated on the manifest
versionfield rather than a flag, so v0.1 records keep verifying exactly as they do today and no existing record is reinterpreted.cryptographycrypto dependency the SDK has taken, and should be reviewed as such.AM-VEC-*vectors, including negatives only this envelope can express (tampered protected header,algsubstitution).Also here
docs/index.mdFAQ and the ADR index reflect the accepted state.618 tests pass. No behaviour change in this PR: it is the decision record plus spec roadmap text.