#crypto #ECDSA #secp256k1 #libsecp256k1 #bitcoin

sys secp256k1

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

57 releases (15 breaking)

0.16.0 Nov 5, 2019
0.15.3 Aug 19, 2019
0.15.0 Jul 26, 2019
0.12.2 Jan 18, 2019
0.1.2 May 4, 2015

#54 in Cryptography

Download history 5856/week @ 2019-07-23 5966/week @ 2019-07-30 7013/week @ 2019-08-06 5993/week @ 2019-08-13 6952/week @ 2019-08-20 6551/week @ 2019-08-27 7289/week @ 2019-09-03 6365/week @ 2019-09-10 8000/week @ 2019-09-17 6770/week @ 2019-09-24 4526/week @ 2019-10-01 5758/week @ 2019-10-08 5861/week @ 2019-10-15 6875/week @ 2019-10-22 6035/week @ 2019-10-29

27,514 downloads per month
Used in 118 crates (59 directly)

CC0 license

535KB
11K SLoC

C 6.5K SLoC // 0.1% comments Rust 3K SLoC // 0.2% comments Assembly 829 SLoC Java 438 SLoC // 0.3% comments Automake 158 SLoC Shell 2 SLoC

Build Status

Full documentation

rust-secp256k1

rust-secp256k1 is a wrapper around libsecp256k1, a C library by Pieter Wuille for producing ECDSA signatures using the SECG curve 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

Contributing

Contributions to this library are welcome. A few guidelines:

  • Any breaking changes must have an accompanied entry in CHANGELOG.md
  • No new dependencies, please.
  • No crypto should be implemented in Rust, with the possible exception of hash functions. Cryptographic contributions should be directed upstream to libsecp256k1.
  • This library should always compile with any combination of features on Rust 1.22.

Dependencies

~0–310KB