feat(vc): Pillar C — idprova-vc, eddsa-jcs-2022 VC issue/verify interop - #77
Merged
Conversation
…ign + skeleton Adds idprova-vc: deterministic VC issue/verify (default eddsa-jcs-2022 over RFC 8785 JCS; rdfc/ecdsa-P256 behind features for AP2), DIF Presentation Exchange, verify-time StatusList revocation, a documented DAT<->VC mapping, and AP2 Intent/Cart/Payment mandate builders. Bridges into Google AP2/A2A without abandoning the DAT runtime. Design-only skeleton + DESIGN-pillar-c.md + SPEC.md. Co-Authored-By: TechBlaze <info@techblaze.com.au>
Promote Pillar C from skeleton to a working default cryptosuite: - add suite::jcs_hash: SHA-256(JCS(proofConfig)) || SHA-256(JCS(doc)) per W3C vc-di-eddsa, serializing the typed VC so issuer and verifier hash byte-identical input (fixes a payload mismatch that made issue->verify never validate) - issue: build the VC, sign jcs_hash, encode proofValue as base58btc multibase - verify: recompute jcs_hash, multibase-decode, Ed25519 verify; drop the divergent hand-rebuilt payload - add sha2 + multibase deps Tested: 6 passing tests — issue->verify Valid, tampered InvalidSignature, revoked Revoked, expired Expired, dat_to_vc preserves scope, AP2 Intent mandate shape. RDF/ECDSA suites remain behind features (todo). External JSON-LD/camelCase proof interop is a follow-up hardening pass. Co-Authored-By: TechBlaze <info@techblaze.com.au>
Removes unused CryptoSuite imports (ap2, dat_bridge), prefixes unused evaluate() stub param, and regenerates Cargo.lock for the idprova-vc crate deps (sha2, multibase) after rebase onto main. Co-Authored-By: TechBlaze <info@techblaze.com.au>
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.
Pillar C — `idprova-vc` (W3C VC Data Model 2.0 interop layer)
Second of the three KYA commercial-spine pillars (Pillar A merged in #76). Open library, Apache-2.0 — the verify path stays free per the open-core line (operation/governance/scale is where paid begins, never the protocol/verify).
What this adds
eddsa-jcs-2022Data Integrity issue/verify round-trip over Ed25519.Tests (6, all green locally)
`round_trip_valid`, `tampered_invalid`, `revoked`, `expired`, `dat_to_vc_preserves_scope`, `ap2_intent_shape`.
CI hygiene
Notes / follow-ups (non-blocking)