* Intentionally fail to compile with a FIELD_ELEMENTS_PER_BLOB value that is not a power of 2.
We do not want to support or maintain this case, so let us be explicit about it.
* Update src/c_kzg_4844.h
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* Update src/c_kzg_4844.h
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
---------
Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
* modify directory structure to isolate the generated bindings
* add a lib.rs file
* move deref impls to the extension file
* remove unused types from generated bindings
* cleanup new lines to reduce diff noise
* reorder definitions to reduce diff noise
* move sync and send impls to the extension file
* generate bindings
* blacklist used bindings; create snapshots dir to ensure freshness in the future
* fix typo. Ty @pawanjay176
* run cargo build after merge
* custom impl for KZGCommitment and KZGProof
* final touches
VLA's are prone to cause (silent!) stack overflows and a potential cause of security vulns.
While the usage pattern is probably safe in our context, changing to a more robust solution seems prudent.
* Documentation update
* Documentation for division. Note that the doc says that the behaviour for a/0 is unspecified. Feel free to change.
* Add some Documentation. This fixes item #3 in https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/ByXAsi21h
* Moved documentation remark for doxygen @remark to in-code remark. The remark is not useful for API-documentation (it refers to a macro that is not part of the API).
* More verbose comment for bit_reversal_permutation.
* doxygen comment parameter name did not match variable name. Fix this.
* Remove parameter n from doxygen comment of compute_challenge, as there is no such argument.
This fixes#4 in https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/ByXAsi21h
* In compute_kzg_proof_impl, document the role of the m variable that is used to indicate whether the evaluation point is one of the interpolation points.
* Run `make format`
* Improve multiline comments from `make format` in middle of the code
---------
Co-authored-by: George Kadianakis <desnacked@riseup.net>
* Start to add fuzzers
* Update path to trusted setup in gen_corpus
* Update path one more time
* Add support for two more targets
* Add fuzzers for remaining targets
* Clean up a little
* Add README
* Fix typos
* De-dup fuzzing files
* Add newline at the end of base_fuzz
* Make generic rule for displaying targets
* Use regular make command
* Remove duplicate targets
* Update .gitignore file
* Run clang sanitizers in CI + workflow cleanup
* Update makefile
* Update workflow names
* Simplify more
* Run go benchmarks in CI
* Fix indentation nits
* Initialize variable in fr_is_one
* Revert "Initialize variable in fr_is_one"
This reverts commit f4c2749e410c68479f83d78c9a1780efe191c7fe.
* Move .PHONY outside of condition
The previous statement was slightly wrong. Being a primite root does not mean r^( (q-1)/2) != 1.
If q=1 == 2^s * t, the latter is satisfied by e.g. t'th roots of unity, but those are not primitive roots by the usual definition.
Fortunately, the actual computation of 2^i'th roots of unity does not require a primitve root to start with, only a non-square.
* feat(node-bindings): move KzgSettings to c
* fix(node-bindings): typo in comment
* fix(node-bindings): remove unnecessary SetInstanceData
* feat(node-bindings): use C for setting instance data
* docs(node-bindings): fix comment on struct
* refactor(node-bindings): revert export order to minimize diff
* Update Compute*KZGProof in rust bindings
* Remove the boxing from the blobs
and implement get_blobs() a bit less promiscuously
* Improve pattern matching style
* Run `cargo fmt`
* Remove a println
* No need to clone commitments