barretenberg
Loading...
Searching...
No Matches
src
barretenberg
crypto
pedersen_commitment
pedersen.hpp
1
// TODO(@zac-wiliamson #2341 delete this file once we migrate to new hash standard
2
3
#pragma once
4
#include "../generators/generator_data.hpp"
5
#include "barretenberg/ecc/curves/bn254/bn254.hpp"
6
#include "barretenberg/ecc/curves/grumpkin/grumpkin.hpp"
7
#include <array>
8
9
namespace
crypto
{
10
21
template
<
typename
Curve>
class
pedersen_commitment_base
{
22
public
:
23
using
AffineElement =
typename
Curve::AffineElement;
24
using
Element =
typename
Curve::Element;
25
using
Fr =
typename
Curve::ScalarField;
26
using
Fq =
typename
Curve::BaseField;
27
using
Group =
typename
Curve::Group;
28
using
GeneratorContext =
typename
crypto::GeneratorContext<Curve>
;
29
30
static
AffineElement
commit_native
(
const
std::vector<Fq>& inputs, GeneratorContext context = {});
31
};
32
33
extern
template
class
pedersen_commitment_base<curve::Grumpkin>
;
34
using
pedersen_commitment
=
pedersen_commitment_base<curve::Grumpkin>
;
35
}
// namespace crypto
crypto::pedersen_commitment_base
Performs pedersen commitments!
Definition:
pedersen.hpp:21
crypto::pedersen_commitment_base::commit_native
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:21
crypto
Definition:
aes128.cpp:9
crypto::GeneratorContext
Definition:
generator_data.hpp:133
Generated by
1.9.6