hyperledger-identus / hyperledger-identus/sdk-rust
identus-vc-core: format-neutral credential envelope, staged verification report, status vocabulary
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- Avg merge
- 39m
- Merged PRs (30d)
- 153
Description
Spec is crystallized; component issue per the program rule. Tracking epic: MediaNoxLabs/midnight-identity#20. Depends on #4; pairs with #5.
## Spec (crystallized)
**Seeds** (two, complementary):
1. oxid's `credential/domain` - the best-designed format-neutral **holder-side envelope** in the estate: credential records/metadata, a `CredentialFormat` identifier (a closed enum with two Midnight variants today - this crate generalizes it into the open format registry described below), private material and detached proofs as bounded opaque bytes, disclosure candidates/manifests, and the staged verification report (7 named stages with per-stage reason codes - never a bare `valid: bool`).
2. `midnight-vc-domain`'s **status vocabulary** (status modes/bindings/policies, freshness policy, status queries) and codec traits - chain-agnostic despite living in the Midnight repo today.
**Relation to existing work**: supersedes the credential-model bullet of MediaNoxLabs/midnight-identity#13; the remaining #13 items (vc.compact generated bindings, holder-binding profiles, status-registry bindings) stay Layer 2 and register into this crate's format registry.
**Format registry rule**: the Midnight Compact CBOR family is just the first registered format; W3C VC-DM, JWT-VC, SD-JWT, and mdoc slot in later without touching the envelope. Format-specific crates live outside this core (the Compact family in the Layer 2 repo).
**Non-goals**: no issuance/verification logic, no crypto, no protocol wire types (those are the OID4VC crates).
## Tasks
- [ ] Define the envelope + report + status types from the two seeds; reconcile naming once, in the open.
- [ ] Registry extension point proven by registering a dummy format in tests.
- [ ] wasm32 gate; plain cargo; zero chain deps.
- [ ] Port the seeds' relevant test suites.
## Acceptance
- oxid's credential domain and midnight-vc-domain's status module are expressible via this crate (ported tests pass).
- Published as `identus-vc-core` 0.1.
Contributor guide
Research direction
Start by reading oxid's credential/domain seed and midnight-vc-domain's status module, then compare their relevant test suites with the stated envelope, report, and status requirements. Verify that a dummy format can register in tests, that wasm32 and plain cargo builds work without chain dependencies, and that the ported tests pass for the 0.1 release.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100