Crate credibil_holder

Source
Expand description

§Credibil Holder

An SDK for building applications that act as a holder’s agent (such as a wallet). It supports OpenID for Verifiable Credential Issuance and Presentation and is designed to be used with issuer and verifier services that implement those standards. In particular it is designed to work with services based on credibil-vc.

The crate does not provide a user or service interface - that is the job of an application implementer. See the examples directory for simple (not full-featured) implementations.

§Design

** Flow State **

Similar to other general OpenID implementations, the library is based around orchestrating flows for VC issuance or presentation (to a verifier).

The client application can interact with types that “remember” the current state of the flow and provide associated methods to use that state to prepare requests and then update the state with responses.

A full set of end-to-end tests are provided in the tests directory that demonstrate how to use the library with all the possible variations of VC issuance supported by the standards as implemented in credibil-vc.

At present, the only supported credential data type is the W3C Verifiable Credentials Data Model v2.0.

** Provider **

In a similar style to credibil-vc, implementors make use of ‘Provider’ traits that are responsible for handling storage, signing and verifying proof of key ownership by resolving distributed identifiers (DIDs). See the provider module in this crate for traits specific to holder agents.

§Example

See the examples directory for some simple applications that make use of the SDK and also sample applications that demonstrate services and applications for Issuers and Verifiers using credibil-vc and that work in conjunction with the example wallets.

Modules§

credential
Holder Agent (Wallet)
did
Re-export DID resolution
infosec
Re-export cryptographic types and functions
issuance
Issuance
presentation
Presentation
provider
Provider
test_utils
Test Utilities for Credibil VC
urlencode
Url Encoder/Decoder

Enums§

Kind
Kind allows serde to serialize/deserialize a string or an object.
Quota
Quota allows serde to serialize/deserialize a single object or a set of objects.