Schnorr
A Rust implementation of Schnorr key generation, signing, verification, multi-signatures and Key Aggregation.
We use a cyclic group G of prime order p, a generator of g of G, and a hash function H. In our case we are using the Ristretto Group as our curve.
Documentation
Documentation is available here.
Benchmarks
Installation
To install, add the following to your project's Cargo.toml
:
[]
= "0.0.1"
Then, in your library or executable source, add:
extern crate schnorr;
By default, schnorr
builds against curve25519-dalek
's u64_backend
feature, which uses Rust's i128
feature to achieve roughly double the speed as
the u32_backend
feature. When targetting 32-bit systems, however, you'll
likely want to compile with
cargo build --no-default-features --features="u32_backend"
.
If you're building for a machine with avx2 instructions, there's also the
experimental avx2_backend
. To use it, compile with
RUSTFLAGS="-C target_cpu=native" cargo build --no-default-features --features="avx2_backend"