15 releases
0.3.1 | Oct 15, 2024 |
---|---|
0.2.3 |
|
0.2.2 | Apr 29, 2024 |
0.2.1 | Mar 27, 2024 |
0.1.6 | Nov 16, 2023 |
#103 in Authentication
2,833 downloads per month
Used in 24 crates
(6 directly)
295KB
6K
SLoC
ZKryptium
Description
ZKryptium provides an implementation in accordance with:
- BBS+(draft-irtf-cfrg-bbs-signatures-07) signature scheme
- Blind BBS Signatures (draft-kalos-bbs-blind-signatures-01)
- CL2003 (https://link.springer.com/chapter/10.1007/3-540-36413-7_20) signature scheme
This library enables the creation of zero-knowledge proofs, exposing cryptographic primitives facilitating the development of a Verifiable Credentials (VCs) system capable of handling both Anonymous Credentials and Selective Disclosure Credentials.
Getting Started
Requirements
- Rust (>= 1.65)
- Cargo (>= 1.65)
- The ZKryptium CL03 implementation also depends on the Rug crate which depends on GMP, MPFR and MPC libraries through the low-level FFI bindings in the gmp-mpfr-sys crate, which needs some setup to build; the gmp-mpfr-sys documentation has some details on usage under GNU/Linux, macOS and Windows.
Usage
BBS+:
[dependencies]
zkryptium = { version = "0.3.0", default-features = false, features = ["bbsplus"] }
CL2003:
- see the requirements above
[dependencies]
zkryptium = { version = "0.3.0", default-features = false, features = ["cl03"] }
Examples
Take a look at the examples.
You can run the example based on the BBS+ Signature Scheme with:
cargo run --example bbsplus <ciphersuite>
Available Ciphersuites:
- BLS12-381-SHA-256
- BLS12-381-SHAKE-256
You can run the example based on the CL2003 Signature Scheme with:
cargo run --example cl03 <ciphersuite>
Available Ciphersuites:
- CL1024-SHA-256
Test
To test the library you can launch the test vectors with:
cargo test
Dependencies
~10–14MB
~221K SLoC