Skip to content

Replace EverCBOR with TAV CBOR - #8297

Open
Max (maxtropets) wants to merge 7 commits into
microsoft:mainfrom
maxtropets:f/replace-evercbor-with-tav
Open

Replace EverCBOR with TAV CBOR#8297
Max (maxtropets) wants to merge 7 commits into
microsoft:mainfrom
maxtropets:f/replace-evercbor-with-tav

Conversation

@maxtropets

@maxtropets Max (maxtropets) commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

✅ Long test passed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@maxtropets Max (maxtropets) changed the title Replace EverCBOR with TAV Replace EverCBOR with TAV CBOR Sep 7, 2026
@maxtropets
Max (maxtropets) requested a balanced review from Copilot September 7, 2026 10:39
@achamayou
Amaury Chamayou (achamayou) marked this pull request as ready for review September 7, 2026 10:41
@achamayou
Amaury Chamayou (achamayou) requested a review from a team as a code owner September 7, 2026 10:41
@maxtropets Max (maxtropets) self-assigned this Sep 7, 2026
@maxtropets
Max (maxtropets) marked this pull request as draft September 7, 2026 10:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The migration increases the nesting limit for attacker-controlled CBOR and contains an accidental self-include.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Replaces CCF’s direct EverCBOR integration with TAV’s Rust-backed CBOR API across COSE, receipts, endorsements, and authentication.

Changes:

  • Adds TAV FFI and updates Rust dependencies and lockfiles.
  • Migrates CBOR parsing, serialization, helpers, and tests.
  • Removes the previous C/C++ EverCBOR implementation and build integration.

Custom instructions used

  • .github/copilot-instructions.md
  • .github/instructions/reviewing.instructions.md
File summaries
File Description
src/rust/src/lib.rs Re-exports TAV FFI.
src/rust/Cargo.toml Adds TAV FFI dependency.
src/rust/Cargo.lock Locks new dependency graph.
src/node/uvm_endorsements.cpp Migrates endorsement decoding.
src/node/test/historical_queries.cpp Migrates proof test decoding.
src/node/test/endorsements.cpp Migrates endorsement mutation test.
src/node/quote.cpp Migrates statement and receipt parsing.
src/node/historical_queries_adapter.cpp Migrates proof encoding.
src/node/cose_common.h Migrates shared COSE decoding.
src/endpoints/authentication/cose_auth.cpp Migrates authentication parsing.
src/crypto/test/crypto.cpp Updates CBOR test includes.
src/crypto/test/cose.cpp Migrates COSE tests and editing.
src/crypto/test/cose_bench.cpp Migrates benchmark decomposition.
src/crypto/test/cbor_printer.h Adds TAV CBOR test printer.
src/crypto/test/cbor_fuzz.cpp Migrates CBOR fuzzing.
src/crypto/openssl/cose_verifier.cpp Migrates verifier parsing.
src/crypto/cose.cpp Migrates unprotected-header editing.
src/crypto/cose_utils.h Migrates x5chain parsing.
src/crypto/cbor.h Removes legacy CBOR interface.
src/crypto/cbor.cpp Removes legacy implementation.
src/crypto/cbor_tags.h Preserves shared CBOR tags.
src/crypto/cbor_helpers.h Adds immutable editing helpers.
src/cose/test/cose_ffi_test.cpp Migrates FFI tests.
src/cose/cose_rs/src/lib.rs Uses borrowed TAV CBOR values.
src/cose/cose_rs/Cargo.lock Locks TAV CBOR dependency.
CMakeLists.txt Integrates TAV and removes EverCBOR.
cmake/evercbor.cmake Removes EverCBOR target.
cmake/crypto.cmake Removes legacy source and linkage.
cgmanifest.json Removes direct EverParse registration.
3rdparty/internal/evercbor/krmllib.h Removes vendored support header.
3rdparty/internal/evercbor/internal/CBORNondet.h Removes internal generated header.
3rdparty/internal/evercbor/CBORNondetType.h Removes generated CBOR types.
3rdparty/internal/evercbor/CBORNondet.h Removes generated CBOR API.
3rdparty/internal/cose-openssl/src/lib.rs Removes private CBOR module.
3rdparty/internal/cose-openssl/src/cose.rs Uses TAV deterministic CBOR.
3rdparty/internal/cose-openssl/src/cbor.rs Removes duplicate CBOR wrapper.
3rdparty/internal/cose-openssl/Cargo.toml Adds TAV CBOR dependency.
Review details
  • Files reviewed: 36/39 changed files
  • Comments generated: 2
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/endpoints/authentication/cose_auth.cpp
Comment thread src/crypto/test/cbor_printer.h Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@maxtropets
Max (maxtropets) marked this pull request as ready for review September 7, 2026 10:53
@maxtropets Max (maxtropets) added run-long-test Run Long Test job and removed run-long-test Run Long Test job labels Sep 7, 2026
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

3 participants