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

#include <blake2b_functions.hpp>

+ Inheritance diagram for nil::crypto3::hashes::detail::blake2b_functions< DigestBits >:
+ Collaboration diagram for nil::crypto3::hashes::detail::blake2b_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::little_octet_big_bit digest_endian
 
typedef static_digest< digest_bitsdigest_type
 
typedef blake2b_policy< DigestBits > policy_type
 
typedef boost::uint_t< salt_bits >::exact salt_type
 
typedef std::array< word_type, state_wordsstate_type
 
typedef policy_type::word_type word_type
 

Static Public Member Functions

static void g (word_type &a, word_type &b, word_type &c, word_type &d, word_type M0, word_type M1)
 
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)
 
template<size_t i0, size_t i1, size_t i2, size_t i3, size_t i4, size_t i5, size_t i6, size_t i7, size_t i8, size_t i9, size_t iA, size_t iB, size_t iC, size_t iD, size_t iE, size_t iF>
static void round (std::array< word_type, state_words *2 > &v, const std::array< word_type, state_words *2 > &M)
 
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 = 1024
 
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 = word_bits
 
constexpr static const std::size_t rounds = 12
 
constexpr static const std::size_t salt_bits = 64
 
constexpr static const salt_type salt_value = 0xFFFFFFFFFFFFFFFF
 
constexpr static const std::size_t state_bits = 512
 
constexpr static const std::size_t state_words = policy_type::state_words
 
constexpr static const std::size_t word_bits
 

Member Typedef Documentation

◆ block_type

template<std::size_t DigestBits>
typedef std::array<word_type, block_words> nil::crypto3::hashes::detail::blake2b_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::little_octet_big_bit nil::crypto3::hashes::detail::blake2b_policy< DigestBits >::digest_endian
inherited

◆ digest_type

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

◆ policy_type

template<std::size_t DigestBits>
typedef blake2b_policy<DigestBits> nil::crypto3::hashes::detail::blake2b_functions< DigestBits >::policy_type

◆ salt_type

template<std::size_t DigestBits>
typedef boost::uint_t<salt_bits>::exact nil::crypto3::hashes::detail::blake2b_policy< DigestBits >::salt_type
inherited

◆ state_type

template<std::size_t DigestBits>
typedef std::array<word_type, state_words> nil::crypto3::hashes::detail::blake2b_policy< DigestBits >::state_type
inherited

◆ word_type

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

Member Function Documentation

◆ g()

template<std::size_t DigestBits>
static void nil::crypto3::hashes::detail::blake2b_functions< DigestBits >::g ( word_type a,
word_type b,
word_type c,
word_type d,
word_type  M0,
word_type  M1 
)
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

◆ round()

template<std::size_t DigestBits>
template<size_t i0, size_t i1, size_t i2, size_t i3, size_t i4, size_t i5, size_t i6, size_t i7, size_t i8, size_t i9, size_t iA, size_t iB, size_t iC, size_t iD, size_t iE, size_t iF>
static void nil::crypto3::hashes::detail::blake2b_functions< DigestBits >::round ( std::array< word_type, state_words *2 > &  v,
const std::array< word_type, state_words *2 > &  M 
)
inlinestatic

◆ 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::blake2b_policy< DigestBits >::block_bits = 1024
staticconstexprinherited

◆ block_words

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::blake2b_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::blake2b_policy< DigestBits >::digest_bits = DigestBits
staticconstexprinherited

◆ length_bits

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

◆ rounds

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

◆ salt_bits

template<std::size_t DigestBits>
constexpr static const std::size_t nil::crypto3::hashes::detail::blake2b_policy< DigestBits >::salt_bits = 64
staticconstexprinherited

◆ salt_value

template<std::size_t DigestBits>
constexpr static const salt_type nil::crypto3::hashes::detail::blake2b_policy< DigestBits >::salt_value = 0xFFFFFFFFFFFFFFFF
staticconstexprinherited

◆ state_bits

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

◆ state_words

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

◆ word_bits

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

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