20 breaking releases

new 0.21.0 Dec 19, 2024
0.20.0 Jul 18, 2024
0.19.0 Jun 21, 2024
0.17.0 Mar 4, 2024
0.3.0 Nov 5, 2021

#2248 in Cryptography

Download history 103/week @ 2024-08-28 49/week @ 2024-09-04 91/week @ 2024-09-11 82/week @ 2024-09-18 121/week @ 2024-09-25 104/week @ 2024-10-02 159/week @ 2024-10-09 57/week @ 2024-10-16 78/week @ 2024-10-23 165/week @ 2024-10-30 161/week @ 2024-11-06 216/week @ 2024-11-13 415/week @ 2024-11-20 91/week @ 2024-11-27 85/week @ 2024-12-04 42/week @ 2024-12-11

687 downloads per month
Used in 16 crates

Apache-2.0

135KB
3K SLoC

A collection of utilities used by our other libraries in this workspace.

  • Pedersen commitment
  • Elgamal encryption and variations - plain Elgamal, hashed-Elgamal and batched hashed-Elgamal
  • finite field utilities like inner product, weighted inner product, hadamard product, etc.
  • multiscalar multiplication (MSM) like Fixed Base MSM
  • polynomial utilities like multiplying polynomials, creating polynomial from roots, etc.
  • An efficient way to check several equality relations involving pairings by combining the relations in a random linear combination and doing a multi-pairing check. Relies on Schwartz–Zippel lemma.
  • hashing utilities like hashing arbitrary bytes to field element or group element.
  • solving discrete log using Baby Step Giant Step algorithm

lib.rs:

A collection of utilities used by our other libraries in this workspace.

  • Pedersen commitment
  • Elgamal encryption, including Hashed Elgamal
  • finite field utilities like inner product, weighted inner product, hadamard product, etc.
  • multiscalar multiplication (MSM) like Fixed Base MSM
  • polynomial utilities like multiplying polynomials, creating polynomial from roots, etc.
  • An efficient way to check several equality relations involving pairings by combining the relations in a random linear combination and doing a multi-pairing check. Relies on Schwartz–Zippel lemma.
  • hashing utilities like hashing arbitrary bytes to field element or group element.
  • solving discrete log using Baby Step Giant Step algorithm

Dependencies

~6–14MB
~169K SLoC