nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits > Struct Template Reference

#include <keccak_functions.hpp>

+ Inheritance diagram for nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >:
+ Collaboration diagram for nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >:

Public Types

typedef std::array< word_type, block_wordsblock_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef boost::uint_t< CHAR_BIT >::exact byte_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef boost::uint_t< byte_bits >::exact byte_type
 
typedef stream_endian::big_octet_big_bit digest_endian
 
typedef static_digest< digest_bitsdigest_type
 
typedef keccak_1600_policy< DigestBits > policy_type
 
typedef std::array< word_type, round_constants_sizeround_constants_type
 
typedef policy_type::state_type state_type
 
typedef policy_type::word_type word_type
 

Static Public Member Functions

static void permute (state_type &A)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotl (word_type x, std::size_t n)
 
static word_type rotr (word_type x)
 
static word_type rotr (word_type x)
 
static word_type rotr (word_type x)
 
static word_type rotr (word_type x)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type rotr (word_type x, std::size_t n)
 
static word_type shl (word_type x)
 
static word_type shl (word_type x)
 
static word_type shl (word_type x)
 
static word_type shl (word_type x)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shl (word_type x, std::size_t n)
 
static word_type shr (word_type x)
 
static word_type shr (word_type x)
 
static word_type shr (word_type x)
 
static word_type shr (word_type x)
 
static word_type shr (word_type x, std::size_t n)
 
static word_type shr (word_type x, std::size_t n)
 
static word_type shr (word_type x, std::size_t n)
 
static word_type shr (word_type x, std::size_t n)
 

Static Public Attributes

constexpr static const std::size_t block_bits = state_bits - 2 * digest_bits
 
constexpr static const std::size_t block_words = block_bits / word_bits
 
constexpr static const std::size_t byte_bits
 
constexpr static const std::size_t digest_bits = DigestBits
 
constexpr static const std::size_t length_bits = 0
 
constexpr static const round_constants_type round_constants
 
constexpr static const std::size_t round_constants_size = policy_type::rounds
 
constexpr static const std::size_t rounds = 24
 
constexpr static const std::size_t state_bits = 1600
 
constexpr static const std::size_t state_words = state_bits / word_bits
 
constexpr static const std::size_t word_bits = policy_type::word_bits
 

Member Typedef Documentation

◆ block_type

template<std::size_t DigestBits>
typedef std::array<word_type, block_words> nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::block_type
inherited

◆ byte_type [1/4]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< WordBits >::byte_type
inherited

◆ byte_type [2/4]

typedef boost::uint_t<CHAR_BIT>::exact nil::crypto3::detail::basic_functions< WordBits >::byte_type
inherited

◆ byte_type [3/4]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< WordBits >::byte_type
inherited

◆ byte_type [4/4]

typedef boost::uint_t<byte_bits>::exact nil::crypto3::detail::basic_functions< WordBits >::byte_type
inherited

◆ digest_endian

template<std::size_t DigestBits>
typedef stream_endian::big_octet_big_bit nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::digest_endian
inherited

◆ digest_type

template<std::size_t DigestBits>
typedef static_digest<digest_bits> nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::digest_type
inherited

◆ policy_type

template<std::size_t DigestBits>
typedef keccak_1600_policy<DigestBits> nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::policy_type

◆ round_constants_type

template<std::size_t DigestBits>
typedef std::array<word_type, round_constants_size> nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::round_constants_type

◆ state_type

template<std::size_t DigestBits>
typedef policy_type::state_type nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::state_type

◆ word_type

template<std::size_t DigestBits>
typedef policy_type::word_type nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::word_type

Member Function Documentation

◆ permute()

template<std::size_t DigestBits>
static void nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::permute ( state_type A)
inlinestatic

◆ rotl() [1/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [2/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [3/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [4/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x)
inlinestaticinherited

◆ rotl() [5/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotl() [6/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotl() [7/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotl() [8/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [1/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [2/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [3/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [4/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x)
inlinestaticinherited

◆ rotr() [5/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [6/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [7/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ rotr() [8/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::rotr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [1/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [2/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [3/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [4/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x)
inlinestaticinherited

◆ shl() [5/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [6/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [7/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shl() [8/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shl ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [1/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [2/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [3/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [4/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x)
inlinestaticinherited

◆ shr() [5/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [6/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [7/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

◆ shr() [8/8]

static word_type nil::crypto3::detail::basic_functions< WordBits >::shr ( word_type  x,
std::size_t  n 
)
inlinestaticinherited

Member Data Documentation

◆ block_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::block_bits = state_bits - 2 * digest_bits
staticconstexprinherited

◆ block_words

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::block_words = block_bits / word_bits
staticconstexprinherited

◆ byte_bits

constexpr static const std::size_t nil::crypto3::detail::basic_functions< WordBits >::byte_bits
staticconstexprinherited

◆ digest_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::digest_bits = DigestBits
staticconstexprinherited

◆ length_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::length_bits = 0
staticconstexprinherited

◆ round_constants

template<std::size_t DigestBits>
constexpr keccak_1600_functions< DigestBits >::round_constants_type const nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::round_constants
staticconstexpr
Initial value:
= {
UINT64_C(0x0000000000000001), UINT64_C(0x0000000000008082), UINT64_C(0x800000000000808a),
UINT64_C(0x8000000080008000), UINT64_C(0x000000000000808b), UINT64_C(0x0000000080000001),
UINT64_C(0x8000000080008081), UINT64_C(0x8000000000008009), UINT64_C(0x000000000000008a),
UINT64_C(0x0000000000000088), UINT64_C(0x0000000080008009), UINT64_C(0x000000008000000a),
UINT64_C(0x000000008000808b), UINT64_C(0x800000000000008b), UINT64_C(0x8000000000008089),
UINT64_C(0x8000000000008003), UINT64_C(0x8000000000008002), UINT64_C(0x8000000000000080),
UINT64_C(0x000000000000800a), UINT64_C(0x800000008000000a), UINT64_C(0x8000000080008081),
UINT64_C(0x8000000000008080), UINT64_C(0x0000000080000001), UINT64_C(0x8000000080008008)}

◆ round_constants_size

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::round_constants_size = policy_type::rounds
staticconstexpr

◆ rounds

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::rounds = 24
staticconstexprinherited

◆ state_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::state_bits = 1600
staticconstexprinherited

◆ state_words

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_policy< DigestBits >::state_words = state_bits / word_bits
staticconstexprinherited

◆ word_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::keccak_1600_functions< DigestBits >::word_bits = policy_type::word_bits
staticconstexpr

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