#libsecp256k1 #ecdsa #bitcoin #ethereum #elliptic-curve #secp256k1

yanked parity-secp256k1

Fork of Rust bindings for Pieter Wuille’s libsecp256k1 library. Implements ECDSA for the SECG elliptic curve group secp256k1 and related utilities.

2 unstable releases

Uses old Rust 2015

0.7.0 Oct 23, 2019
0.6.0 Oct 22, 2019

#14 in #libsecp256k1

Download history 1504/week @ 2024-01-10 1086/week @ 2024-01-17 1044/week @ 2024-01-24 561/week @ 2024-01-31 728/week @ 2024-02-07 828/week @ 2024-02-14 902/week @ 2024-02-21 802/week @ 2024-02-28 908/week @ 2024-03-06 616/week @ 2024-03-13 889/week @ 2024-03-20 843/week @ 2024-03-27 884/week @ 2024-04-03 770/week @ 2024-04-10 899/week @ 2024-04-17 749/week @ 2024-04-24

3,442 downloads per month
Used in 20 crates (via near-crypto-v01)

CC0 license

495KB
10K SLoC

C 7K SLoC // 0.1% comments Rust 1.5K SLoC // 0.1% comments GNU Style Assembly 742 SLoC // 0.1% comments Java 437 SLoC // 0.3% comments M4 224 SLoC // 0.3% comments Automake 158 SLoC Shell 2 SLoC

Contains (obscure autoconf code, 19KB) depend/secp256k1/configure.ac

Build Status crates.io

parity-secp256k1

parity-secp256k1 is a wrapper around libsecp256k1, a C library by Peter Wuille for producing ECDSA signatures using the SECG curve secp256k1. It is a fork of rust-secp256k1.

This library

  • exposes type-safe Rust bindings for all libsecp256k1 functions
  • implements key generation
  • implements deterministic nonce generation via RFC6979
  • implements many unit tests, adding to those already present in libsecp256k1
  • makes no allocations (except in unit tests) for efficiency and use in freestanding implementations

Full documentation

Build

Clone the repository. Run the following:

git submodule init
git submodule update
cargo check

Dependencies

~0.6–0.8MB
~15K SLoC