nil::crypto3::hashes::find_group_hash< Params, Hash, Group > Struct Template Reference
Hashing to elliptic curve Jubjub according to FindGroupHash Zcash algorithm https://zips.z.cash/protocol/protocol.pdf#concretegrouphashjubjub. More...
#include <find_group_hash.hpp>
Collaboration diagram for nil::crypto3::hashes::find_group_hash< Params, Hash, Group >:
Public Types | |
using | curve_type = typename group_type::curve_type |
using | group_type = Group |
using | group_value_type = typename group_type::value_type |
using | hash_type = Hash |
using | internal_accumulator_type = accumulator_set< hash_type > |
using | params = Params |
using | result_type = group_value_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 std::vector< std::uint8_t > | urs |
Detailed Description
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >
Hashing to elliptic curve Jubjub according to FindGroupHash Zcash algorithm https://zips.z.cash/protocol/protocol.pdf#concretegrouphashjubjub.
- Template Parameters
-
Group Params
Member Typedef Documentation
◆ curve_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::curve_type = typename group_type::curve_type |
◆ group_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::group_type = Group |
◆ group_value_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::group_value_type = typename group_type::value_type |
◆ hash_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::hash_type = Hash |
◆ internal_accumulator_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::internal_accumulator_type = accumulator_set<hash_type> |
◆ params
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::params = Params |
◆ result_type
template<typename Params = find_group_hash_default_params, typename Hash = 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::find_group_hash< Params, Hash, Group >::result_type = group_value_type |
Member Function Documentation
◆ init_accumulator()
template<typename Params = find_group_hash_default_params, typename Hash = 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 Hash = 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 Hash = 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 >
|
inlinestatic |
◆ update() [2/2]
template<typename Params = find_group_hash_default_params, typename Hash = 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 >
|
inlinestatic |
Member Data Documentation
◆ urs
template<typename Params = find_group_hash_default_params, typename Hash = sha2<256>, typename Group = algebra::curves::jubjub::template g1_type< nil::crypto3::algebra::curves::coordinates::affine, nil::crypto3::algebra::curves::forms::twisted_edwards>>
|
inlinestatic |
Initial value:
= {
0x30, 0x39, 0x36, 0x62, 0x33, 0x36, 0x61, 0x35, 0x38, 0x30, 0x34, 0x62, 0x66, 0x61, 0x63, 0x65,
0x66, 0x31, 0x36, 0x39, 0x31, 0x65, 0x31, 0x37, 0x33, 0x63, 0x33, 0x36, 0x36, 0x61, 0x34, 0x37,
0x66, 0x66, 0x35, 0x62, 0x61, 0x38, 0x34, 0x61, 0x34, 0x34, 0x66, 0x32, 0x36, 0x64, 0x64, 0x64,
0x37, 0x65, 0x38, 0x64, 0x39, 0x66, 0x37, 0x39, 0x64, 0x35, 0x62, 0x34, 0x32, 0x64, 0x66, 0x30}
The documentation for this struct was generated from the following file: