George Kadianakis
7043128428
Add documentation for various internal/external functions ( #79 )
...
* Improve naming of outputs of compute_challenges()
Both are outputs
* Adjust arguments of verify_kzg_proof_impl() to match the spec
* Add documentation for all c-kzg functions
* fixup! Adjust arguments of verify_kzg_proof_impl() to match the spec
* fixup! Add documentation for all c-kzg functions
* Address review comments
Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com>
2023-01-24 14:02:58 +00:00
Justin Traglia
ae81453aaa
Remove simple blst wrapper funcs ( #82 )
...
* Remove simple blst wrapper funcs
* Fix minor nit
2023-01-23 23:01:32 +00:00
Ramana Kumar
1cfc226f7b
Add some more documentation
...
Work on #67
2023-01-20 14:04:14 +00:00
Justin Traglia
855b366da7
Rename reverse_bit_order to bit_reversal_permutation ( #76 )
2023-01-20 07:56:22 +00:00
Justin Traglia
70ed24c1ec
Reorganize functions to match spec ( #71 )
...
* Reorganize functions to match spec
* Add two forward function definitions
* Remove extern prefix from sha256 funcs
* Delete extra blank line
2023-01-18 22:56:09 +00:00
Justin Traglia
549054a5de
Rename poly_from_blob to match spec ( #72 )
2023-01-18 21:46:28 +00:00
Justin Traglia
686dda2f5b
Remove unnecessary null checks ( #69 )
2023-01-17 17:45:41 +00:00
Justin Traglia
69f6155d75
Bytes-only interface ( #62 )
...
* Convert argument types to bytes
* Update java bindings
* Update python bindings
* Update node.js bindings
* Update c# bindings
* Fix java binding compile issues
* Fix incorrect memcpy in nodejs bindings
* Fix bug (called the wrong func)
* Fix issues with java bindings
* Fix issues with node.js bindings
* Remove unnecessary wrapped funcs for c#
* Rename struct member to bytes
* Use goto out for callocs
* Fix nit
* Make un-exported funcs static
* Fix python bindings
* Check commitment length in python bindings
* Update python error message
* Steal good ideas from #37
* Fix tests.py which didn't get copied over
* Convert remaining a[] to *a
* Add missing Py_DECREF
* Bytes only rust (#1 )
* Make interface bytes only
* Fix benches
* Avoid newtypes for kzg types
* Fix benches again
* Make fields private
* tidy
* Address review comments
* Fix one small thing in rust bindings
* Use ckzg types where possible
* Remove null terminator from domain bytes in rust
* Update rust binding docs
* Use BYTES_PER_* where applicable
* Add extra check for calloc
Co-authored-by: Pawan Dhananjay <pawandhananjay@gmail.com>
2023-01-16 20:05:23 +00:00
Justin Traglia
c72ea8e1dc
Convert Blob type to struct ( #61 )
...
* Convert Blob type to struct
* Rename blob.data to blob.bytes
2023-01-12 10:10:23 -08:00
Justin Traglia
42a4419641
Convert Polynomial type to struct ( #60 )
...
* Convert Polynomial type to wrapped-struct
* Revert undesired change
* Rename poly.elements to poly.evals
2023-01-12 17:35:59 +00:00
Justin Traglia
2d2615f053
Fix some minor nits
2023-01-09 10:54:25 -06:00
Justin Traglia
c6f2c1b745
Run astyle on C files
2023-01-05 17:31:40 -06:00
Justin Traglia
be02f81147
Replace memset with initializations
2022-12-25 14:02:26 -06:00
z3n
37992b9a23
Memset Settings structs before modifying them
2022-12-23 18:45:03 -06:00
Ramana Kumar
08a1cdcd37
Merge pull request #45 from jtraglia/better-frees
...
Refactor error handling
2022-12-21 20:48:44 +00:00
Justin Traglia
0c42b74c39
Use consistent brackets
2022-12-21 14:42:50 -06:00
Justin Traglia
f33c4b8060
Rename some goto labels & fix bug
2022-12-21 14:36:29 -06:00
Justin Traglia
6cf2d2e6bd
Check fscanf return value
2022-12-21 11:47:48 -06:00
Justin Traglia
e7e09a7605
Rename goto labels
2022-12-20 11:40:44 -06:00
Justin Traglia
47adfd6812
Move free(g1_projective) to success_out
2022-12-20 10:58:19 -06:00
Justin Traglia
a1fb2542cb
Check unchecked return values
2022-12-20 10:01:21 -06:00
Justin Traglia
43f9d79786
Replace malloc call with c_kzg_malloc
2022-12-19 16:23:50 -06:00
Justin Traglia
4bd989a02a
Remove free because it's freed later
2022-12-19 15:35:39 -06:00
Justin Traglia
c45b6beba1
Clean things up a bit
2022-12-19 13:53:42 -06:00
Justin Traglia
4eb9de62d0
Free g1_projective after its final use
2022-12-19 13:29:39 -06:00
Justin Traglia
4999bd85e1
Remove try macro & convert remaining uses
2022-12-19 13:11:45 -06:00
Justin Traglia
3a17ea68a0
Free all allocs in event of an error
2022-12-19 12:21:17 -06:00
Ramana Kumar
777972d150
Free the FFTSettings when freeing a KZGSettings
...
Closes #38
2022-12-17 19:47:18 +00:00
Stefan Bratanov
b1a7d48a89
Align trusted_setup.txt with the spec
2022-12-14 12:18:02 +02:00
Ramana Kumar
cfa36097a3
Add checks that field elements are canonical
2022-12-11 20:23:48 +00:00
Ramana Kumar
547fd39e60
Add non-file-based load_trusted_setup
...
Closes #3
2022-12-10 16:23:32 +00:00
Ramana Kumar
68f1d2dd7e
Rename load_trusted_setup to load_trusted_setup_file
2022-12-10 16:07:40 +00:00
Ramana Kumar
03f5f1d5d0
Merge pull request #19 from StefanBratanov/java_binding_preset_loading
...
Java binding - load library based on a preset
2022-12-06 22:32:30 +00:00
Ramana Kumar
2bd4c3b252
Check more allocations for failure
2022-12-06 22:13:18 +00:00
Stefan Bratanov
0072efe70a
Java binding - load library based on a preset
2022-12-06 12:58:56 +00:00
Ramana Kumar
78bf846f69
Merge pull request #16 from ethereum/configure_blob_size
...
Make FIELD_ELEMENTS_PER_BLOB compile-time configurable
2022-12-06 12:48:40 +00:00
Ramana Kumar
7b3477c6e9
Merge pull request #15 from asn-d6/compute_challenges_spec
...
Bring compute_challenges() and compute_powers() closer to the spec
2022-12-02 10:48:41 +00:00
George Kadianakis
bdfa79ca47
compute_challenges(): Use a single hash_input array
2022-12-02 12:36:11 +02:00
George Kadianakis
bcf14e7662
compute_powers(): Be consistent about argument types
2022-12-02 12:35:24 +02:00
Ramana Kumar
f747834382
Add example setup for FIELD_ELEMENTS_PER_BLOB=4
2022-12-01 20:32:27 +00:00
Ramana Kumar
5b0aab2d58
Remove assumption about FIELD_ELEMENTS_PER_BLOB
2022-12-01 20:31:21 +00:00
Ramana Kumar
c9274d8f43
Make FIELD_ELEMENTS_PER_BLOB compile-time configurable
2022-11-29 20:48:12 +00:00
George Kadianakis
80fe1cb3e0
Bring compute_powers() closer to the spec
2022-11-29 19:03:19 +02:00
George Kadianakis
94aa388055
Bring compute_challenges() closer to the spec
2022-11-29 18:46:21 +02:00
Stefan Bratanov
b9777a6f67
Parameterize clang executable and the blst build script
2022-11-28 18:38:24 +00:00
Ramana Kumar
b69104859f
Make bytes big enough in case n == 0
2022-11-26 22:14:21 +00:00
Ramana Kumar
73d5d2fb0b
Statically allocate hash_output
2022-11-25 22:07:34 +00:00
Ramana Kumar
ad31161515
Update Fiat-Shamir protocol to match specs
2022-11-24 22:58:27 +00:00
Stefan Bratanov
74de86964c
change in makefiles
2022-11-24 20:36:18 +00:00
Stefan Bratanov
a7557be070
readme improvements
2022-11-24 12:32:03 +00:00
Stefan Bratanov
679cdd20ce
make sure to exit c method when trusted setup is not loaded
2022-11-24 12:10:56 +00:00
Stefan Bratanov
3136083139
using jni instead of swig (still needs work)
2022-11-24 09:14:12 +00:00
dancoffman
6cc5cb07e0
Try -fPIC
2022-11-22 12:56:05 -08:00
Ramana Kumar
bcc138560a
Update interface for verify_kzg_proof
2022-11-19 09:35:55 +00:00
Ramana Kumar
9611bfde9a
Add const
2022-11-19 09:31:36 +00:00
Ramana Kumar
8820b7a659
Remove n == 1 special case
2022-11-18 22:32:41 +00:00
Ramana Kumar
27f772402e
Make compute_powers easier to read
2022-11-18 22:20:18 +00:00
kevaundray
deb29eb59f
Fixes
...
- Switch ordering of domain separator
- When copying the polynomial into the bytes array, use the `j` value to position the pointer
2022-11-18 00:16:10 +00:00
Ramana Kumar
084fd2209e
Add n=0 special case for compute_aggregate_kzg_proof
2022-11-08 23:11:19 +00:00
Ramana Kumar
fec7acb87e
Handle n < 2 cases better in compute_aggregated_poly_and_commitment
2022-11-08 20:15:48 +00:00
Ramana Kumar
27f0d7fb25
Remove unused Polynomial typedef from interface
2022-11-04 23:29:33 +00:00
dancoffman
d007bf79d0
Do not change the default behavior of src `make`
2022-11-04 13:44:04 -07:00
dancoffman
1d20797874
Regen dist
2022-11-04 12:06:06 -07:00
dancoffman
062e4e0f30
Simplify, given updated API
2022-11-04 11:56:41 -07:00
dancoffman
ac65930b15
Use BYTES_PER_FIELD_ELEMENT
2022-11-04 11:44:57 -07:00
dancoffman
8ca4fd9e83
Merge branch '4844_3038' into dgcoffman/nodejs-bindings
2022-11-04 11:41:17 -07:00
Ramana Kumar
99a990ff32
Add some of the bytes conversions back to the interface
...
These might still be needed for the G1 elements even though they're not
needed for blobs now.
Also make FIAT_SHAMIR_PROTOCOL_DOMAIN static to avoid redefinitions.
2022-11-04 09:05:39 +00:00
dancoffman
f819fe1f20
Patch blst submodule sha
2022-11-04 00:13:02 -07:00
dancoffman
be0f51bd7e
make blst now works
2022-11-03 23:38:17 -07:00
dancoffman
a29b1580bd
Make task for blst
2022-11-03 23:23:27 -07:00
dancoffman
1514d5b826
computeAggregateKzgProof + verifyAggregateKzgProof test passes
2022-11-03 16:20:33 -07:00
dancoffman
b8151db670
Cleanup
2022-11-03 15:13:49 -07:00
dancoffman
672346f017
Closer to working
2022-11-03 14:39:20 -07:00
dancoffman
a5ca06450f
Some cleanup
2022-11-03 13:31:02 -07:00
dancoffman
fcd7fbd9e7
Checkpoint
2022-11-03 12:57:59 -07:00
Ramana Kumar
2b0f6a5c09
Update src for merged-3038 specs
...
bindings/tests not updated
2022-11-03 17:16:57 +00:00
dancoffman
726fd38a5e
Revert unnecessary platform-specific makefile change
2022-11-02 13:32:15 -07:00
dancoffman
d478234491
Revert changes that were only to make SWIG work
2022-11-02 13:30:19 -07:00
dancoffman
b169d4ab6e
Remove SWIG
2022-11-02 13:27:00 -07:00
Ramana Kumar
3b0d68036b
Fix bug in compute_powers
2022-11-02 15:51:06 +00:00
dancoffman
002fc3fa54
Tweaks
2022-11-01 21:58:21 -07:00
dancoffman
203033613f
I learned about extern C
2022-11-01 21:39:04 -07:00
dancoffman
6ec86af547
Generate bindings using SWIG and node-gyp
2022-11-01 15:00:00 -07:00
Ramana Kumar
270ba19030
Add back trusted_setup.txt
...
was lost in the move
2022-11-01 14:36:23 +00:00
Ramana Kumar
434c9ae9b9
Remove unused code, remove min- prefix
2022-11-01 14:24:02 +00:00
Ramana Kumar
30864e643f
Remove stride from eval_poly_l
...
To match b611c51874
2022-10-03 20:49:45 +01:00
Ramana Kumar
aab3df643b
Use pointers for scalars too
2022-10-02 12:09:01 +01:00
Ramana Kumar
2281cce711
Use array of pointers for vector_lincomb
...
This seems more likely to avoid copying field elements when interfacing
from high-level languages (we still have to store the pointers though).
If this is the right move, the same could be done for
blob_to_kzg_commitment, and maybe others that read sequences.
2022-10-02 11:29:23 +01:00
Ramana Kumar
b284636afd
Remove 4844 version from src (use min-src)
2022-10-02 11:12:38 +01:00
Ramana Kumar
7dcd70b95e
Use non-contiguous array for vector_lincomb
2022-10-01 16:23:41 +01:00
Ramana Kumar
96e3fc9bd8
Add blob_to_kzg_commitment to the 4844 interface
2022-09-27 13:51:08 +01:00
Ramana Kumar
48903d567f
Use bit-reversal permutation
2022-09-27 13:37:46 +01:00
Ramana Kumar
efef81bdf1
Fix segfault
2022-09-21 08:08:02 +01:00
Ramana Kumar
7e1dc4ddef
Add test of load_trusted_setup_test
...
not working yet: segfaults after the test runs
2022-09-20 23:43:38 +01:00
Dankrad Feist
2958210f67
Trusted setup for testing
2022-09-20 23:04:18 +01:00
Ramana Kumar
e18c68c64c
Add possible implementation of load_trusted_setup (untested)
2022-09-20 21:58:36 +01:00
Ramana Kumar
a7eea8b533
Start on a 4844 minimal interface
...
The object files to implement this are not correct in the Makefile.
The files probably need to be split more carefully to separate 4844
things from the rest.
2022-09-19 23:18:42 +01:00
Ramana Kumar
63fc842d6d
Make y const in check_proof_single
2022-09-19 23:17:28 +01:00
Ramana Kumar
cc049a05ca
Fix some whitespace issues
2022-09-19 19:49:11 +01:00
Ramana Kumar
c0aa4eb2cc
Add fr_vector_lincomb function
2022-09-19 19:47:16 +01:00