Crate p256k1

Crate p256k1 

Source
Expand description

§p256k1

Rust wrappers around libsecp256k1 to expose unwrapped points and scalars with multi-exponentiation

p256k1 is a library providing group operations on secp256k1, a prime order Weierstrass curve.

p256k1 provides access to curve points in Jacobian coordinates, which allows for very fast operations. Standard math operators are implemented to allow writing code which closely resembles the underlying math. The BitXor operator is used for scalar exponentiation, using a fast square and multiply algorithm; this provides a very natural and intuitive API. Fast multi-exponentiation is provided using the standard Pippenger algorithm.

§Dependencies

Stable rust with a working cargo. Also need llvm to build secp256k1 and link the wrappers.

§Ubuntu

$ apt install llvm

§MacOS with brew

After installing llvm, be sure to follow the instructions on updating .zshrc so llvm can be used by the build system.

$ brew install llvm

Modules§

context
secp256k1 context operations
ecdsa
ECDSA operations
errors
Errors
field
Field elements arithmetic
keys
Key operations on the secp256k1 curve
point
Point operations on the secp256k1 curve
scalar
Scalar arithmetic modulo the group order
schnorr
Schnorr proofs
traits
Traits