Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
pedersen.cpp
Go to the documentation of this file.
1#include "./pedersen.hpp"
4#include <iostream>
5
6namespace bb::crypto {
7
17template <typename Curve>
20{
21 const auto generators = context.generators->get(inputs.size(), context.offset, context.domain_separator);
22 Element result = Group::point_at_infinity;
23
24 for (size_t i = 0; i < inputs.size(); ++i) {
25 result += Element(generators[i]) * static_cast<uint256_t>(inputs[i]);
26 }
27 return result.normalize();
28}
30} // namespace bb::crypto
Performs pedersen commitments!
Definition pedersen.hpp:21
typename Curve::Element Element
Definition pedersen.hpp:24
static AffineElement commit_native(const std::vector< Fq > &inputs, GeneratorContext context={})
Given a vector of fields, generate a pedersen commitment using the indexed generators.
Definition pedersen.cpp:18
typename crypto::GeneratorContext< Curve > GeneratorContext
Definition pedersen.hpp:28
typename Group::affine_element AffineElement
Definition grumpkin.hpp:63
StrictMock< MockContext > context
AvmProvingInputs inputs
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
Curve::Element Element