Public Types |
Public Member Functions |
Public Attributes |
Static Public Attributes |
List of all members
nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds > Struct Template Reference
#include <poseidon_lfsr.hpp>
Collaboration diagram for nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >:
Public Types | |
typedef FieldType::value_type | element_type |
typedef FieldType::integral_type | integral_type |
typedef number< backends::cpp_int_backend< lfsr_state_bits, lfsr_state_bits, cpp_integer_type::unsigned_magnitude, cpp_int_check_type::unchecked, void > > | lfsr_state_type |
typedef poseidon_policy< FieldType, Arity, PartRounds > | policy_type |
typedef algebra::vector< element_type, constants_number > | round_constants_type |
Public Member Functions | |
constexpr void | generate_round_constants () |
constexpr lfsr_state_type | get_lfsr_init_state () |
constexpr bool | get_lfsr_state_bit (lfsr_state_type state, std::size_t pos) |
constexpr | poseidon_lfsr () |
template<typename T > | |
constexpr T | set_new_bit (T var, bool new_bit) |
constexpr lfsr_state_type | update_lfsr_state (lfsr_state_type state) |
constexpr lfsr_state_type | update_lfsr_state_raw (lfsr_state_type state) |
Public Attributes | |
round_constants_type | round_constants |
Static Public Attributes | |
constexpr static const std::size_t | constants_number = (full_rounds + part_rounds) * state_words |
constexpr static const std::size_t | full_rounds = policy_type::full_rounds |
constexpr static const std::size_t | lfsr_state_bits = 80 |
constexpr static const integral_type | modulus = FieldType::modulus |
constexpr static const std::size_t | part_rounds = policy_type::part_rounds |
constexpr static const std::size_t | state_words = policy_type::state_words |
constexpr static const std::size_t | word_bits = policy_type::word_bits |
Member Typedef Documentation
◆ element_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef FieldType::value_type nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::element_type |
◆ integral_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef FieldType::integral_type nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::integral_type |
◆ lfsr_state_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef number<backends::cpp_int_backend< lfsr_state_bits, lfsr_state_bits, cpp_integer_type::unsigned_magnitude, cpp_int_check_type::unchecked, void> > nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::lfsr_state_type |
◆ policy_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef poseidon_policy<FieldType, Arity, PartRounds> nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::policy_type |
◆ round_constants_type
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
typedef algebra::vector<element_type, constants_number> nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::round_constants_type |
Constructor & Destructor Documentation
◆ poseidon_lfsr()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
Member Function Documentation
◆ generate_round_constants()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
◆ get_lfsr_init_state()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
◆ get_lfsr_state_bit()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
◆ set_new_bit()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
template<typename T >
|
inlineconstexpr |
◆ update_lfsr_state()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
◆ update_lfsr_state_raw()
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
inlineconstexpr |
Member Data Documentation
◆ constants_number
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 |
◆ lfsr_state_bits
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
|
staticconstexpr |
◆ modulus
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 |
◆ round_constants
template<typename FieldType , std::size_t Arity, std::size_t PartRounds>
round_constants_type nil::crypto3::hashes::detail::poseidon_lfsr< FieldType, Arity, PartRounds >::round_constants |
◆ 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: