nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds > Struct Template Reference
Poseidon internal parameters. More...
#include <poseidon_policy.hpp>
Collaboration diagram for nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >:
Classes | |
struct | iv_generator |
Public Types | |
typedef std::array< element_type, Arity > | block_type |
typedef element_type | digest_type |
typedef field_type::value_type | element_type |
typedef FieldType | field_type |
typedef std::array< element_type, Arity+1 > | state_type |
typedef element_type | word_type |
Static Public Attributes | |
constexpr static const std::size_t | block_bits = Arity * field_type::modulus_bits |
constexpr static const std::size_t | block_words = Arity |
constexpr static const std::size_t | digest_bits = field_type::modulus_bits |
constexpr static const std::size_t | full_rounds = 8 |
constexpr static const std::size_t | half_full_rounds = 4 |
constexpr static const std::size_t | part_rounds = PartRounds |
constexpr static const std::size_t | state_bits = (Arity + 1) * field_type::modulus_bits |
constexpr static const std::size_t | state_words = (Arity + 1) |
constexpr static const std::size_t | word_bits = field_type::modulus_bits |
Detailed Description
template<typename FieldType, std::size_t Arity, std::size_t PartRounds>
struct nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >
Poseidon internal parameters.
- Template Parameters
-
FieldType type of field Arity arity of input block for Poseidon permutation in field elements Strength mode of Poseidon permutation
Member Typedef Documentation
◆ block_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef std::array<element_type, Arity> nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::block_type |
◆ digest_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef element_type nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::digest_type |
◆ element_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef field_type::value_type nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::element_type |
◆ field_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef FieldType nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::field_type |
◆ state_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef std::array<element_type, Arity + 1> nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::state_type |
◆ word_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef element_type nil::crypto3::hashes::detail::base_poseidon_policy< FieldType, Arity, PartRounds >::word_type |
Member Data Documentation
◆ block_bits
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ block_words
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ digest_bits
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ full_rounds
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ half_full_rounds
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ part_rounds
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ state_bits
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ state_words
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ word_bits
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
The documentation for this struct was generated from the following file: