hyperledger-identus / hyperledger-identus/sdk-rust

identus-vc-core: format-neutral credential envelope, staged verification report, status vocabulary

Open
#6 6 comments 0 reactions 0 assignees View on GitHub
crystallization enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.