#signatures #picnic

no-std picnic-bindings

Bindings for the Picnic digital signature scheme

10 releases

Uses new Rust 2021

new 0.5.2 Sep 26, 2022
0.5.1 Aug 31, 2022
0.4.2 Apr 5, 2022
0.4.1 Dec 6, 2021
0.1.1 Oct 20, 2021

#365 in Cryptography

Download history 2/week @ 2022-06-12 6/week @ 2022-06-19 2/week @ 2022-06-26 9/week @ 2022-07-03 9/week @ 2022-07-10 17/week @ 2022-07-17 17/week @ 2022-07-24 12/week @ 2022-07-31 6/week @ 2022-08-07 74/week @ 2022-08-14 18/week @ 2022-08-21 30/week @ 2022-08-28 10/week @ 2022-09-04 25/week @ 2022-09-11 6/week @ 2022-09-18 50/week @ 2022-09-25

94 downloads per month
Used in pqcrypto-picnic

MIT license

3MB
35K SLoC

C 31K SLoC // 0.0% comments GNU Style Assembly 1.5K SLoC // 0.1% comments Rust 1.5K SLoC // 0.0% comments C++ 657 SLoC // 0.1% comments SWIG 298 SLoC // 0.2% comments Shell 45 SLoC Python 23 SLoC // 0.3% comments

Bindings for the Picnic digital signature scheme

This crate provides bindings for the optimized implementation of the Picnic digital signature scheme. It implements the traits of the signature crate.

Features

This crate supports the following features:

  • picnic (default): Enable the Picnic parameter sets with ZKB++/Fiat-Shamir as proof system.
  • unruh-transform: Enable the Picnic parameter sets with ZKB++/Unruh as proof system.
  • picnic3 (default): Enable the Picnic parameter sets with KKW/Fiat-Shamir as proof system.
  • system (default): Use the shared library of Picnic per default.
  • static-fallback (default): Build Picnic on demand if shared library is not available.
  • std (default): Use std.
  • subtle: Provide constant-time equality comparison for SigningKey.
  • serialization: Enable serialization with serde.
  • zeroize: Enable zeroziation of private keys via zeroize.

If the crate is not built with std enabled, the alloc crates is used.

Security Notes

This crate has received no security audit. Use at your own risk.

License

This crate is licensed under the MIT license.

Dependencies