nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group > Struct Template Reference

#include <pedersen.hpp>

+ Collaboration diagram for nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >:

Classes

struct  construction
 
struct  stream_processor
 

Public Types

using base_hash_type = pedersen_to_point< params, base_point_generator_hash, group_type >
 
using base_point_generator_hash = BasePointGeneratorHash
 
using curve_type = typename base_hash_type::curve_type
 
using digest_type = std::vector< bool >
 
using group_type = Group
 
using group_value_type = typename base_hash_type::group_value_type
 
using internal_accumulator_type = hashing_to_curve_accumulator_set< base_hash_type >
 
using params = Params
 
using result_type = digest_type
 

Static Public Member Functions

static void init_accumulator (internal_accumulator_type &acc)
 
static result_type process (internal_accumulator_type &acc)
 
template<typename InputRange >
static void update (internal_accumulator_type &acc, const InputRange &range)
 
template<typename InputIterator >
static void update (internal_accumulator_type &acc, InputIterator first, InputIterator last)
 

Static Public Attributes

static constexpr std::size_t digest_bits = group_type::field_type::value_bits
 

Member Typedef Documentation

◆ base_hash_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::base_hash_type = pedersen_to_point<params, base_point_generator_hash, group_type>

◆ base_point_generator_hash

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::base_point_generator_hash = BasePointGeneratorHash

◆ curve_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::curve_type = typename base_hash_type::curve_type

◆ digest_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::digest_type = std::vector<bool>

◆ group_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::group_type = Group

◆ group_value_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::group_value_type = typename base_hash_type::group_value_type

◆ internal_accumulator_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::internal_accumulator_type = hashing_to_curve_accumulator_set<base_hash_type>

◆ params

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::params = Params

◆ result_type

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
using nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::result_type = digest_type

Member Function Documentation

◆ init_accumulator()

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
static void nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::init_accumulator ( internal_accumulator_type acc)
inlinestatic

◆ process()

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
static result_type nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::process ( internal_accumulator_type acc)
inlinestatic

◆ update() [1/2]

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
template<typename InputRange >
static void nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::update ( internal_accumulator_type acc,
const InputRange &  range 
)
inlinestatic

◆ update() [2/2]

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
template<typename InputIterator >
static void nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::update ( internal_accumulator_type acc,
InputIterator  first,
InputIterator  last 
)
inlinestatic

Member Data Documentation

◆ digest_bits

template<typename Params = find_group_hash_default_params, typename BasePointGeneratorHash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
constexpr std::size_t nil::crypto3::hashes::pedersen< Params, BasePointGeneratorHash, Group >::digest_bits = group_type::field_type::value_bits
staticconstexpr

The documentation for this struct was generated from the following files: