Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
curve_constants.cpp
Go to the documentation of this file.
1
5#include "curve_constants.hpp"
11#include <iostream>
12
13namespace bb {
14
51
52static CurveConstants get_curve_constants()
53{
54 CurveConstants constants;
55
56 // BN254
61
62 // Grumpkin (note: grumpkin::fq is bb::fr, grumpkin::fr is bb::fq)
66
67 // Secp256k1
71
72 // Secp256r1
76
77 return constants;
78}
79
80std::vector<uint8_t> get_curve_constants_msgpack()
81{
82 CurveConstants constants = get_curve_constants();
83 msgpack::sbuffer buffer;
84 msgpack::pack(buffer, constants);
85
86 // Convert msgpack buffer to vector
87 return std::vector<uint8_t>(buffer.data(), buffer.data() + buffer.size());
88}
89
91{
92 auto msgpack_data = get_curve_constants_msgpack();
93 std::cout.write(reinterpret_cast<const char*>(msgpack_data.data()),
94 static_cast<std::streamsize>(msgpack_data.size()));
95}
96
97} // namespace bb
group_elements::affine_element< Fq, Fr, Params > affine_element
Definition group.hpp:42
static constexpr element one
Definition group.hpp:46
Programmatic interface for generating msgpack-encoded curve constants.
uint8_t buffer[RANDOM_BUFFER_SIZE]
Definition engine.cpp:34
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
std::vector< uint8_t > get_curve_constants_msgpack()
Generate msgpack-encoded curve constants for all supported curves.
void write_curve_constants_msgpack_to_stdout()
Write msgpack-encoded curve constants to stdout.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
MSGPACK_FIELDS(bn254_fr_modulus, bn254_fq_modulus, bn254_g1_generator, bn254_g2_generator, grumpkin_fr_modulus, grumpkin_fq_modulus, grumpkin_g1_generator, secp256k1_fr_modulus, secp256k1_fq_modulus, secp256k1_g1_generator, secp256r1_fr_modulus, secp256r1_fq_modulus, secp256r1_g1_generator)
secp256k1::g1::affine_element secp256k1_g1_generator
bb::g1::affine_element bn254_g1_generator
bb::g2::affine_element bn254_g2_generator
secp256r1::g1::affine_element secp256r1_g1_generator
grumpkin::g1::affine_element grumpkin_g1_generator
static constexpr uint256_t modulus