/tari-crypto

Tari Cryptography library

Primary LanguageRustBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Tari Crypto

Coverage Status

This crate is part of the Tari Cryptocurrency project.

Major features of this library include:

  • Pedersen commitments
  • Schnorr Signatures
  • Generic Public and Secret Keys
  • no-std support

The tari_crypto crate makes heavy use of the excellent Dalek libraries. The default implementation for Tari ECC is the Ristretto255 curve.

Feature flags

bulletproofs_plus

This adds in support for rangeproofs using the tari bulletproof plus library

serde

This adds serialise and deserialize support for all structs using the serde library

borsh

This adds serialise and deserialize support for all structs using the borsh library

precomputed_tables

This uses optimised precomputed tables for calculations. While this is faster than straight-up calculations, this requires large memory to store which is not ideal for small no_std devices

WASM and FFI support

TariCrypto has external WASM and FFI wrappers available here WASM: https://github.com/tari-project/tari-crypto-wasm FFI: https://github.com/tari-project/tari-crypto-ffi

Benchmarks

To run the benchmarks:

$ cargo bench

The benchmarks use Criterion and will produce nice graphs (if you have gnuplot installed)