mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
On `core`, it'll use a serial implementation of no benefit other than the fact that when `alloc` _is_ enabled, it'll use the multi-scalar multiplication algorithms. `schnorr-signatures` was prior tweaked to include a shim for `SchnorrSignature::verify` which didn't use `multiexp_vartime` yet this same premise. Now, instead of callers writing these shims, it's within `multiexp`.
936 B
936 B
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 multiexponentiation 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 and no-alloc. With the alloc feature,
the library is fully functional. Without the alloc feature, the multiexp
function is shimmed with a serial implementation.