* feat: use `XofReader` instead of `io::Read` for no_std compatibility
* feat: remove `thiserror` dependency
thiserror is not no_std safe
* feat: move deps std features behind new `std` feature
- add new `std` feature
- add `simd_backend`
- move `colored` dep behind profile feature
* feat: use old rand(v0.7) for cubic example.
since curve25519-dalek (v3) uses old rand(v0.7) we need this.
should upgrade curve25519-dalek to v4 once it out of pre release
* feat: only build bench & profile if std in enabled
* feat: remove rand_core as dependency
* feat(ci): add job to test wasm build
* fix: rollback rand to v7 and update debug test
* fix(ci): Cargo.toml patching
* feat: make clippy happy
* feat: add wasm doc in readme
* feat: readme formatting
* feat: derive `Default` for `ProofVerifyError`
* This commit makes adding an arbitrary number of variables and inputs possible and removes the
implementation leaking to the interface for
num_inps + 1 <= num_vars, num_vars: a power of 2, num_cons: a power of 2, but not 1.
1. When creating a new R1CS Instance throught the public interface,
it is required # constraints and # of vars be a power of 2. I remove
that requirement by padding with dummy constraints and vars until the nearest
power of 2.
2. The sumcheck protocol in src/sumcheck.rs does not work for 1 constraint, even
though 1 is a power of 2. I have to pad to a minimum of two constraints.
3. Added a test in src/r1csproof.rs called test_padded_constraints.
* Move test to src/lib.rs
* Remove padding metadata
* remove unused use
* Simplify padding to power of 2
* run cargo fmt
* Fix indexing bug
* Rayon is optional, depending on 'multicore' feature
* Update rust toolchain
* cargo fmt
* cleaner to track num_vars_padded and num_cons_padded
* cleanup
* further cleanup
* Cleanup & comments
* small fixes
* adjust code for padding constraints
* fix a bug with pad call
* add comment about num_nz_entries
* extend padding to NIZK methods
extend padding to NIZK methods
Co-authored-by: Lef Ioannidis <elefthei@seas.upenn.edu>
Co-authored-by: Srinath Setty <srinath@microsoft.com>
This:
- introduces a small [thiserror](https://github.com/dtolnay/thiserror)-powered enum to improve ProofVerifyError's messages,
- refactors point decompression errors into a variant of that enum, thereby suppressing the panics which occur when decompresison fails.
- folds other panics into the Error cases of their enclosing `Result` return