From ea94c8f1a9acaf90b9fd69d242ba424eaae14560 Mon Sep 17 00:00:00 2001 From: CblPOK-git Date: Mon, 6 Nov 2023 16:30:40 +0000 Subject: [PATCH] add initial bls12381 examples #54 --- examples/cpp/CMakeLists.txt | 2 ++ examples/cpp/bls12_381_curve_add.cpp | 15 +++++++++++++++ examples/cpp/bls12_381_field_add.cpp | 20 ++++++++++++++++++++ examples/inputs/bls12_381_curve_add.inp | 4 ++++ examples/inputs/bls12_381_field_add.inp | 2 ++ 5 files changed, 43 insertions(+) create mode 100644 examples/cpp/bls12_381_curve_add.cpp create mode 100644 examples/cpp/bls12_381_field_add.cpp create mode 100644 examples/inputs/bls12_381_curve_add.inp create mode 100644 examples/inputs/bls12_381_field_add.inp diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt index 29a9cc57..b23e9251 100644 --- a/examples/cpp/CMakeLists.txt +++ b/examples/cpp/CMakeLists.txt @@ -119,3 +119,5 @@ add_example_without_proving(balances_tree_cpp_example SOURCES balances_tree.cpp add_example_without_proving(eddsa_signature_verification_cpp SOURCES eddsa_signature_verification.cpp INPUT eddsa_signature_verification.inp) add_example_without_proving(zkbridge_cpp SOURCES zkbridge.cpp INPUT zkbridge.inp) + +# add_example_with_proving(bls12_381_curve_add SOURCES bls12_381_curve_add.cpp INPUT bls12_381_curve_add.inp) diff --git a/examples/cpp/bls12_381_curve_add.cpp b/examples/cpp/bls12_381_curve_add.cpp new file mode 100644 index 00000000..9debdc29 --- /dev/null +++ b/examples/cpp/bls12_381_curve_add.cpp @@ -0,0 +1,15 @@ +[[circuit]] __zkllvm_curve_bls12381 add(__zkllvm_curve_bls12381 a, __zkllvm_curve_bls12381 b) { + return a + b; +} + + +// #include + +// using namespace nil::crypto3::algebra::curves; + +// [[circuit]] typename bls12<381>::template g1_type<>::value_type hash_to_curve( +// typename bls12<381>::template g1_type<>::value_type a, +// typename bls12<381>::template g1_type<>::value_type b) { + +// return a + b; +// } diff --git a/examples/cpp/bls12_381_field_add.cpp b/examples/cpp/bls12_381_field_add.cpp new file mode 100644 index 00000000..e50e9440 --- /dev/null +++ b/examples/cpp/bls12_381_field_add.cpp @@ -0,0 +1,20 @@ +#include + +using namespace nil::crypto3::algebra::fields; + +[[circuit]] typename bls12_base_field<381>::value_type add( + typename bls12_base_field<381>::value_type a, + typename bls12_base_field<381>::value_type b) { + + return a + b; +} + + + + +// [[circuit]] typename ed25519::template g1_type::value_type curve_mul( +// typename ed25519::template g1_type::value_type point, +// typename ed25519::scalar_field_type::value_type scalar) { + +// return point * scalar; +// } \ No newline at end of file diff --git a/examples/inputs/bls12_381_curve_add.inp b/examples/inputs/bls12_381_curve_add.inp new file mode 100644 index 00000000..76067ae4 --- /dev/null +++ b/examples/inputs/bls12_381_curve_add.inp @@ -0,0 +1,4 @@ +[ + {"curve":[1, 1]}, + {"curve":[1, 1]} +] diff --git a/examples/inputs/bls12_381_field_add.inp b/examples/inputs/bls12_381_field_add.inp new file mode 100644 index 00000000..e7706846 --- /dev/null +++ b/examples/inputs/bls12_381_field_add.inp @@ -0,0 +1,2 @@ +[ {"field":"999"}, + {"field":"0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaa"} ]