nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type > Struct Template Reference

#include <emsa1.hpp>

+ Collaboration diagram for nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >:

Public Types

typedef Hash hash_type
 
typedef accumulator_set< hash_typeinternal_accumulator_type
 
typedef MsgReprType msg_repr_type
 
typedef msg_repr_type result_type
 

Static Public Member Functions

static void init_accumulator (internal_accumulator_type &acc)
 
template<std::size_t DigistBits = digest_bits, std::size_t ModulusBits = modulus_bits, typename std::enable_if<(DigistBits >=ModulusBits), bool >::type = true>
static result_type process (internal_accumulator_type &acc)
 
template<std::size_t DigistBits = digest_bits, std::size_t ModulusBits = modulus_bits, typename std::enable_if<(DigistBits< ModulusBits), bool >::type = true>
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 ::nil::marshalling::option::big_endian endianness
 
typedef MsgReprType::field_type field_type
 
typedef ::nil::crypto3::marshalling::types::field_element< ::nil::marshalling::field_type<::nil::marshalling::option::big_endian >, field_typemarshalling_field_element_type
 
typedef std::array< std::uint8_t, modulus_octetsmodulus_octets_container_type
 

Static Protected Attributes

constexpr static std::size_t digest_bits = hash_type::digest_bits
 
constexpr static std::size_t modulus_bits = field_type::modulus_bits
 
constexpr static std::size_t modulus_octets
 

Member Typedef Documentation

◆ endianness

template<typename MsgReprType , typename Hash >
typedef ::nil::marshalling::option::big_endian nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::endianness
protected

◆ field_type

template<typename MsgReprType , typename Hash >
typedef MsgReprType::field_type nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::field_type
protected

◆ hash_type

template<typename MsgReprType , typename Hash >
typedef Hash nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::hash_type

◆ internal_accumulator_type

template<typename MsgReprType , typename Hash >
typedef accumulator_set<hash_type> nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::internal_accumulator_type

◆ marshalling_field_element_type

template<typename MsgReprType , typename Hash >
typedef ::nil::crypto3::marshalling::types::field_element< ::nil::marshalling::field_type<::nil::marshalling::option::big_endian>, field_type> nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::marshalling_field_element_type
protected

◆ modulus_octets_container_type

template<typename MsgReprType , typename Hash >
typedef std::array<std::uint8_t, modulus_octets> nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::modulus_octets_container_type
protected

◆ msg_repr_type

template<typename MsgReprType , typename Hash >
typedef MsgReprType nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::msg_repr_type

◆ result_type

template<typename MsgReprType , typename Hash >
typedef msg_repr_type nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::result_type

Member Function Documentation

◆ init_accumulator()

template<typename MsgReprType , typename Hash >
static void nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::init_accumulator ( internal_accumulator_type acc)
inlinestatic

◆ process() [1/2]

template<typename MsgReprType , typename Hash >
template<std::size_t DigistBits = digest_bits, std::size_t ModulusBits = modulus_bits, typename std::enable_if<(DigistBits >=ModulusBits), bool >::type = true>
static result_type nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::process ( internal_accumulator_type acc)
inlinestatic

◆ process() [2/2]

template<typename MsgReprType , typename Hash >
template<std::size_t DigistBits = digest_bits, std::size_t ModulusBits = modulus_bits, typename std::enable_if<(DigistBits< ModulusBits), bool >::type = true>
static result_type nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::process ( internal_accumulator_type acc)
inlinestatic

◆ update() [1/2]

template<typename MsgReprType , typename Hash >
template<typename InputRange >
static void nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::update ( internal_accumulator_type acc,
const InputRange &  range 
)
inlinestatic

◆ update() [2/2]

template<typename MsgReprType , typename Hash >
template<typename InputIterator >
static void nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::update ( internal_accumulator_type acc,
InputIterator  first,
InputIterator  last 
)
inlinestatic

Member Data Documentation

◆ digest_bits

template<typename MsgReprType , typename Hash >
constexpr static std::size_t nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::digest_bits = hash_type::digest_bits
staticconstexprprotected

◆ modulus_bits

template<typename MsgReprType , typename Hash >
constexpr static std::size_t nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::modulus_bits = field_type::modulus_bits
staticconstexprprotected

◆ modulus_octets

template<typename MsgReprType , typename Hash >
constexpr static std::size_t nil::crypto3::pubkey::padding::detail::emsa1_encoding_policy< MsgReprType, Hash, typename std::enable_if< algebra::is_field< typename MsgReprType::field_type >::value &&!algebra::is_extended_field< typename MsgReprType::field_type >::value >::type >::modulus_octets
staticconstexprprotected

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