Classes |
Public Types |
Static Public Member Functions |
Static Public Attributes |
List of all members
nil::crypto3::hashes::pedersen_to_point< Params, BasePointGeneratorHash, Group > Struct Template Reference
Pedersen hash. More...
#include <pedersen.hpp>
Collaboration diagram for nil::crypto3::hashes::pedersen_to_point< Params, BasePointGeneratorHash, Group >:
Classes | |
class | internal_accumulator_type |
Public Types | |
using | base_point_generator = find_group_hash< params, base_point_generator_hash, group_type > |
using | base_point_generator_hash = BasePointGeneratorHash |
using | curve_type = typename group_type::curve_type |
using | digest_type = group_value_type |
using | group_type = Group |
using | group_value_type = typename group_type::value_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 , typename std::enable_if< std::is_same< bool, typename std::iterator_traits< typename InputRange::iterator >::value_type >::value, bool >::type = true> | |
static void | update (internal_accumulator_type &acc, const InputRange &range) |
template<typename InputIterator , typename std::enable_if< std::is_same< bool, typename std::iterator_traits< InputIterator >::value_type >::value, bool >::type = true> | |
static void | update (internal_accumulator_type &acc, InputIterator first, InputIterator last) |
Static Public Attributes | |
static constexpr std::size_t | chunk_bits = 3 |
static constexpr std::size_t | chunks_per_base_point |
See definition of c in https://zips.z.cash/protocol/protocol.pdf#concretepedersenhash. More... | |
Detailed Description
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>>
struct nil::crypto3::hashes::pedersen_to_point< Params, BasePointGeneratorHash, Group >
Pedersen hash.
- Template Parameters
-
Group Params
Member Typedef Documentation
◆ base_point_generator
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_to_point< Params, BasePointGeneratorHash, Group >::base_point_generator = find_group_hash<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_to_point< 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_to_point< Params, BasePointGeneratorHash, Group >::curve_type = typename group_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_to_point< Params, BasePointGeneratorHash, Group >::digest_type = group_value_type |
◆ 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_to_point< 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_to_point< Params, BasePointGeneratorHash, Group >::group_value_type = typename group_type::value_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_to_point< 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_to_point< 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>>
|
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>>
|
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 , typename std::enable_if< std::is_same< bool, typename std::iterator_traits< typename InputRange::iterator >::value_type >::value, bool >::type = true>
|
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 , typename std::enable_if< std::is_same< bool, typename std::iterator_traits< InputIterator >::value_type >::value, bool >::type = true>
|
inlinestatic |
Member Data Documentation
◆ chunk_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>>
|
staticconstexpr |
◆ chunks_per_base_point
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>>
|
staticconstexpr |
Initial value:
=
detail::get_chunks_per_base_point<typename curve_type::scalar_field_type>(chunk_bits)
static constexpr std::size_t chunk_bits
Definition: hash/include/nil/crypto3/hash/pedersen.hpp:68
See definition of c
in https://zips.z.cash/protocol/protocol.pdf#concretepedersenhash.
The documentation for this struct was generated from the following file: