nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type > Struct Template Reference

#include <h2c_functions.hpp>

+ Collaboration diagram for nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >:

Public Types

typedef expand_message_xmd< k, len_in_bytes, hash_type, PublicParams > expand_message_type
 
typedef suite_type::field_type field_type
 
typedef suite_type::field_value_type field_value_type
 
typedef suite_type::group_value_type group_value_type
 
typedef suite_type::hash_type hash_type
 
typedef suite_type::integral_type integral_type
 
typedef expand_message_type::internal_accumulator_type internal_accumulator_type
 
typedef suite_type::modular_type modular_type
 
typedef group_value_type result_type
 
typedef h2c_suite< Group > suite_type
 

Static Public Member Functions

static group_value_type clear_cofactor (const group_value_type &R)
 
template<std::size_t arity = m, typename std::enable_if< 1==arity, bool >::type = true>
static std::array< field_value_type, counthash_to_field (internal_accumulator_type &acc)
 
template<std::size_t arity = m, typename std::enable_if< 2==arity, bool >::type = true>
static std::array< field_value_type, counthash_to_field (internal_accumulator_type &acc)
 
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

constexpr static std::size_t count = static_cast<std::size_t>(uniformity_count)
 
constexpr static std::size_t digest_bits = hash_type::digest_bits
 
constexpr static std::size_t k = suite_type::k
 
constexpr static std::size_t L = suite_type::L
 
constexpr static std::size_t len_in_bytes = count * m * L
 
constexpr static std::size_t m = suite_type::m
 
constexpr static std::size_t modulus_bits = field_type::modulus_bits
 

Member Typedef Documentation

◆ expand_message_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef expand_message_xmd<k, len_in_bytes, hash_type, PublicParams> nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::expand_message_type

◆ field_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::field_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::field_type

◆ field_value_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::field_value_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::field_value_type

◆ group_value_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::group_value_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::group_value_type

◆ hash_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::hash_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::hash_type

◆ integral_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::integral_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::integral_type

◆ internal_accumulator_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef expand_message_type::internal_accumulator_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::internal_accumulator_type

◆ modular_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef suite_type::modular_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::modular_type

◆ result_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef group_value_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::result_type

◆ suite_type

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
typedef h2c_suite<Group> nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::suite_type

Member Function Documentation

◆ clear_cofactor()

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
static group_value_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::clear_cofactor ( const group_value_type R)
inlinestatic

◆ hash_to_field() [1/2]

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
template<std::size_t arity = m, typename std::enable_if< 1==arity, bool >::type = true>
static std::array<field_value_type, count> nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::hash_to_field ( internal_accumulator_type acc)
inlinestatic

◆ hash_to_field() [2/2]

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
template<std::size_t arity = m, typename std::enable_if< 2==arity, bool >::type = true>
static std::array<field_value_type, count> nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::hash_to_field ( internal_accumulator_type acc)
inlinestatic

◆ init_accumulator()

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
static void nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::init_accumulator ( internal_accumulator_type acc)
inlinestatic

◆ process()

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
static result_type nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::process ( internal_accumulator_type acc)
inlinestatic

◆ update() [1/2]

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
template<typename InputRange >
static void nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::update ( internal_accumulator_type acc,
const InputRange &  range 
)
inlinestatic

◆ update() [2/2]

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
template<typename InputIterator >
static void nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::update ( internal_accumulator_type acc,
InputIterator  first,
InputIterator  last 
)
inlinestatic

Member Data Documentation

◆ count

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::count = static_cast<std::size_t>(uniformity_count)
staticconstexpr

◆ digest_bits

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::digest_bits = hash_type::digest_bits
staticconstexpr

◆ k

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::k = suite_type::k
staticconstexpr

◆ L

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::L = suite_type::L
staticconstexpr

◆ len_in_bytes

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::len_in_bytes = count * m * L
staticconstexpr

◆ m

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::m = suite_type::m
staticconstexpr

◆ modulus_bits

template<typename Group , typename PublicParams , UniformityCount uniformity_count, ExpandMsgVariant expand_msg_variant>
constexpr static std::size_t nil::crypto3::hashes::detail::ep_map< Group, PublicParams, uniformity_count, expand_msg_variant, typename std::enable_if<(ExpandMsgVariant::rfc_xmd==expand_msg_variant)>::type >::modulus_bits = field_type::modulus_bits
staticconstexpr

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