Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
c_bind.cpp
Go to the documentation of this file.
1#include "c_bind.hpp"
5#include "global_crs.hpp"
9#include <cstddef>
10#include <cstdint>
11#include <sys/types.h>
12
13using namespace bb;
14
19WASM_EXPORT void srs_init_srs(uint8_t const* points_buf, uint32_t const* num_points_buf)
20{
21 auto num_points = ntohl(*num_points_buf);
22 auto g1_points = std::vector<g1::affine_element>(num_points);
23 for (size_t i = 0; i < num_points; ++i) {
24 g1_points[i] = from_buffer<bb::g1::affine_element>(points_buf, i * 64);
25 }
26 auto g2_point = bb::srs::get_bn254_g2_crs_element();
27 bb::srs::init_bn254_mem_crs_factory(g1_points, g2_point);
28}
29
34WASM_EXPORT void srs_init_grumpkin_srs(uint8_t const* points_buf, uint32_t const* num_points)
35{
36 std::vector<curve::Grumpkin::AffineElement> points(ntohl(*num_points));
37 for (uint32_t i = 0; i < points.size(); ++i) {
38 points[i] = from_buffer<curve::Grumpkin::AffineElement>(points_buf, i * sizeof(curve::Grumpkin::AffineElement));
39 }
41}
typename Group::affine_element AffineElement
Definition grumpkin.hpp:56
g2::affine_element get_bn254_g2_crs_element()
Reference BN254 G2 element from the trusted setup CRS.
void init_grumpkin_mem_crs_factory(std::vector< curve::Grumpkin::AffineElement > const &points)
void init_bn254_mem_crs_factory(std::vector< g1::affine_element > const &points, g2::affine_element const &g2_point)
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
WASM_EXPORT void srs_init_grumpkin_srs(uint8_t const *points_buf, uint32_t const *num_points)
Definition c_bind.cpp:34
WASM_EXPORT void srs_init_srs(uint8_t const *points_buf, uint32_t const *num_points_buf)
Definition c_bind.cpp:19
#define WASM_EXPORT