serai/crypto/multiexp
Luke Parker b296be8515
Replace bincode with borsh (#452)
* Add SignalsConfig to chain_spec

* Correct multiexp feature flagging for rand_core std

* Remove bincode for borsh

Replaces a non-canonical encoding with a canonical encoding which additionally
should be faster.

Also fixes an issue where we used bincode in transcripts where it cannot be
trusted.

This ended up fixing a myriad of other bugs observed, unfortunately.
Accordingly, it either has to be merged or the bug fixes from it must be ported
to a new PR.

* Make serde optional, minimize usage

* Make borsh an optional dependency of substrate/ crates

* Remove unused dependencies

* Use [u8; 64] where possible in the processor messages

* Correct borsh feature flagging
2023-11-25 04:01:11 -05:00
..
src November 2023 - Rust Nightly Update (#413) 2023-11-03 05:28:07 -04:00
Cargo.toml Replace bincode with borsh (#452) 2023-11-25 04:01:11 -05:00
LICENSE Update licenses 2023-01-11 23:05:31 -05:00
README.md Add no_std support to transcript, dalek-ff-group, ed448, ciphersuite, multiexp, schnorr, and monero-generators 2023-04-22 04:38:47 -04:00

Multiexp

A multiexp implementation for ff/group implementing Straus and Pippenger. A batch verification API is also available via the "batch" feature, which enables secure multiexponentation batch verification given a series of values which should sum to the identity, identifying which doesn't via binary search if they don't.

This library was audited by Cypher Stack in March 2023, culminating in commit 669d2dbffc1dafb82a09d9419ea182667115df06. Any subsequent changes have not undergone auditing.

This library is usable under no_std, via alloc, when the default features are disabled.