2026-05-06 17:39:11 +02:00
2026-05-06 17:39:11 +02:00
2026-05-06 15:01:40 +02:00
2026-05-06 17:39:11 +02:00
2026-05-04 13:33:40 +02:00
2026-05-06 16:35:09 +02:00
2026-05-06 15:05:53 +02:00
2026-05-06 16:35:09 +02:00
2026-05-06 00:08:46 +02:00
2026-04-19 23:19:24 +02:00
2026-05-06 16:35:09 +02:00
2026-05-06 16:35:09 +02:00
2026-05-06 16:35:09 +02:00
2026-05-06 17:39:11 +02:00
2026-05-06 16:35:09 +02:00

ZKAC

Zero-Knowledge Access Control — BBS+ anonymous credentials on BLS12-381 with an encrypted session layer (X25519, ChaCha20-Poly1305, replay protection).

Documentation

Rust

[dependencies]
zkac = { path = "..." }

Public API highlights: zkac::Node, zkac::Credential, zkac::RoleRegistry, zkac::IssuerKeyPair, zkac::MAX_BBS_AUTH_PROOF_BYTES.

Python

Requires a Rust toolchain. maturin builds the zkac extension; it is not on your PATH until you install it.

uv venv && source .venv/bin/activate
# Pick one way to get the `maturin` command:
uv sync --extra dev          # installs maturin into this venv
# or:  uv pip install maturin
# or:  uvx maturin develop    # no install; runs maturin once from PyPI

maturin develop              # features come from [tool.maturin] in pyproject.toml
# Console script ``zkac-node`` lives in ``cli/``; install it into the venv:
uv sync --extra cli          # or ``--extra demo`` (Flask demos + zkac-node)
python -c "import zkac; print(zkac.role_id('admin').hex())"

Run tests: cargo test and pytest tests/test_zkac.py.

Local web UI over the CLI: demo/cli_web_server.py (see demo/README.md). Optional in-browser WASM for the Flask demo: wasm/README.md and ./demo/build_wasm.sh (needs rustup + wasm32-unknown-unknown).

License

See repository license file (if present).

Description
Zero-Knowledge Access Control :P
Readme 1.7 MiB
Languages
Rust 54%
Python 45.3%
Shell 0.7%