nil::crypto3::block::detail::basic_shacal_functions< WordBits > Struct Template Reference

#include <shacal_functions.hpp>

+ Inheritance diagram for nil::crypto3::block::detail::basic_shacal_functions< WordBits >:
+ Collaboration diagram for nil::crypto3::block::detail::basic_shacal_functions< WordBits >:

Public Types

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 ::nil::crypto3::detail::basic_functions< WordBits >::word_type word_type
 

Static Public Member Functions

static word_type Ch (word_type x, word_type y, word_type z)
 
static word_type Maj (word_type x, word_type y, word_type z)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
template<std::size_t n>
static word_type rotl (word_type x)
 
template<std::size_t n>
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)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
template<std::size_t n>
static word_type rotr (word_type x)
 
template<std::size_t n>
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<std::size_t n>
static word_type shl (word_type x)
 
template<std::size_t n>
static word_type shl (word_type x)
 
template<std::size_t n>
static word_type shl (word_type x)
 
template<std::size_t n>
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)
 
template<std::size_t n>
static word_type shr (word_type x)
 
template<std::size_t n>
static word_type shr (word_type x)
 
template<std::size_t n>
static word_type shr (word_type x)
 
template<std::size_t n>
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 byte_bits = CHAR_BIT
 
constexpr static const std::size_t word_bits = WordBits
 

Detailed Description

template<std::size_t WordBits>
struct nil::crypto3::block::detail::basic_shacal_functions< WordBits >

Template Parameters
WordBitsImplemented directly from the standard as found at http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf Specifically, subsection 4.1

Member Typedef Documentation

◆ byte_type [1/4]

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

◆ byte_type [2/4]

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

◆ byte_type [3/4]

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

◆ byte_type [4/4]

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

◆ word_type

Member Function Documentation

◆ Ch()

template<std::size_t WordBits>
static word_type nil::crypto3::block::detail::basic_shacal_functions< WordBits >::Ch ( word_type  x,
word_type  y,
word_type  z 
)
inlinestatic

◆ Maj()

template<std::size_t WordBits>
static word_type nil::crypto3::block::detail::basic_shacal_functions< WordBits >::Maj ( word_type  x,
word_type  y,
word_type  z 
)
inlinestatic

◆ rotl() [1/8]

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

◆ rotl() [2/8]

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

◆ rotl() [3/8]

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

◆ rotl() [4/8]

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

◆ rotl() [5/8]

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

◆ rotl() [6/8]

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

◆ rotl() [7/8]

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

◆ rotl() [8/8]

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

◆ rotr() [1/8]

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

◆ rotr() [2/8]

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

◆ rotr() [3/8]

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

◆ rotr() [4/8]

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

◆ rotr() [5/8]

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

◆ rotr() [6/8]

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

◆ rotr() [7/8]

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

◆ rotr() [8/8]

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

◆ shl() [1/8]

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

◆ shl() [2/8]

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

◆ shl() [3/8]

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

◆ shl() [4/8]

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

◆ shl() [5/8]

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

◆ shl() [6/8]

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

◆ shl() [7/8]

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

◆ shl() [8/8]

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

◆ shr() [1/8]

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

◆ shr() [2/8]

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

◆ shr() [3/8]

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

◆ shr() [4/8]

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

◆ shr() [5/8]

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

◆ shr() [6/8]

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

◆ shr() [7/8]

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

◆ shr() [8/8]

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

Member Data Documentation

◆ byte_bits

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

◆ word_bits

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

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