baseid_anoncreds/
lib.rs

1//! # baseid-anoncreds
2//!
3//! Hyperledger AnonCreds support for BaseID.
4//!
5//! Provides AnonCreds credential schema definition, credential issuance/holding,
6//! proof request matching, and proof response construction. Enables interoperability
7//! with the Canadian Aries ecosystem (BC Wallet, ACA-Py).
8//!
9//! ## Features
10//!
11//! - **Schema & CredentialDefinition**: Define credential types with validation.
12//! - **AnonCredsCredential**: Parse ACA-Py JSON, map to W3C VC for unified display.
13//! - **ProofRequest / ProofResponse**: Match credentials to proof requests and build responses.
14//! - **CredentialHolder**: Store credentials and respond to proof requests.
15//!
16//! ## Design Decision
17//!
18//! AnonCreds uses CL (Camenisch-Lysyanskaya) signatures which are
19//! mathematically complex. This crate provides the data model and holder logic;
20//! actual CL proof generation would wrap the Hyperledger `anoncreds-rs` library.
21
22#[cfg(feature = "cl-signatures")]
23pub mod cl;
24pub mod credential;
25pub mod holder;
26pub mod proof;
27pub mod schema;
28
29pub use credential::AnonCredsCredential;
30pub use holder::CredentialHolder;
31pub use proof::{ProofRequest, ProofResponse};
32pub use schema::{CredentialDefinition, Schema};