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"
4#include "global_crs.hpp"
8#include <cstddef>
9#include <cstdint>
10#include <sys/types.h>
11
12using namespace bb;
13
18WASM_EXPORT void srs_init_srs(uint8_t const* points_buf, uint32_t const* num_points_buf, uint8_t const* g2_point_buf)
19{
20 auto num_points = ntohl(*num_points_buf);
21 auto g1_points = std::vector<g1::affine_element>(num_points);
22 for (size_t i = 0; i < num_points; ++i) {
23 g1_points[i] = from_buffer<bb::g1::affine_element>(points_buf, i * 64);
24 }
25 auto g2_point = from_buffer<g2::affine_element>(g2_point_buf);
26 bb::srs::init_bn254_mem_crs_factory(g1_points, g2_point);
27}
28
33WASM_EXPORT void srs_init_grumpkin_srs(uint8_t const* points_buf, uint32_t const* num_points)
34{
35 std::vector<curve::Grumpkin::AffineElement> points(ntohl(*num_points));
36 for (uint32_t i = 0; i < points.size(); ++i) {
37 points[i] = from_buffer<curve::Grumpkin::AffineElement>(points_buf, i * sizeof(curve::Grumpkin::AffineElement));
38 }
40}
typename Group::affine_element AffineElement
Definition grumpkin.hpp:56
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:33
WASM_EXPORT void srs_init_srs(uint8_t const *points_buf, uint32_t const *num_points_buf, uint8_t const *g2_point_buf)
Definition c_bind.cpp:18
#define WASM_EXPORT