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

Hashing to Elliptic Curves https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11. More...

#include <h2c.hpp>

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

Public Types

typedef Group group_type
 
typedef group_type::value_type group_value_type
 
typedef h2c_suite< Group >::hash_type hash_type
 
typedef policy_type::internal_accumulator_type internal_accumulator_type
 
typedef Params params_type
 
typedef group_value_type result_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)
 

Protected Types

typedef detail::ep_map< Group, params_type, params_type::uniformity_count, params_type::expand_msg_variant > policy_type
 

Detailed Description

template<typename Group, typename Params = h2c_default_params<Group>>
struct nil::crypto3::hashes::h2c< Group, Params >

Hashing to Elliptic Curves https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-11.

Template Parameters
Group
Params

Member Typedef Documentation

◆ group_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef Group nil::crypto3::hashes::h2c< Group, Params >::group_type

◆ group_value_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef group_type::value_type nil::crypto3::hashes::h2c< Group, Params >::group_value_type

◆ hash_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef h2c_suite<Group>::hash_type nil::crypto3::hashes::h2c< Group, Params >::hash_type

◆ internal_accumulator_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef policy_type::internal_accumulator_type nil::crypto3::hashes::h2c< Group, Params >::internal_accumulator_type

◆ params_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef Params nil::crypto3::hashes::h2c< Group, Params >::params_type

◆ policy_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef detail::ep_map<Group, params_type, params_type::uniformity_count, params_type::expand_msg_variant> nil::crypto3::hashes::h2c< Group, Params >::policy_type
protected

◆ result_type

template<typename Group , typename Params = h2c_default_params<Group>>
typedef group_value_type nil::crypto3::hashes::h2c< Group, Params >::result_type

Member Function Documentation

◆ init_accumulator()

template<typename Group , typename Params = h2c_default_params<Group>>
static void nil::crypto3::hashes::h2c< Group, Params >::init_accumulator ( internal_accumulator_type acc)
inlinestatic

◆ process()

template<typename Group , typename Params = h2c_default_params<Group>>
static result_type nil::crypto3::hashes::h2c< Group, Params >::process ( internal_accumulator_type acc)
inlinestatic

◆ update() [1/2]

template<typename Group , typename Params = h2c_default_params<Group>>
template<typename InputRange >
static void nil::crypto3::hashes::h2c< Group, Params >::update ( internal_accumulator_type acc,
const InputRange &  range 
)
inlinestatic

◆ update() [2/2]

template<typename Group , typename Params = h2c_default_params<Group>>
template<typename InputIterator >
static void nil::crypto3::hashes::h2c< Group, Params >::update ( internal_accumulator_type acc,
InputIterator  first,
InputIterator  last 
)
inlinestatic

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