https://github.com/douganderson444/delanocreds
Delegatable Anonymous Credentials (Delanocreds)
https://github.com/douganderson444/delanocreds
Last synced: about 2 months ago
JSON representation
Delegatable Anonymous Credentials (Delanocreds)
- Host: GitHub
- URL: https://github.com/douganderson444/delanocreds
- Owner: DougAnderson444
- License: mit
- Created: 2023-04-28T12:22:15.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-05T18:38:54.000Z (5 months ago)
- Last Synced: 2025-03-25T03:26:28.857Z (2 months ago)
- Language: Rust
- Homepage:
- Size: 2.63 MB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE_MIT
Awesome Lists containing this project
README
# **Del**egatable **Ano**nymous **Cred**ential**s** (Delanocreds) Workspace
The Delegateable Anonymous Credentials (DAC) system. A system for issuing and verifying anonymous credentials that can be delegated to other parties.

This is a workspace broken down into:
| Crate | Status | Description |
| --- | --- | --- |
| [delanocreds](/crates/delanocreds/) | ✅ | The Rust core library for issuing and using anonymous credentials. |
| [delano-keys](/crates/delano-keys/) | ✅ | A Rust library for generating, compacting, expanding, and using BLS12-381 verification keys (VKs). |
| [delano-wallet](/crates/delano-wallet/) | ✅ | Wallet Component, uses Wasm Interface Types ([WIT](https://component-model.bytecodealliance.org/design/wit.html)) for [Wasm Component](https://github.com/WebAssembly/component-model) use from any [host system](https://github.com/bytecodealliance/wit-bindgen#host-runtimes-for-components) such as Go, JavaScript, Python or Rust.
| [delano-wit-ui](/crates/delano-wit-ui/) | ✅ | A Work-In-Progress default implementation of the Delano UI using [`wurbo`](https://github.com/DougAnderson444/wurbo) and [`minijinja`](https://docs.rs/minijinja/latest/minijinja/) HTML Templates.
- 🟩🟩🟩 issue
- 🟩🟩🟩 offer
- 🟩🟩🟩 accept
- 🟩🟩🟩 prove
- 🟩🟩🟩 verify## Run Demo Binary
See how fast it creates and verifies credentials.
```bash
cargo run --release
```## Tests
Workspace and integration tests are located in `./tests` and can be run with:
```bash
cargo test --workspace
```When writing [`delanocreds`](/crates/delanocreds), the [`bls12-381-plus` crate](https://github.com/mikelodder7/bls12_381_plus/pull/3) wasn't wasm32 compatible, so I forked it and added wasm32 support. The wasm32 tests were added to verify the changes compile to wasm, added in `./tests/wasm.rs` using `wasm-bindgen-test` and [wasm-bindgen-cli](https://rustwasm.github.io/wasm-bindgen/wasm-bindgen-test/usage.html#appendix-using-wasm-bindgen-test-without-wasm-pack). They can be run with this command:
```bash
cargo test --target wasm32-unknown-unknown
```## Build Wasm
Because the workspace includes Wasm Interface Types (WIT), the build command must use `component build` instead of `build`. This is a wrapper around `cargo build` anyway, so it builds non-components too:
```bash
cargo component build --workspace --release
```