Commit Graph

645 Commits

Author SHA1 Message Date
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 7e3189d48a
Python bindings workflow (#65)
* Add python bindings workflow

* Update test name

* Build blst first

* Build ckzg too
2023-01-13 08:25:27 -08:00
George Kadianakis 158977085c
node bindings: Add some missing memory allocation checks (#64)
* node bindings: Add some memory allocation checks

* fixup! node bindings: Add some memory allocation checks
2023-01-13 08:24:25 -08: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
Pawan Dhananjay 2c151d7f7e
Rust bindings (#4)
* working build

* Move bindings.rs to root directory

* tidy build script

* Add initial rust safe bindings

* import fewer c stuff in bindings

* remove unnecessary blst definitions in bindings

* remove bindgen build dependency

* improve interface

* Remove more stuff from bindings

* Add a simple test

* Update error type

* Update verify_kzg_proof interface

* Return array instead of vec

* link with no-pie

* impl Send and Sync for KzgSettings; change mut pointers to const

* Remove no-pie linking

* Make FIELD_ELEMENTS_PER_BLOB a compile time variable

* Add load_trusted_setup method

* Cleanup

* Add failure case to bytes_to_bls_field

* Fix conditional compilation and ensure canonical blobs in test

* Add test vectors

* Remove blobk_commitment test case

* Change function signature

* Copy and delete instead of rename in build script

* Make consts public

* Add error conditions for invalid trusted setup

* Lowercase renamings

* Make blob public

* Add benchmarks

* Run test vectors only for mainnet spec

* Add README

* clippy

* Add rust CI checks

* actually add CI checks

* Fix CI

* Fix workflow again
2023-01-12 17:50:12 +00: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
Ramana Kumar ee2fb80d7c
Merge pull request #58 from jtraglia/csharp-check-ret-value
Check ret of blob_to_kzg_commitment in c# bindings
2023-01-10 20:47:12 -08:00
Ramana Kumar 45c4d3d3f2
Merge pull request #59 from jtraglia/nodejs-blob-to-comm-ret
Check ret of blob_to_kzg_commitment in nodejs bindings
2023-01-10 20:45:14 -08:00
Justin Traglia 57a9666f93 Check ret of blob_to_kzg_commitment in nodejs bindings 2023-01-10 15:52:24 -06:00
Ramana Kumar 7f4a8f0934
Merge pull request #57 from jtraglia/check-ret-python-binding
Check blob_to_kzg_commitment ret in python binding
2023-01-09 20:05:30 -08:00
Ramana Kumar e5222b3e53
Merge pull request #56 from jtraglia/clean-up
Fix some minor nits
2023-01-09 20:04:27 -08:00
Justin Traglia b404758368 Update expectedProofComputed values 2023-01-09 16:26:00 -06:00
Justin Traglia b60e116ec5 Fix some more minor typos 2023-01-09 16:15:01 -06:00
Justin Traglia 658b43ec16 Check ret of blob_to_kzg_commitment in c# bindings 2023-01-09 15:22:13 -06:00
Justin Traglia 071bd6a704 Check blob_to_kzg_commitment ret in python binding 2023-01-09 11:51:05 -06:00
Justin Traglia 2d2615f053 Fix some minor nits 2023-01-09 10:54:25 -06:00
Ramana Kumar 7aa44cbd5b
Merge pull request #54 from jtraglia/run-astyle
Run astyle on C files
2023-01-06 11:15:04 +00:00
Justin Traglia c6f2c1b745 Run astyle on C files 2023-01-05 17:31:40 -06:00
Ramana Kumar 13f2a79345
Merge pull request #52 from jtraglia/replace-memset
Replace memset with initializations
2022-12-25 22:14:55 +00:00
Justin Traglia be02f81147 Replace memset with initializations 2022-12-25 14:02:26 -06:00
Ramana Kumar 6b0bdeac75
Merge pull request #51 from z3n-chada/memset-settings
Memset Settings structs before modifying them
2022-12-25 07:12:07 +00: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
Ramana Kumar de91ee1bbc
Merge pull request #50 from jtraglia/check-fscanf-ret-value
Check fscanf return value
2022-12-21 20:21:29 +00: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
Ramana Kumar 8c4e8fdbbe
Merge pull request #48 from StefanBratanov/correct_return
[Java binding] return NULL instead of 0 for jbyteArray methods
2022-12-20 17:02:48 +00:00
Justin Traglia 47adfd6812 Move free(g1_projective) to success_out 2022-12-20 10:58:19 -06:00
Stefan Bratanov 00ff3f0a78 [Java binding] return NULL instead of 0 for jbyteArray methods 2022-12-20 18:34:29 +02:00
Justin Traglia a1fb2542cb Check unchecked return values 2022-12-20 10:01:21 -06:00
Ramana Kumar c49312af56
Merge pull request #47 from StefanBratanov/invalid_blob_size
[Java binding] Throw exception for an invalid blob size
2022-12-20 14:54:25 +00:00
Stefan Bratanov 5399336f6a [Java binding] Throw exception for an invalid blob size 2022-12-20 16:49:24 +02:00
Ramana Kumar b8d90a5080
Merge pull request #43 from jtraglia/unix-arm-builds
Add ARM support for Java bindings
2022-12-20 11:05:02 +00: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
Ramana Kumar 8b0ff7a8ee
Merge pull request #44 from jtraglia/check-malloc-ret
Check that malloc'd settings isn't null
2022-12-19 20:34:34 +00: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 142f9c5175 Call return after throw_exception 2022-12-19 12:22:45 -06:00
Justin Traglia 3a17ea68a0 Free all allocs in event of an error 2022-12-19 12:21:17 -06:00
Justin Traglia 26c57c4444 Check that malloc'd settings isn't null 2022-12-19 10:53:04 -06:00
Justin Traglia 3a62ca018e Convert Linux x86_64 to amd64 2022-12-19 09:52:54 -06:00
Justin Traglia 4c5f88d828 Add support for Unix ARM builds 2022-12-19 09:41:02 -06:00
Ramana Kumar 82ee54793c
Merge pull request #40 from StefanBratanov/release_jni_arrays
[Java binding] Release JNI arrays
2022-12-18 09:17:01 +00:00
Stefan Bratanov b6c0beaf8b defensive if 2022-12-18 11:13:26 +02:00
Stefan Bratanov d06df97716 [Java binding] Release JNI arrays 2022-12-18 10:58:57 +02:00
Ramana Kumar ddcf9ebff6
Merge pull request #39 from ethereum/free-fs
Free the FFTSettings when freeing a KZGSettings
2022-12-17 19:54:46 +00:00