This is Algorand's implementation of Pixel signature, over the BLS12-381 curve. Useful links:
hash to groups
and membership testing
, etc.cargo build
builds a debug version;cargo build --release
builds the release version;cargo test [--release]
runs basic tests;cargo test -- --ignored [--release]
runs long tests;cargo bench
runs benchmarks.test_vector
calls this rust library to generate a list of test vectors.pixel-python/test_vector.py
is a python script that generates a list of test vectors.test_vector.py
also compares the binary outputs of Rust and python match.Following the guidelines from Facebook's libra source code and Rust API Guidelines.
cargo fmt
for coding stylecargo clippy --all-targets --all-features -- -D warnings
for lintcargo doc
for documentation.Exceptions:
_sec
. Always ensure primitive types get cleaned with Zeroize
crate;
or get passed to the caller. Secret key related structures implements zeroing
on drop.clone()
function on secret data as possible - this will create two copies of the data. If clone()
is used, always clean it after use.cargo doc --open
target/doc/pixel/index.html